Skip to content

Commit af3f969

Browse files
authored
Add reasonDesc to C# telemetry system (#954)
`reasonDesc` is a "global" field that we treat as available on all metric types. This change updates the C# telemetry so that events have a `ReasonDescription` property, which is emitted to `reasonDesc` metrics. When reviewing this change, you can largely ignore telemetry/csharp/AwsToolkit.Telemetry.Events.Tests/Generated/GeneratedCode.cs - This file is not updated each time telemetry definitions change. Since I refreshed it, it contains a larger set of adjustments. #764 is the equivalent change for typescript ## License By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent f9aa102 commit af3f969

File tree

5 files changed

+1452
-361
lines changed

5 files changed

+1452
-361
lines changed

telemetry/csharp/AwsToolkit.Telemetry.Events.Generator.Core/DefinitionsBuilder.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public class DefinitionsBuilder
2626
private static readonly string[] ImplicitFields =
2727
{
2828
"reason",
29+
"reasonDesc",
2930
"errorCode",
3031
"causedBy",
3132
"httpStatusCode",
@@ -434,6 +435,11 @@ private CodeMemberMethod CreateRecordMetricMethodByDataClass(Metric metric)
434435
tryStatements.Add(new CodeExpressionStatement(new CodeMethodInvokeExpression(datumAddData,
435436
new CodePrimitiveExpression("reason"), payloadReason)));
436437

438+
// Generate: datum.AddMetadata("reasonDesc", payload.ReasonDescription);
439+
var payloadReasonDescription = new CodeFieldReferenceExpression(payload, "ReasonDescription");
440+
tryStatements.Add(new CodeExpressionStatement(new CodeMethodInvokeExpression(datumAddData,
441+
new CodePrimitiveExpression("reasonDesc"), payloadReasonDescription)));
442+
437443
// Generate: datum.AddMetadata("errorCode", payload.ErrorCode);
438444
var payloadErrorCode = new CodeFieldReferenceExpression(payload, "ErrorCode");
439445
tryStatements.Add(new CodeExpressionStatement(new CodeMethodInvokeExpression(datumAddData,

telemetry/csharp/AwsToolkit.Telemetry.Events.Generator.Tests/SampleData/Outcomes/sampleDefinitions-generated.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ namespace Test
5757
datum.AddMetadata("awsAccount", payload.AwsAccount);
5858
datum.AddMetadata("awsRegion", payload.AwsRegion);
5959
datum.AddMetadata("reason", payload.Reason);
60+
datum.AddMetadata("reasonDesc", payload.ReasonDescription);
6061
datum.AddMetadata("errorCode", payload.ErrorCode);
6162
datum.AddMetadata("causedBy", payload.CausedBy);
6263
datum.AddMetadata("httpStatusCode", payload.HttpStatusCode);
@@ -116,6 +117,7 @@ namespace Test
116117
datum.AddMetadata("awsAccount", payload.AwsAccount);
117118
datum.AddMetadata("awsRegion", payload.AwsRegion);
118119
datum.AddMetadata("reason", payload.Reason);
120+
datum.AddMetadata("reasonDesc", payload.ReasonDescription);
119121
datum.AddMetadata("errorCode", payload.ErrorCode);
120122
datum.AddMetadata("causedBy", payload.CausedBy);
121123
datum.AddMetadata("httpStatusCode", payload.HttpStatusCode);
@@ -175,6 +177,7 @@ namespace Test
175177
datum.AddMetadata("awsAccount", payload.AwsAccount);
176178
datum.AddMetadata("awsRegion", payload.AwsRegion);
177179
datum.AddMetadata("reason", payload.Reason);
180+
datum.AddMetadata("reasonDesc", payload.ReasonDescription);
178181
datum.AddMetadata("errorCode", payload.ErrorCode);
179182
datum.AddMetadata("causedBy", payload.CausedBy);
180183
datum.AddMetadata("httpStatusCode", payload.HttpStatusCode);
@@ -242,6 +245,7 @@ namespace Test
242245
datum.AddMetadata("awsAccount", payload.AwsAccount);
243246
datum.AddMetadata("awsRegion", payload.AwsRegion);
244247
datum.AddMetadata("reason", payload.Reason);
248+
datum.AddMetadata("reasonDesc", payload.ReasonDescription);
245249
datum.AddMetadata("errorCode", payload.ErrorCode);
246250
datum.AddMetadata("causedBy", payload.CausedBy);
247251
datum.AddMetadata("httpStatusCode", payload.HttpStatusCode);
@@ -309,6 +313,7 @@ namespace Test
309313
datum.AddMetadata("awsAccount", payload.AwsAccount);
310314
datum.AddMetadata("awsRegion", payload.AwsRegion);
311315
datum.AddMetadata("reason", payload.Reason);
316+
datum.AddMetadata("reasonDesc", payload.ReasonDescription);
312317
datum.AddMetadata("errorCode", payload.ErrorCode);
313318
datum.AddMetadata("causedBy", payload.CausedBy);
314319
datum.AddMetadata("httpStatusCode", payload.HttpStatusCode);
@@ -385,6 +390,7 @@ namespace Test
385390
datum.AddMetadata("awsAccount", payload.AwsAccount);
386391
datum.AddMetadata("awsRegion", payload.AwsRegion);
387392
datum.AddMetadata("reason", payload.Reason);
393+
datum.AddMetadata("reasonDesc", payload.ReasonDescription);
388394
datum.AddMetadata("errorCode", payload.ErrorCode);
389395
datum.AddMetadata("causedBy", payload.CausedBy);
390396
datum.AddMetadata("httpStatusCode", payload.HttpStatusCode);
@@ -444,6 +450,7 @@ namespace Test
444450
datum.AddMetadata("awsAccount", payload.AwsAccount);
445451
datum.AddMetadata("awsRegion", payload.AwsRegion);
446452
datum.AddMetadata("reason", payload.Reason);
453+
datum.AddMetadata("reasonDesc", payload.ReasonDescription);
447454
datum.AddMetadata("errorCode", payload.ErrorCode);
448455
datum.AddMetadata("causedBy", payload.CausedBy);
449456
datum.AddMetadata("httpStatusCode", payload.HttpStatusCode);

telemetry/csharp/AwsToolkit.Telemetry.Events.Generator.Tests/SampleData/Outcomes/sampleDefinitions-supplemental.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ namespace Test
5757
datum.AddMetadata("awsAccount", payload.AwsAccount);
5858
datum.AddMetadata("awsRegion", payload.AwsRegion);
5959
datum.AddMetadata("reason", payload.Reason);
60+
datum.AddMetadata("reasonDesc", payload.ReasonDescription);
6061
datum.AddMetadata("errorCode", payload.ErrorCode);
6162
datum.AddMetadata("causedBy", payload.CausedBy);
6263
datum.AddMetadata("httpStatusCode", payload.HttpStatusCode);
@@ -116,6 +117,7 @@ namespace Test
116117
datum.AddMetadata("awsAccount", payload.AwsAccount);
117118
datum.AddMetadata("awsRegion", payload.AwsRegion);
118119
datum.AddMetadata("reason", payload.Reason);
120+
datum.AddMetadata("reasonDesc", payload.ReasonDescription);
119121
datum.AddMetadata("errorCode", payload.ErrorCode);
120122
datum.AddMetadata("causedBy", payload.CausedBy);
121123
datum.AddMetadata("httpStatusCode", payload.HttpStatusCode);
@@ -175,6 +177,7 @@ namespace Test
175177
datum.AddMetadata("awsAccount", payload.AwsAccount);
176178
datum.AddMetadata("awsRegion", payload.AwsRegion);
177179
datum.AddMetadata("reason", payload.Reason);
180+
datum.AddMetadata("reasonDesc", payload.ReasonDescription);
178181
datum.AddMetadata("errorCode", payload.ErrorCode);
179182
datum.AddMetadata("causedBy", payload.CausedBy);
180183
datum.AddMetadata("httpStatusCode", payload.HttpStatusCode);
@@ -242,6 +245,7 @@ namespace Test
242245
datum.AddMetadata("awsAccount", payload.AwsAccount);
243246
datum.AddMetadata("awsRegion", payload.AwsRegion);
244247
datum.AddMetadata("reason", payload.Reason);
248+
datum.AddMetadata("reasonDesc", payload.ReasonDescription);
245249
datum.AddMetadata("errorCode", payload.ErrorCode);
246250
datum.AddMetadata("causedBy", payload.CausedBy);
247251
datum.AddMetadata("httpStatusCode", payload.HttpStatusCode);
@@ -309,6 +313,7 @@ namespace Test
309313
datum.AddMetadata("awsAccount", payload.AwsAccount);
310314
datum.AddMetadata("awsRegion", payload.AwsRegion);
311315
datum.AddMetadata("reason", payload.Reason);
316+
datum.AddMetadata("reasonDesc", payload.ReasonDescription);
312317
datum.AddMetadata("errorCode", payload.ErrorCode);
313318
datum.AddMetadata("causedBy", payload.CausedBy);
314319
datum.AddMetadata("httpStatusCode", payload.HttpStatusCode);
@@ -385,6 +390,7 @@ namespace Test
385390
datum.AddMetadata("awsAccount", payload.AwsAccount);
386391
datum.AddMetadata("awsRegion", payload.AwsRegion);
387392
datum.AddMetadata("reason", payload.Reason);
393+
datum.AddMetadata("reasonDesc", payload.ReasonDescription);
388394
datum.AddMetadata("errorCode", payload.ErrorCode);
389395
datum.AddMetadata("causedBy", payload.CausedBy);
390396
datum.AddMetadata("httpStatusCode", payload.HttpStatusCode);
@@ -444,6 +450,7 @@ namespace Test
444450
datum.AddMetadata("awsAccount", payload.AwsAccount);
445451
datum.AddMetadata("awsRegion", payload.AwsRegion);
446452
datum.AddMetadata("reason", payload.Reason);
453+
datum.AddMetadata("reasonDesc", payload.ReasonDescription);
447454
datum.AddMetadata("errorCode", payload.ErrorCode);
448455
datum.AddMetadata("causedBy", payload.CausedBy);
449456
datum.AddMetadata("httpStatusCode", payload.HttpStatusCode);

0 commit comments

Comments
 (0)