Skip to content

Commit f1ab2cb

Browse files
committed
Make result a global field in C# Telemetry Generator
1 parent b8bb133 commit f1ab2cb

File tree

13 files changed

+191
-21064
lines changed

13 files changed

+191
-21064
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ build
1616
# C# Telemetry Client Generator Related
1717
telemetry/csharp/buildtemp/**
1818
telemetry/csharp/AwsToolkit.Telemetry.SDK/Generated/**
19-
telemetry/csharp/client-generator-inputs/telemetry-2017-07-25.normal.json
19+
telemetry/csharp/client-generator-inputs/telemetry-2017-07-25.normal.json

telemetry/csharp/AwsToolkit.Telemetry.Events.Generator.Tests/test-data/expectedCode-supplemental.txt

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ namespace Test
6666
datum.AddMetadata("duration", payload.Duration.Value);
6767
}
6868
datum.AddMetadata("locale", payload.Locale);
69+
datum.AddResultToMetadata(payload.Result);
6970

7071
datum = datum.InvokeTransform(transformDatum);
7172

@@ -121,6 +122,7 @@ namespace Test
121122
datum.AddMetadata("duration", payload.Duration.Value);
122123
}
123124
datum.AddMetadata("locale", payload.Locale);
125+
datum.AddResultToMetadata(payload.Result);
124126

125127
datum = datum.InvokeTransform(transformDatum);
126128

@@ -176,6 +178,7 @@ namespace Test
176178
datum.AddMetadata("duration", payload.Duration.Value);
177179
}
178180
datum.AddMetadata("locale", payload.Locale);
181+
datum.AddResultToMetadata(payload.Result);
179182

180183
datum.AddMetadata("attempts", payload.Attempts);
181184

@@ -239,6 +242,7 @@ namespace Test
239242
datum.AddMetadata("duration", payload.Duration.Value);
240243
}
241244
datum.AddMetadata("locale", payload.Locale);
245+
datum.AddResultToMetadata(payload.Result);
242246

243247
datum.AddMetadata("attempts", payload.Attempts);
244248

@@ -302,6 +306,7 @@ namespace Test
302306
datum.AddMetadata("duration", payload.Duration.Value);
303307
}
304308
datum.AddMetadata("locale", payload.Locale);
309+
datum.AddResultToMetadata(payload.Result);
305310

306311
if (payload.Attempts.HasValue)
307312
{
@@ -374,6 +379,7 @@ namespace Test
374379
datum.AddMetadata("duration", payload.Duration.Value);
375380
}
376381
datum.AddMetadata("locale", payload.Locale);
382+
datum.AddResultToMetadata(payload.Result);
377383

378384
datum = datum.InvokeTransform(transformDatum);
379385

@@ -389,7 +395,7 @@ namespace Test
389395
}
390396

391397
/// Emits milliseconds
392-
public sealed class EmitSomeIntMs : BaseTelemetryEvent
398+
public sealed class EmitSomeIntMs : BaseGeneratedTelemetryEvent
393399
{
394400

395401
public EmitSomeIntMs()
@@ -399,7 +405,7 @@ namespace Test
399405
}
400406

401407
/// Emits something without a unit defined
402-
public sealed class EmitNoUnit : BaseTelemetryEvent
408+
public sealed class EmitNoUnit : BaseGeneratedTelemetryEvent
403409
{
404410

405411
public EmitNoUnit()
@@ -409,7 +415,7 @@ namespace Test
409415
}
410416

411417
/// Emits a bunch of metadata varieties
412-
public sealed class EmitSomeBigBlob : BaseTelemetryEvent
418+
public sealed class EmitSomeBigBlob : BaseGeneratedTelemetryEvent
413419
{
414420

415421
/// A generic number of attempts
@@ -431,7 +437,7 @@ namespace Test
431437
}
432438

433439
/// Emits a bunch of metadata varieties - required not set
434-
public sealed class EmitSomeBigBlob2 : BaseTelemetryEvent
440+
public sealed class EmitSomeBigBlob2 : BaseGeneratedTelemetryEvent
435441
{
436442

437443
/// A generic number of attempts
@@ -453,7 +459,7 @@ namespace Test
453459
}
454460

455461
/// Emits a bunch of optional metadata varieties
456-
public sealed class EmitSomeBigOptionalBlob : BaseTelemetryEvent
462+
public sealed class EmitSomeBigOptionalBlob : BaseGeneratedTelemetryEvent
457463
{
458464

459465
/// Optional - A generic number of attempts
@@ -475,7 +481,7 @@ namespace Test
475481
}
476482

477483
/// Emit a passive metric
478-
public sealed class EmitPassive : BaseTelemetryEvent
484+
public sealed class EmitPassive : BaseGeneratedTelemetryEvent
479485
{
480486

481487
public EmitPassive()

telemetry/csharp/AwsToolkit.Telemetry.Events.Generator.Tests/test-data/expectedCode.txt

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ namespace Test
6666
datum.AddMetadata("duration", payload.Duration.Value);
6767
}
6868
datum.AddMetadata("locale", payload.Locale);
69+
datum.AddResultToMetadata(payload.Result);
6970

7071
datum = datum.InvokeTransform(transformDatum);
7172

@@ -121,6 +122,7 @@ namespace Test
121122
datum.AddMetadata("duration", payload.Duration.Value);
122123
}
123124
datum.AddMetadata("locale", payload.Locale);
125+
datum.AddResultToMetadata(payload.Result);
124126

125127
datum = datum.InvokeTransform(transformDatum);
126128

@@ -176,6 +178,7 @@ namespace Test
176178
datum.AddMetadata("duration", payload.Duration.Value);
177179
}
178180
datum.AddMetadata("locale", payload.Locale);
181+
datum.AddResultToMetadata(payload.Result);
179182

180183
datum.AddMetadata("attempts", payload.Attempts);
181184

@@ -239,6 +242,7 @@ namespace Test
239242
datum.AddMetadata("duration", payload.Duration.Value);
240243
}
241244
datum.AddMetadata("locale", payload.Locale);
245+
datum.AddResultToMetadata(payload.Result);
242246

243247
datum.AddMetadata("attempts", payload.Attempts);
244248

@@ -302,6 +306,7 @@ namespace Test
302306
datum.AddMetadata("duration", payload.Duration.Value);
303307
}
304308
datum.AddMetadata("locale", payload.Locale);
309+
datum.AddResultToMetadata(payload.Result);
305310

306311
if (payload.Attempts.HasValue)
307312
{
@@ -374,6 +379,7 @@ namespace Test
374379
datum.AddMetadata("duration", payload.Duration.Value);
375380
}
376381
datum.AddMetadata("locale", payload.Locale);
382+
datum.AddResultToMetadata(payload.Result);
377383

378384
datum = datum.InvokeTransform(transformDatum);
379385

@@ -413,7 +419,7 @@ namespace Test
413419
}
414420

415421
/// Emits milliseconds
416-
public sealed class EmitSomeIntMs : BaseTelemetryEvent
422+
public sealed class EmitSomeIntMs : BaseGeneratedTelemetryEvent
417423
{
418424

419425
public EmitSomeIntMs()
@@ -423,7 +429,7 @@ namespace Test
423429
}
424430

425431
/// Emits something without a unit defined
426-
public sealed class EmitNoUnit : BaseTelemetryEvent
432+
public sealed class EmitNoUnit : BaseGeneratedTelemetryEvent
427433
{
428434

429435
public EmitNoUnit()
@@ -433,7 +439,7 @@ namespace Test
433439
}
434440

435441
/// Emits a bunch of metadata varieties
436-
public sealed class EmitSomeBigBlob : BaseTelemetryEvent
442+
public sealed class EmitSomeBigBlob : BaseGeneratedTelemetryEvent
437443
{
438444

439445
/// A generic number of attempts
@@ -455,7 +461,7 @@ namespace Test
455461
}
456462

457463
/// Emits a bunch of metadata varieties - required not set
458-
public sealed class EmitSomeBigBlob2 : BaseTelemetryEvent
464+
public sealed class EmitSomeBigBlob2 : BaseGeneratedTelemetryEvent
459465
{
460466

461467
/// A generic number of attempts
@@ -477,7 +483,7 @@ namespace Test
477483
}
478484

479485
/// Emits a bunch of optional metadata varieties
480-
public sealed class EmitSomeBigOptionalBlob : BaseTelemetryEvent
486+
public sealed class EmitSomeBigOptionalBlob : BaseGeneratedTelemetryEvent
481487
{
482488

483489
/// Optional - A generic number of attempts
@@ -499,7 +505,7 @@ namespace Test
499505
}
500506

501507
/// Emit a passive metric
502-
public sealed class EmitPassive : BaseTelemetryEvent
508+
public sealed class EmitPassive : BaseGeneratedTelemetryEvent
503509
{
504510

505511
public EmitPassive()

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

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@ public class DefinitionsBuilder
1919
private const string MetadataEntryFullName = "MetadataEntry";
2020
private const string MetricDatumFullName = "MetricDatum";
2121
private const string AddMetadataMethodName = "AddMetadata";
22+
private const string AddResultToMetadataMethodName = "AddResultToMetadata";
2223
private const string InvokeTransformMethodName = "InvokeTransform";
2324

2425
// contains metadata fields that should be skipped when generating code.
25-
// These fields are covered by the class BaseTelemetryEvent
26+
// These fields are covered by the BaseTelemetryEvent and BaseGeneratedTelemetryEvent classes
2627
private static readonly string[] ImplicitFields =
2728
{
29+
"result",
2830
"reason",
2931
"errorCode",
3032
"causedBy",
@@ -283,7 +285,7 @@ private CodeTypeDeclaration CreateMetricDataClass(Metric metric)
283285
TypeAttributes = TypeAttributes.Public | TypeAttributes.Sealed
284286
};
285287

286-
cls.BaseTypes.Add("BaseTelemetryEvent");
288+
cls.BaseTypes.Add("BaseGeneratedTelemetryEvent");
287289

288290
if (!string.IsNullOrWhiteSpace(metric.description))
289291
{
@@ -455,7 +457,7 @@ private CodeMemberMethod CreateRecordMetricMethodByDataClass(Metric metric)
455457
// {
456458
// datum.AddMetadata("duration", payload.Duration.Value);
457459
// }
458-
var payloadDuration= new CodeFieldReferenceExpression(payload, "Duration");
460+
var payloadDuration = new CodeFieldReferenceExpression(payload, "Duration");
459461
var hasValueDuration = new CodeFieldReferenceExpression(payloadDuration, "HasValue");
460462
var durationMetadata = new CodeMethodInvokeExpression(datumAddData,
461463
new CodePrimitiveExpression("duration"), new CodeFieldReferenceExpression(payloadDuration, "Value"));
@@ -467,6 +469,12 @@ private CodeMemberMethod CreateRecordMetricMethodByDataClass(Metric metric)
467469
tryStatements.Add(new CodeExpressionStatement(new CodeMethodInvokeExpression(datumAddData,
468470
new CodePrimitiveExpression("locale"), payloadLocale)));
469471

472+
// Generate: datum.AddResultToMetadata(payload.Result);
473+
var payloadResult = new CodeFieldReferenceExpression(payload, "Result");
474+
tryStatements.Add(new CodeExpressionStatement(new CodeMethodInvokeExpression(
475+
new CodeMethodReferenceExpression(datum, AddResultToMetadataMethodName),
476+
payloadResult)));
477+
470478
// Set MetricDatum Metadata values
471479
metric.metadata?
472480
.Where(metadata => !ImplicitFields.Contains(metadata.type))

telemetry/csharp/AwsToolkit.Telemetry.Events.Tests/AwsToolkit.Telemetry.Events.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,6 @@
3131
</None>
3232
</ItemGroup>
3333
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
34-
<Exec Command="rem BUILD THE GENERATOR, THEN USE IT TO GENERATE CODE INTO THE TEST PROJECT&#xD;&#xA;dotnet build &quot;$(SolutionDir)\AwsToolkit.Telemetry.Events.Generator\AwsToolkit.Telemetry.Events.Generator.csproj&quot;&#xD;&#xA;dotnet run --project &quot;$(SolutionDir)\AwsToolkit.Telemetry.Events.Generator\AwsToolkit.Telemetry.Events.Generator.csproj&quot; -o $(ProjectDir)\Generated&#xD;&#xA;dotnet run --project &quot;$(SolutionDir)\AwsToolkit.Telemetry.Events.Generator\AwsToolkit.Telemetry.Events.Generator.csproj&quot; -o $(ProjectDir)\Generated --namespace Amazon.AwsToolkit.Telemetry.Events.Tests.Generated --s supplementDefinitions.json --f SupplementalCode.cs&#xD;&#xA;" />
34+
<Exec Command="rem BUILD THE GENERATOR, THEN USE IT TO GENERATE CODE INTO THE TEST PROJECT&#xD;&#xA;dotnet build &quot;$(SolutionDir)\AwsToolkit.Telemetry.Events.Generator\AwsToolkit.Telemetry.Events.Generator.csproj&quot;&#xD;&#xA;dotnet run --project &quot;$(SolutionDir)\AwsToolkit.Telemetry.Events.Generator\AwsToolkit.Telemetry.Events.Generator.csproj&quot; -o $(ProjectDir)\Generated --namespace Amazon.AwsToolkit.Telemetry.Events.Tests.Generated --s supplementDefinitions.json --f SupplementalCode.cs&#xD;&#xA;" />
3535
</Target>
3636
</Project>

0 commit comments

Comments
 (0)