//------------------------------------------------------------------------------ // // This code was generated by a tool. // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ using Amazon.AwsToolkit.Telemetry.Events.Core; using Amazon.AwsToolkit.Telemetry.Events.Generated; using System; using System.Collections.Generic; /// -------------------------------------------------------------------------------- /// This file is generated from https://github.com/aws/aws-toolkit-common/tree/main/telemetry /// -------------------------------------------------------------------------------- namespace Amazon.AwsToolkit.Telemetry.Events.Tests.Generated { /// Contains methods to record telemetry events public static partial class ToolkitTelemetryEvent { /// Records Telemetry Event: /// Sample event that uses a type from this definition and a type from the common definitions public static void RecordSampleExtendedInvoke(this ITelemetryLogger telemetryLogger, SampleExtendedInvoke payload, Func transformDatum = null) { try { var metrics = new Metrics(); if (payload.CreatedOn.HasValue) { metrics.CreatedOn = payload.CreatedOn.Value; } else { metrics.CreatedOn = System.DateTime.Now; } metrics.Data = new List(); var datum = new MetricDatum(); datum.MetricName = "sample_extendedInvoke"; datum.Unit = Unit.None; datum.Passive = payload.Passive; if (payload.Value.HasValue) { datum.Value = payload.Value.Value; } else { datum.Value = 1; } datum.AddMetadata("awsAccount", payload.AwsAccount); datum.AddMetadata("awsRegion", payload.AwsRegion); datum.AddMetadata("reason", payload.Reason); datum.AddMetadata("errorCode", payload.ErrorCode); datum.AddMetadata("causedBy", payload.CausedBy); datum.AddMetadata("httpStatusCode", payload.HttpStatusCode); datum.AddMetadata("requestId", payload.RequestId); datum.AddMetadata("requestServiceType", payload.RequestServiceType); if (payload.Duration.HasValue) { datum.AddMetadata("duration", payload.Duration.Value); } datum.AddMetadata("locale", payload.Locale); if (payload.Runtime.HasValue) { datum.AddMetadata("runtime", payload.Runtime.Value); } if (payload.ExtendedRuntime.HasValue) { datum.AddMetadata("extendedRuntime", payload.ExtendedRuntime.Value); } datum.AddMetadata("result", payload.Result); datum = datum.InvokeTransform(transformDatum); metrics.Data.Add(datum); telemetryLogger.Record(metrics); } catch (System.Exception e) { telemetryLogger.Logger.Error("Error recording telemetry event", e); System.Diagnostics.Debug.Assert(false, "Error Recording Telemetry"); } } /// Records Telemetry Event: /// Sample event that uses types from this definition only public static void RecordSampleReleaseBees(this ITelemetryLogger telemetryLogger, SampleReleaseBees payload, Func transformDatum = null) { try { var metrics = new Metrics(); if (payload.CreatedOn.HasValue) { metrics.CreatedOn = payload.CreatedOn.Value; } else { metrics.CreatedOn = System.DateTime.Now; } metrics.Data = new List(); var datum = new MetricDatum(); datum.MetricName = "sample_releaseBees"; datum.Unit = Unit.None; datum.Passive = payload.Passive; if (payload.Value.HasValue) { datum.Value = payload.Value.Value; } else { datum.Value = 1; } datum.AddMetadata("awsAccount", payload.AwsAccount); datum.AddMetadata("awsRegion", payload.AwsRegion); datum.AddMetadata("reason", payload.Reason); datum.AddMetadata("errorCode", payload.ErrorCode); datum.AddMetadata("causedBy", payload.CausedBy); datum.AddMetadata("httpStatusCode", payload.HttpStatusCode); datum.AddMetadata("requestId", payload.RequestId); datum.AddMetadata("requestServiceType", payload.RequestServiceType); if (payload.Duration.HasValue) { datum.AddMetadata("duration", payload.Duration.Value); } datum.AddMetadata("locale", payload.Locale); datum.AddMetadata("bees", payload.Bees); datum = datum.InvokeTransform(transformDatum); metrics.Data.Add(datum); telemetryLogger.Record(metrics); } catch (System.Exception e) { telemetryLogger.Logger.Error("Error recording telemetry event", e); System.Diagnostics.Debug.Assert(false, "Error Recording Telemetry"); } } /// Records Telemetry Event: /// Sample event that uses a unit public static void RecordSampleTestRun(this ITelemetryLogger telemetryLogger, SampleTestRun payload, Func transformDatum = null) { try { var metrics = new Metrics(); if (payload.CreatedOn.HasValue) { metrics.CreatedOn = payload.CreatedOn.Value; } else { metrics.CreatedOn = System.DateTime.Now; } metrics.Data = new List(); var datum = new MetricDatum(); datum.MetricName = "sample_testRun"; datum.Unit = Unit.Milliseconds; datum.Passive = payload.Passive; if (payload.Value.HasValue) { datum.Value = payload.Value.Value; } else { datum.Value = 1; } datum.AddMetadata("awsAccount", payload.AwsAccount); datum.AddMetadata("awsRegion", payload.AwsRegion); datum.AddMetadata("reason", payload.Reason); datum.AddMetadata("errorCode", payload.ErrorCode); datum.AddMetadata("causedBy", payload.CausedBy); datum.AddMetadata("httpStatusCode", payload.HttpStatusCode); datum.AddMetadata("requestId", payload.RequestId); datum.AddMetadata("requestServiceType", payload.RequestServiceType); if (payload.Duration.HasValue) { datum.AddMetadata("duration", payload.Duration.Value); } datum.AddMetadata("locale", payload.Locale); datum = datum.InvokeTransform(transformDatum); metrics.Data.Add(datum); telemetryLogger.Record(metrics); } catch (System.Exception e) { telemetryLogger.Logger.Error("Error recording telemetry event", e); System.Diagnostics.Debug.Assert(false, "Error Recording Telemetry"); } } /// Records Telemetry Event: /// Sample event that is passive public static void RecordSamplePassive(this ITelemetryLogger telemetryLogger, SamplePassive payload, Func transformDatum = null) { try { var metrics = new Metrics(); if (payload.CreatedOn.HasValue) { metrics.CreatedOn = payload.CreatedOn.Value; } else { metrics.CreatedOn = System.DateTime.Now; } metrics.Data = new List(); var datum = new MetricDatum(); datum.MetricName = "sample_passive"; datum.Unit = Unit.None; datum.Passive = payload.Passive; if (payload.Value.HasValue) { datum.Value = payload.Value.Value; } else { datum.Value = 1; } datum.AddMetadata("awsAccount", payload.AwsAccount); datum.AddMetadata("awsRegion", payload.AwsRegion); datum.AddMetadata("reason", payload.Reason); datum.AddMetadata("errorCode", payload.ErrorCode); datum.AddMetadata("causedBy", payload.CausedBy); datum.AddMetadata("httpStatusCode", payload.HttpStatusCode); datum.AddMetadata("requestId", payload.RequestId); datum.AddMetadata("requestServiceType", payload.RequestServiceType); if (payload.Duration.HasValue) { datum.AddMetadata("duration", payload.Duration.Value); } datum.AddMetadata("locale", payload.Locale); datum = datum.InvokeTransform(transformDatum); metrics.Data.Add(datum); telemetryLogger.Record(metrics); } catch (System.Exception e) { telemetryLogger.Logger.Error("Error recording telemetry event", e); System.Diagnostics.Debug.Assert(false, "Error Recording Telemetry"); } } } /// Metric field type /// Sample Extended runtime public struct ExtendedRuntime { private string _value; /// dirt public static readonly ExtendedRuntime Dirt = new ExtendedRuntime("dirt"); /// rascal public static readonly ExtendedRuntime Rascal = new ExtendedRuntime("rascal"); public ExtendedRuntime(string value) { this._value = value; } public override string ToString() { return this._value; } } /// Sample event that uses a type from this definition and a type from the common definitions public sealed class SampleExtendedInvoke : BaseTelemetryEvent { /// Optional - The lambda runtime public Runtime? Runtime; /// Optional - Sample Extended runtime public ExtendedRuntime? ExtendedRuntime; /// The result of the operation public Result Result; public SampleExtendedInvoke() { this.Passive = false; } } /// Sample event that uses types from this definition only public sealed class SampleReleaseBees : BaseTelemetryEvent { /// Number of bees public int Bees; public SampleReleaseBees() { this.Passive = false; } } /// Sample event that uses a unit public sealed class SampleTestRun : BaseTelemetryEvent { public SampleTestRun() { this.Passive = false; } } /// Sample event that is passive public sealed class SamplePassive : BaseTelemetryEvent { public SamplePassive() { this.Passive = true; } } }