public void CorrelationInfoIsNotAddedToRequestHeaderIfUserAddDomainToExcludedList() { #if netcoreapp2_0 // Correlation is supported on .Net core. using (var server = new InProcessServer(assemblyName, this.output)) { var dependencyCollectorModule = server.ApplicationServices.GetServices <ITelemetryModule>().OfType <DependencyTrackingTelemetryModule>().Single(); dependencyCollectorModule.ExcludeComponentCorrelationHttpHeadersOnDomains.Add(server.BaseHost); using (var httpClient = new HttpClient()) { var task = httpClient.GetAsync(server.BaseHost + "/"); task.Wait(TestTimeoutMs); } var actual = server.Execute <Envelope>(() => server.Listener.ReceiveItems(TestListenerTimeoutInMs)); this.DebugTelemetryItems(actual); try { var dependencyTelemetry = actual.OfType <TelemetryItem <RemoteDependencyData> >().FirstOrDefault(); Assert.NotNull(dependencyTelemetry); var requestTelemetry = actual.OfType <TelemetryItem <RequestData> >().FirstOrDefault(); Assert.NotNull(requestTelemetry); Assert.NotEqual(requestTelemetry.tags["ai.operation.id"], dependencyTelemetry.tags["ai.operation.id"]); } catch (Exception e) { string data = DebugTelemetryItems(actual); throw new Exception(data, e); } } #endif }
public void CorrelationInfoIsPropagatedToDependendedService() { #if netcoreapp2_0 // Correlation works on .Net core. using (var server = new InProcessServer(assemblyName, this.output)) { using (var httpClient = new HttpClient()) { var task = httpClient.GetAsync(server.BaseHost + "/"); task.Wait(TestTimeoutMs); } var actual = server.Execute <Envelope>(() => server.Listener.ReceiveItems(2, TestListenerTimeoutInMs)); this.DebugTelemetryItems(actual); var dependencyTelemetry = actual.OfType <TelemetryItem <RemoteDependencyData> >().FirstOrDefault(); Assert.NotNull(dependencyTelemetry); var requestTelemetry = actual.OfType <TelemetryItem <RequestData> >().FirstOrDefault(); Assert.NotNull(requestTelemetry); Assert.Equal(requestTelemetry.tags["ai.operation.id"], dependencyTelemetry.tags["ai.operation.id"]); Assert.Contains(dependencyTelemetry.tags["ai.operation.id"], requestTelemetry.tags["ai.operation.parentId"]); } #endif }