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
        }
Пример #2
0
        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
        }