1- using System ;
1+ using Amazon . AwsToolkit . Telemetry . Events . Generator . Core . Models ;
2+ using Amazon . AwsToolkit . Telemetry . Events . Generator . Core . Utils ;
3+ using System ;
24using System . CodeDom ;
35using System . CodeDom . Compiler ;
46using System . Collections . Generic ;
57using System . Globalization ;
68using System . IO ;
79using System . Linq ;
810using System . Reflection ;
9- using Amazon . AwsToolkit . Telemetry . Events . Generator . Models ;
10- using Amazon . AwsToolkit . Telemetry . Events . Generator . Utils ;
1111
12- namespace Amazon . AwsToolkit . Telemetry . Events . Generator
12+ namespace Amazon . AwsToolkit . Telemetry . Events . Generator . Core
1313{
1414 /// <summary>
1515 /// Generates code that allows programs like the Toolkit to instantiate and publish Telemetry Events
@@ -32,7 +32,10 @@ public class DefinitionsBuilder
3232 "requestId" ,
3333 "requestServiceType" ,
3434 "duration" ,
35- "locale"
35+ "locale" ,
36+ "traceId" ,
37+ "metricId" ,
38+ "parentId"
3639 } ;
3740
3841 private readonly CodeMethodReferenceExpression _invariantCulture =
@@ -112,9 +115,9 @@ public string Build()
112115 blankNamespace . Imports . Add ( new CodeNamespaceImport ( "System.Collections.Generic" ) ) ;
113116 // All generated code is expected to be placed in, or somewhere with a dependency on,
114117 // AwsToolkit.Telemetry.Events.Generated
115- if ( _namespace != Options . DefaultEventsNamespace )
118+ if ( _namespace != Constants . DefaultEventsNamespace )
116119 {
117- blankNamespace . Imports . Add ( new CodeNamespaceImport ( Options . DefaultEventsNamespace ) ) ;
120+ blankNamespace . Imports . Add ( new CodeNamespaceImport ( Constants . DefaultEventsNamespace ) ) ;
118121 }
119122 blankNamespace . Imports . Add ( new CodeNamespaceImport ( "Amazon.AwsToolkit.Telemetry.Events.Core" ) ) ;
120123
@@ -295,8 +298,13 @@ private CodeTypeDeclaration CreateMetricDataClass(Metric metric)
295298
296299 // Initialize the passive field based on this metric declaration
297300 // Generate: this.Passive = true/false;
298- var valueFieldRef = new CodeFieldReferenceExpression ( new CodeThisReferenceExpression ( ) , "Passive" ) ;
299- typeConstructor . Statements . Add ( new CodeAssignStatement ( valueFieldRef , new CodePrimitiveExpression ( metric . passive ) ) ) ;
301+ var passiveFieldRef = new CodeFieldReferenceExpression ( new CodeThisReferenceExpression ( ) , "Passive" ) ;
302+ typeConstructor . Statements . Add ( new CodeAssignStatement ( passiveFieldRef , new CodePrimitiveExpression ( metric . passive ) ) ) ;
303+
304+ // Initialize the TrackPerformance field based on this metric declaration
305+ // Generate: this.TrackPerformance = true/false;
306+ var performanceFieldRef = new CodeFieldReferenceExpression ( new CodeThisReferenceExpression ( ) , "TrackPerformance" ) ;
307+ typeConstructor . Statements . Add ( new CodeAssignStatement ( performanceFieldRef , new CodePrimitiveExpression ( metric . trackPerformance ) ) ) ;
300308
301309 cls . Members . Add ( typeConstructor ) ;
302310
@@ -399,6 +407,7 @@ private CodeMemberMethod CreateRecordMetricMethodByDataClass(Metric metric)
399407 tryStatements . Add ( new CodeAssignStatement ( new CodeFieldReferenceExpression ( datum , "MetricName" ) , new CodePrimitiveExpression ( metric . name ) ) ) ;
400408 tryStatements . Add ( new CodeAssignStatement ( new CodeFieldReferenceExpression ( datum , "Unit" ) , GetMetricUnitExpression ( metric ) ) ) ;
401409 tryStatements . Add ( new CodeAssignStatement ( new CodeFieldReferenceExpression ( datum , "Passive" ) , new CodeFieldReferenceExpression ( payload , "Passive" ) ) ) ;
410+ tryStatements . Add ( new CodeAssignStatement ( new CodeFieldReferenceExpression ( datum , "TrackPerformance" ) , new CodeFieldReferenceExpression ( payload , "TrackPerformance" ) ) ) ;
402411
403412 // Set Datum.Value to (payload.Value ?? 1)
404413 var payloadValue = new CodeFieldReferenceExpression ( payload , "Value" ) ;
@@ -448,8 +457,23 @@ private CodeMemberMethod CreateRecordMetricMethodByDataClass(Metric metric)
448457 // Generate: datum.AddMetadata("requestServiceType", payload.RequestServiceType);
449458 var payloadRequestServiceType = new CodeFieldReferenceExpression ( payload , "RequestServiceType" ) ;
450459 tryStatements . Add ( new CodeExpressionStatement ( new CodeMethodInvokeExpression ( datumAddData ,
451- new CodePrimitiveExpression ( "requestServiceType" ) , payloadRequestServiceType ) ) ) ;
460+ new CodePrimitiveExpression ( "requestServiceType" ) , payloadRequestServiceType ) ) ) ;
452461
462+ // Generate: datum.AddMetadata("traceId", payload.TraceId);
463+ var payloadTraceId = new CodeFieldReferenceExpression ( payload , "TraceId" ) ;
464+ tryStatements . Add ( new CodeExpressionStatement ( new CodeMethodInvokeExpression ( datumAddData ,
465+ new CodePrimitiveExpression ( "traceId" ) , payloadTraceId ) ) ) ;
466+
467+ // Generate: datum.AddMetadata("metricId", payload.MetricId);
468+ var payloadMetricId = new CodeFieldReferenceExpression ( payload , "MetricId" ) ;
469+ tryStatements . Add ( new CodeExpressionStatement ( new CodeMethodInvokeExpression ( datumAddData ,
470+ new CodePrimitiveExpression ( "metricId" ) , payloadMetricId ) ) ) ;
471+
472+ // Generate: datum.AddMetadata("parentId", payload.ParentId);
473+ var payloadParentId = new CodeFieldReferenceExpression ( payload , "ParentId" ) ;
474+ tryStatements . Add ( new CodeExpressionStatement ( new CodeMethodInvokeExpression ( datumAddData ,
475+ new CodePrimitiveExpression ( "parentId" ) , payloadParentId ) ) ) ;
476+
453477 // Generate:
454478 // if (payload.Duration.HasValue)
455479 // {
0 commit comments