public void AiTelemetryConverterTests_ConvertsTrace() { // ARRANGE var timestamp = DateTimeOffset.UtcNow; Telemetry telemetry = new Telemetry() { Ver = 5, DataTypeName = "Trace", DateTime = timestamp.ToString("o"), SamplingRate = new Google.Protobuf.WellKnownTypes.DoubleValue() { Value = 25 }, SequenceNumber = "50", InstrumentationKey = "ikey", Message = new Message() { Ver = 6, Message_ = "Message1", SeverityLevel = LocalForwarder.Library.Inputs.Contracts.SeverityLevel.Warning } }; telemetry.Tags.Add(new ContextTagKeys().SessionId, "sessionId"); telemetry.Tags.Add("ai.internal.sdkVersion", "java:2.1.2"); telemetry.Message.Properties.Add("prop1", "propValue1"); // ACT TraceTelemetry result = AiTelemetryConverter.ConvertTraceToSdkApi(telemetry); // ASSERT Assert.AreEqual("Message1", result.Message); Assert.AreEqual(ApplicationInsights.DataContracts.SeverityLevel.Warning, result.SeverityLevel); Assert.AreEqual("prop1", result.Properties.Single().Key); Assert.AreEqual("propValue1", result.Properties.Single().Value); // common fields Assert.AreEqual("50", result.Sequence); Assert.AreEqual(timestamp, result.Timestamp); Assert.AreEqual("ikey", result.Context.InstrumentationKey); Assert.AreEqual("sessionId", result.Context.Session.Id); Assert.AreEqual("lf_java:2.1.2", result.Context.GetInternalContext().SdkVersion); // sampling fields Assert.IsNull((result as ISupportSampling).SamplingPercentage); }
public void AiTelemetryConverterTests_ConvertsTelemetryWithoutSdkVersion() { // ARRANGE var timestamp = DateTimeOffset.UtcNow; Telemetry trace = new Telemetry { Ver = 5, DataTypeName = "Trace", DateTime = timestamp.ToString("o"), SequenceNumber = "50", InstrumentationKey = "ikey", Message = new Message { Ver = 6, Message_ = "Message1", SeverityLevel = LocalForwarder.Library.Inputs.Contracts.SeverityLevel.Warning } }; Telemetry evnt = new Telemetry { Ver = 5, DataTypeName = "Event", DateTime = timestamp.ToString("o"), SequenceNumber = "50", InstrumentationKey = "ikey", Event = new Event { Ver = 6, Name = "Event1" } }; Telemetry request = new Telemetry { Ver = 5, DataTypeName = "Request", DateTime = timestamp.ToString("o"), SequenceNumber = "50", InstrumentationKey = "ikey", Request = new Request { Ver = 6, Id = "Req1", Name = "Request1", Duration = new Google.Protobuf.WellKnownTypes.Duration() { Seconds = 123 }, Success = new Google.Protobuf.WellKnownTypes.BoolValue() { Value = true }, Source = "Source", Url = "http://microsoft.com/" } }; Telemetry dependency = new Telemetry { Ver = 5, DataTypeName = "Dependency", DateTime = timestamp.ToString("o"), SequenceNumber = "50", InstrumentationKey = "ikey", Dependency = new Dependency { Ver = 6, Name = "Dependency1", Id = "Dep1", ResultCode = "ResultCode1", Duration = new Google.Protobuf.WellKnownTypes.Duration() { Seconds = 123 }, Success = new Google.Protobuf.WellKnownTypes.BoolValue() { Value = true }, Data = "Data", Type = "Type", Target = "Target" } }; Telemetry exception = new Telemetry { Ver = 5, DataTypeName = "Exception", DateTime = timestamp.ToString("o"), SequenceNumber = "50", InstrumentationKey = "ikey", Exception = new LocalForwarder.Library.Inputs.Contracts.Exception { Ver = 6, SeverityLevel = LocalForwarder.Library.Inputs.Contracts.SeverityLevel.Warning, ProblemId = "Problem1", } }; Telemetry metric = new Telemetry { Ver = 5, DataTypeName = "Metric", DateTime = timestamp.ToString("o"), SequenceNumber = "50", InstrumentationKey = "ikey", Metric = new Metric { Ver = 6 } }; metric.Metric.Metrics.Add(new DataPoint { Ns = "ns1", Name = "Metric1", Kind = DataPointType.Aggregation, Value = 11, Count = new Google.Protobuf.WellKnownTypes.Int32Value { Value = 2 }, Min = new Google.Protobuf.WellKnownTypes.DoubleValue { Value = 10 }, Max = new Google.Protobuf.WellKnownTypes.DoubleValue { Value = 12 }, StdDev = new Google.Protobuf.WellKnownTypes.DoubleValue { Value = 0.2 } }); Telemetry avail = new Telemetry { Ver = 5, DataTypeName = "Event", DateTime = timestamp.ToString("o"), SequenceNumber = "50", InstrumentationKey = "ikey", Availability = new Availability { Ver = 6, Id = "Avail1", Name = "Availability1", Duration = new Google.Protobuf.WellKnownTypes.Duration() { Seconds = 123 }, Success = true, RunLocation = "RunLocation", Message = "Message" } }; Telemetry pageView = new Telemetry { Ver = 5, DataTypeName = "PageView", DateTime = timestamp.ToString("o"), SequenceNumber = "50", InstrumentationKey = "ikey", PageView = new PageView { Url = "http://microsoft.com/", Duration = new Google.Protobuf.WellKnownTypes.Duration { Seconds = 123 }, Id = "PageView1", ReferrerUri = "http://none.com", Event = new Event() { Ver = 6, Name = "Event1" } } }; // ACT var traceResult = AiTelemetryConverter.ConvertTraceToSdkApi(trace); var evntResult = AiTelemetryConverter.ConvertEventToSdkApi(evnt); var requestResult = AiTelemetryConverter.ConvertRequestToSdkApi(request); var dependencyResult = AiTelemetryConverter.ConvertDependencyToSdkApi(dependency); var exceptionResult = AiTelemetryConverter.ConvertExceptionToSdkApi(exception); var metricResult = AiTelemetryConverter.ConvertMetricToSdkApi(metric); var availResult = AiTelemetryConverter.ConvertAvailabilityToSdkApi(avail); var pageViewResult = AiTelemetryConverter.ConvertPageViewToSdkApi(pageView); // ASSERT Assert.AreEqual("lf_unspecified:0.0.0", traceResult.Context.GetInternalContext().SdkVersion); Assert.AreEqual("lf_unspecified:0.0.0", evntResult.Context.GetInternalContext().SdkVersion); Assert.AreEqual("lf_unspecified:0.0.0", requestResult.Context.GetInternalContext().SdkVersion); Assert.AreEqual("lf_unspecified:0.0.0", dependencyResult.Context.GetInternalContext().SdkVersion); Assert.AreEqual("lf_unspecified:0.0.0", exceptionResult.Context.GetInternalContext().SdkVersion); Assert.AreEqual("lf_unspecified:0.0.0", metricResult.Context.GetInternalContext().SdkVersion); Assert.AreEqual("lf_unspecified:0.0.0", availResult.Context.GetInternalContext().SdkVersion); Assert.AreEqual("lf_unspecified:0.0.0", pageViewResult.Context.GetInternalContext().SdkVersion); }