public void AzureClientSpansAreCollectedForHttpException() { using (var listener = new DiagnosticListener("Azure.SomeClient")) using (var module = new DependencyTrackingTelemetryModule()) { module.Initialize(this.configuration); var exception = new InvalidOperationException(); Activity httpActivity = new Activity("Azure.SomeClient.Http.Request") .AddTag("http.method", "PATCH") .AddTag("http.url", "http://host/path?query#fragment"); listener.StartActivity(httpActivity, null); listener.Write("Azure.SomeClient.Send.Exception", exception); listener.StopActivity(httpActivity, null); var telemetry = this.sentItems.Last() as DependencyTelemetry; Assert.IsNotNull(telemetry); Assert.AreEqual("PATCH /path", telemetry.Name); Assert.AreEqual("host", telemetry.Target); Assert.AreEqual("http://host/path?query#fragment", telemetry.Data); Assert.IsNull(telemetry.ResultCode); Assert.AreEqual("Http", telemetry.Type); Assert.IsFalse(telemetry.Success.Value); Assert.AreEqual(exception.ToInvariantString(), telemetry.Properties["Error"]); Assert.IsNull(telemetry.Context.Operation.ParentId); Assert.AreEqual(httpActivity.TraceId.ToHexString(), telemetry.Context.Operation.Id); Assert.AreEqual(httpActivity.SpanId.ToHexString(), telemetry.Id); } }
public void AzureClientSpansAreCollectedForEventHubs() { using (var listener = new DiagnosticListener("Azure.SomeClient")) using (var module = new DependencyTrackingTelemetryModule()) { module.Initialize(this.configuration); var exception = new InvalidOperationException(); Activity sendActivity = new Activity("Azure.SomeClient.Send") .AddTag("peer.address", "amqps://eventHub.servicebus.windows.net/") .AddTag("message_bus.destination", "queueName") .AddTag("kind", "producer") .AddTag("component", "eventhubs"); listener.StartActivity(sendActivity, null); listener.Write("Azure.SomeClient.Send.Exception", exception); listener.StopActivity(sendActivity, null); var telemetry = this.sentItems.Last() as DependencyTelemetry; Assert.IsNotNull(telemetry); Assert.AreEqual("SomeClient.Send", telemetry.Name); Assert.AreEqual("amqps://eventHub.servicebus.windows.net/ | queueName", telemetry.Target); Assert.AreEqual(string.Empty, telemetry.Data); Assert.AreEqual(string.Empty, telemetry.ResultCode); Assert.AreEqual("Azure Event Hubs", telemetry.Type); Assert.IsFalse(telemetry.Success.Value); Assert.AreEqual(exception.ToInvariantString(), telemetry.Properties["Error"]); Assert.IsNull(telemetry.Context.Operation.ParentId); Assert.AreEqual(sendActivity.TraceId.ToHexString(), telemetry.Context.Operation.Id); Assert.AreEqual(sendActivity.SpanId.ToHexString(), telemetry.Id); } }
public void AzureClientSpansAreMarkedAsFailed() { using (var listener = new DiagnosticListener("Azure.SomeClient")) using (var module = new DependencyTrackingTelemetryModule()) { module.Initialize(this.configuration); var exception = new InvalidOperationException(); Activity sendActivity = null; var telemetry = this.TrackOperation <DependencyTelemetry>( listener, "Azure.SomeClient.Send", null, () => { sendActivity = Activity.Current; listener.Write("Azure.SomeClient.Send.Exception", exception); }); Assert.IsNotNull(telemetry); Assert.AreEqual("SomeClient.Send", telemetry.Name); Assert.IsFalse(telemetry.Success.Value); Assert.AreEqual(exception.ToInvariantString(), telemetry.Properties["Error"]); Assert.IsNull(telemetry.Context.Operation.ParentId); Assert.AreEqual(sendActivity.TraceId.ToHexString(), telemetry.Context.Operation.Id); Assert.AreEqual(sendActivity.SpanId.ToHexString(), telemetry.Id); } }