in telemetry/csharp/AwsToolkit.Telemetry.Events.Generator/Program.cs [34:71]
public static void Generate(Options options)
{
var definitionPath = Path.Combine(GetTelemetryDefinitionsFolder(), "commonDefinitions.json");
var commonDefinitions = TelemetryDefinitions.Load(definitionPath);
DefinitionsBuilder builder = new DefinitionsBuilder()
.WithNamespace(options.Namespace);
// Generate the main telemetry definitions, or supplemental definitions
if (!options.SupplementalDefinitions.Any())
{
// We're producing the main telemetry definitions
builder
.AddMetricsTypes(commonDefinitions.types)
.AddMetrics(commonDefinitions.metrics);
}
else
{
// We're producing supplemental "repo-specific" definitions
builder
.AddMetricsTypes(commonDefinitions.types, referenceOnly: true);
// Load each file, add types and metrics
options.SupplementalDefinitions.Select(TelemetryDefinitions.Load)
.ToList()
.ForEach(definitions =>
{
builder
.AddMetricsTypes(definitions.types)
.AddMetrics(definitions.metrics);
});
}
var code = builder.Build();
File.WriteAllText(Path.Combine(options.OutputFolder, options.OutputFilename), code);
}