Initialize() public method

Initializes the telemetry module.
public Initialize ( Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration configuration ) : void
configuration Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration Telemetry configuration to use for initialization.
return void
        private RequestTrackingTelemetryModule RequestTrackingTelemetryModuleFactory(TelemetryConfiguration config = null)
        {
            var module = new RequestTrackingTelemetryModule();

            module.OverrideCorrelationIdLookupHelper(this.correlationIdLookupHelper);
            module.Initialize(config ?? this.CreateDefaultConfig(HttpModuleHelper.GetFakeHttpContext()));
            return(module);
        }
示例#2
0
        private RequestTrackingTelemetryModule RequestTrackingTelemetryModuleFactory(TelemetryConfiguration config = null)
        {
            var module = new RequestTrackingTelemetryModule()
            {
                EnableChildRequestTrackingSuppression = false
            };

            module.Initialize(config ?? this.CreateDefaultConfig(HttpModuleHelper.GetFakeHttpContext()));
            return(module);
        }
        public void OnEndCreatesRequestTelemetryIfBeginWasNotCalled()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();

            var module = new RequestTrackingTelemetryModule();

            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnEndRequest(context);

            Assert.NotNull(context.GetRequestTelemetry());
        }
        public void OnEndSetsDurationToZeroIfBeginWasNotCalled()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();

            var module = new RequestTrackingTelemetryModule();

            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnEndRequest(context);

            Assert.Equal(0, context.GetRequestTelemetry().Duration.Ticks);
        }
        public void RequestIdIsAvailableAfterOnBegin()
        {
            var context          = HttpModuleHelper.GetFakeHttpContext();
            var requestTelemetry = context.CreateRequestTelemetryPrivate();

            var module = new RequestTrackingTelemetryModule();

            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnBeginRequest(context);

            Assert.True(!string.IsNullOrEmpty(requestTelemetry.Id));
        }
        public void OnEndSetsDurationToPositiveValue()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();

            var module = new RequestTrackingTelemetryModule();

            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnBeginRequest(context);
            module.OnEndRequest(context);

            Assert.True(context.GetRequestTelemetry().Duration.TotalMilliseconds >= 0);
        }
        public void OnEndSetsUrl()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();

            var module = new RequestTrackingTelemetryModule();

            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnBeginRequest(context);
            module.OnEndRequest(context);

            Assert.Equal(context.Request.Url, context.GetRequestTelemetry().Url);
        }
        public void OnEndSetsResponseCode()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();

            context.Response.StatusCode = 401;

            var module = new RequestTrackingTelemetryModule();

            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnBeginRequest(context);
            module.OnEndRequest(context);

            Assert.Equal("401", context.GetRequestTelemetry().ResponseCode);
        }
        public void SdkVersionHasCorrectFormat()
        {
            string expectedVersion = SdkVersionHelper.GetExpectedSdkVersion(typeof(RequestTrackingTelemetryModule), prefix: "web:");

            var context = HttpModuleHelper.GetFakeHttpContext();

            var module = new RequestTrackingTelemetryModule();

            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnBeginRequest(context);
            module.OnEndRequest(context);

            Assert.Equal(expectedVersion, context.GetRequestTelemetry().Context.GetInternalContext().SdkVersion);
        }
        public void OnBeginRequestSetsTimeIfItWasNotAssignedBefore()
        {
            var context          = HttpModuleHelper.GetFakeHttpContext();
            var requestTelemetry = context.CreateRequestTelemetryPrivate();

            requestTelemetry.Timestamp = default(DateTimeOffset);

            var module = new RequestTrackingTelemetryModule();

            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnBeginRequest(context);

            Assert.NotEqual(default(DateTimeOffset), requestTelemetry.Timestamp);
        }
        public void NeedProcessRequestReturnsTrueForNon200()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();
            context.Response.StatusCode = 500;
            context.Handler = new System.Web.Handlers.AssemblyResourceLoader();

            var requestTelemetry = context.CreateRequestTelemetryPrivate();
            requestTelemetry.Start();

            var module = new RequestTrackingTelemetryModule();
            var configuration = TelemetryConfiguration.CreateDefault();
            module.Initialize(configuration);

            Assert.True(module.NeedProcessRequest(context));
        }
        public void OnBeginRequestDoesNotSetTimeIfItWasAssignedBefore()
        {
            var startTime = DateTimeOffset.UtcNow;

            var context          = HttpModuleHelper.GetFakeHttpContext();
            var requestTelemetry = context.CreateRequestTelemetryPrivate();

            requestTelemetry.Timestamp = startTime;

            var module = new RequestTrackingTelemetryModule();

            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnBeginRequest(context);

            Assert.Equal(startTime, requestTelemetry.Timestamp);
        }
        public void OnEndDoesNotOverrideUrl()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();

            var module = new RequestTrackingTelemetryModule();

            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnBeginRequest(context);
            var requestTelemetry = context.GetRequestTelemetry();

            requestTelemetry.Url = new Uri("http://test/");

            module.OnEndRequest(context);

            Assert.Equal("http://test/", requestTelemetry.Url.OriginalString);
        }
        public void NeedProcessRequestReturnsFalseForCustomHandler()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();
            context.Response.StatusCode = 200;
            context.Handler = new FakeHttpHandler();

            var requestTelemetry = context.CreateRequestTelemetryPrivate();
            requestTelemetry.Start();

            var module = new RequestTrackingTelemetryModule();
            module.Handlers.Add("Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModuleTest+FakeHttpHandler");
            var configuration = TelemetryConfiguration.CreateDefault();
            module.Initialize(configuration);

            Assert.False(module.NeedProcessRequest(context));
        }
        public void NeedProcessRequestReturnsTrueForNon200()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();

            context.Response.StatusCode = 500;
            context.Handler             = new System.Web.Handlers.AssemblyResourceLoader();

            var requestTelemetry = context.CreateRequestTelemetryPrivate();

            requestTelemetry.Start();

            var module        = new RequestTrackingTelemetryModule();
            var configuration = TelemetryConfiguration.CreateDefault();

            module.Initialize(configuration);

            Assert.True(module.NeedProcessRequest(context));
        }
        public void OnEndDoesNotOverrideResponseCode()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();

            context.Response.StatusCode = 300;

            var module = new RequestTrackingTelemetryModule();

            module.Initialize(TelemetryConfiguration.CreateDefault());

            module.OnBeginRequest(context);
            var requestTelemetry = context.GetRequestTelemetry();

            requestTelemetry.ResponseCode = "Test";

            module.OnEndRequest(context);

            Assert.Equal("Test", requestTelemetry.ResponseCode);
        }
        public void NeedProcessRequestReturnsTrueForUnknownHandler()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();

            context.Response.StatusCode = 200;
            context.Handler             = new FakeHttpHandler();

            var requestTelemetry = context.CreateRequestTelemetryPrivate();

            requestTelemetry.Start();

            using (var module = new RequestTrackingTelemetryModule())
            {
                var configuration = TelemetryConfiguration.CreateDefault();
                module.Initialize(configuration);

                Assert.IsTrue(module.NeedProcessRequest(context));
            }
        }
        public void NeedProcessRequestReturnsFalseForCustomHandler()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();

            context.Response.StatusCode = 200;
            context.Handler             = new FakeHttpHandler();

            var requestTelemetry = context.CreateRequestTelemetryPrivate();

            requestTelemetry.Start();

            var module = new RequestTrackingTelemetryModule();

            module.Handlers.Add("Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModuleTest+FakeHttpHandler");
            var configuration = TelemetryConfiguration.CreateDefault();

            module.Initialize(configuration);

            Assert.False(module.NeedProcessRequest(context));
        }
示例#19
0
        public void OnEndAddsSourceFieldForRequestWithSourceIkey()
        {
            string hashedIkey = "vwuSMCFBLdIHSdeEXvFnmiXPO5ilQRqw9kO/SE5ino4=";

            Dictionary <string, string> headers = new Dictionary <string, string>();

            headers.Add(RequestResponseHeaders.SourceInstrumentationKeyHeader, hashedIkey);

            var context = HttpModuleHelper.GetFakeHttpContext(headers);

            var module = new RequestTrackingTelemetryModule();
            var config = TelemetryConfiguration.CreateDefault();

            config.InstrumentationKey = Guid.NewGuid().ToString();
            module.Initialize(config);
            module.OnBeginRequest(context);
            module.OnEndRequest(context);

            Assert.Equal(hashedIkey, context.GetRequestTelemetry().Source);
        }
        public void OnEndTracksRequest()
        {
            var sendItems            = new List <ITelemetry>();
            var stubTelemetryChannel = new StubTelemetryChannel {
                OnSend = item => sendItems.Add(item)
            };
            var configuration = new TelemetryConfiguration
            {
                InstrumentationKey = Guid.NewGuid().ToString(),
                TelemetryChannel   = stubTelemetryChannel
            };

            var module = new RequestTrackingTelemetryModule();

            module.Initialize(configuration);
            module.OnBeginRequest(null);
            module.OnEndRequest(null);

            Assert.Equal(1, sendItems.Count);
        }
示例#21
0
        private RequestTrackingTelemetryModule RequestTrackingTelemetryModuleFactory(TelemetryConfiguration config = null, bool enableW3CTracing = false)
        {
            var module = new RequestTrackingTelemetryModule()
            {
                EnableChildRequestTrackingSuppression = false,
                EnableW3CHeadersExtraction            = enableW3CTracing
            };

            if (config == null)
            {
                config = this.CreateDefaultConfig(HttpModuleHelper.GetFakeHttpContext());
            }

            if (enableW3CTracing)
            {
                config.TelemetryInitializers.Add(new W3COperationCorrelationTelemetryInitializer());
            }

            module.Initialize(config);

            return(module);
        }
示例#22
0
        public void OnEndDoesNotAddSourceFieldForRequestForSameComponent()
        {
            string instrumentationKey = "b3eb14d6-bb32-4542-9b93-473cd94aaedf";

            // Here is the equivalent generated IKey Hash
            string hashedIkey = "o05HMrc4Og8W1Jyy60JPDPxxQy3bOKyuaj6HudZHTjE=";

            Dictionary <string, string> headers = new Dictionary <string, string>();

            headers.Add(RequestResponseHeaders.SourceInstrumentationKeyHeader, hashedIkey);

            var context = HttpModuleHelper.GetFakeHttpContext(headers);

            var module = new RequestTrackingTelemetryModule();
            var config = TelemetryConfiguration.CreateDefault();

            config.InstrumentationKey = instrumentationKey;
            module.Initialize(config);
            module.OnBeginRequest(context);
            module.OnEndRequest(context);

            Assert.True(string.IsNullOrEmpty(context.GetRequestTelemetry().Source));
        }
        public void RequestIdIsAvailableAfterOnBegin()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();
            var requestTelemetry = context.CreateRequestTelemetryPrivate();

            var module = new RequestTrackingTelemetryModule();

            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnBeginRequest(context);

            Assert.True(!string.IsNullOrEmpty(requestTelemetry.Id));
        }
        public void OnBeginRequestDoesNotSetTimeIfItWasAssignedBefore()
        {
            var startTime = DateTimeOffset.UtcNow;

            var context = HttpModuleHelper.GetFakeHttpContext();
            var requestTelemetry = context.CreateRequestTelemetryPrivate();
            requestTelemetry.Timestamp = startTime;

            var module = new RequestTrackingTelemetryModule();
            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnBeginRequest(context);

            Assert.Equal(startTime, requestTelemetry.Timestamp);
        }
        public void NeedProcessRequestReturnsTrueForUnknownHandler()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();
            context.Response.StatusCode = 200;
            context.Handler = new FakeHttpHandler();

            var requestTelemetry = context.CreateRequestTelemetryPrivate();
            requestTelemetry.Start();

            using (var module = new RequestTrackingTelemetryModule())
            {
                var configuration = TelemetryConfiguration.CreateDefault();
                module.Initialize(configuration);

                Assert.IsTrue(module.NeedProcessRequest(context));
            }
        }
        public void OnEndAddsSourceFieldForRequestWithSourceIkey()
        {
            string hashedIkey = "vwuSMCFBLdIHSdeEXvFnmiXPO5ilQRqw9kO/SE5ino4=";

            Dictionary<string, string> headers = new Dictionary<string, string>();
            headers.Add(RequestResponseHeaders.SourceInstrumentationKeyHeader, hashedIkey);

            var context = HttpModuleHelper.GetFakeHttpContext(headers);

            var module = new RequestTrackingTelemetryModule();
            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnBeginRequest(context);
            module.OnEndRequest(context);

            Assert.Equal(hashedIkey, context.GetRequestTelemetry().Source);
        }
        public void OnBeginRequestSetsTimeIfItWasNotAssignedBefore()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();
            var requestTelemetry = context.CreateRequestTelemetryPrivate();
            requestTelemetry.Timestamp = default(DateTimeOffset);

            var module = new RequestTrackingTelemetryModule();
            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnBeginRequest(context);

            Assert.NotEqual(default(DateTimeOffset), requestTelemetry.Timestamp);
        }
        public void OnEndDoesNotOverrideResponseCode()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();
            context.Response.StatusCode = 300;

            var module = new RequestTrackingTelemetryModule();
            module.Initialize(TelemetryConfiguration.CreateDefault());

            module.OnBeginRequest(context);
            var requestTelemetry = context.GetRequestTelemetry();
            requestTelemetry.ResponseCode = "Test";

            module.OnEndRequest(context);

            Assert.Equal("Test", requestTelemetry.ResponseCode);
        }
        public void OnEndCreatesRequestTelemetryIfBeginWasNotCalled()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();

            var module = new RequestTrackingTelemetryModule();
            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnEndRequest(context);

            Assert.NotNull(context.GetRequestTelemetry());
        }
        public void OnEndSetsDurationToPositiveValue()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();

            var module = new RequestTrackingTelemetryModule();
            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnBeginRequest(context);
            module.OnEndRequest(context);

            Assert.True(context.GetRequestTelemetry().Duration.TotalMilliseconds >= 0);
        }
        public void OnEndDoesNotOverrideUrl()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();

            var module = new RequestTrackingTelemetryModule();
            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnBeginRequest(context);
            var requestTelemetry = context.GetRequestTelemetry();
            requestTelemetry.Url = new Uri("http://test/");

            module.OnEndRequest(context);

            Assert.Equal("http://test/", requestTelemetry.Url.OriginalString);
        }
        public void OnEndSetsDurationToZeroIfBeginWasNotCalled()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();

            var module = new RequestTrackingTelemetryModule();
            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnEndRequest(context);

            Assert.Equal(0, context.GetRequestTelemetry().Duration.Ticks);
        }
        public void OnEndSetsResponseCode()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();
            context.Response.StatusCode = 401;

            var module = new RequestTrackingTelemetryModule();
            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnBeginRequest(context);
            module.OnEndRequest(context);

            Assert.Equal("401", context.GetRequestTelemetry().ResponseCode);
        }
        public void OnEndSetsUrl()
        {
            var context = HttpModuleHelper.GetFakeHttpContext();

            var module = new RequestTrackingTelemetryModule();
            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnBeginRequest(context);
            module.OnEndRequest(context);

            Assert.Equal(context.Request.Url, context.GetRequestTelemetry().Url);
        }
        public void OnEndTracksRequest()
        {
            var sendItems = new List<ITelemetry>();
            var stubTelemetryChannel = new StubTelemetryChannel { OnSend = item => sendItems.Add(item) };
            var configuration = new TelemetryConfiguration
            {
                InstrumentationKey = Guid.NewGuid().ToString(),
                TelemetryChannel = stubTelemetryChannel
            };

            var module = new RequestTrackingTelemetryModule();
            module.Initialize(configuration);
            module.OnBeginRequest(null);
            module.OnEndRequest(null);

            Assert.Equal(1, sendItems.Count);
        }
        public void SdkVersionHasCorrectFormat()
        {
            string expectedVersion = SdkVersionHelper.GetExpectedSdkVersion(typeof(RequestTrackingTelemetryModule), prefix: "web:");

            var context = HttpModuleHelper.GetFakeHttpContext();

            var module = new RequestTrackingTelemetryModule();
            module.Initialize(TelemetryConfiguration.CreateDefault());
            module.OnBeginRequest(context);
            module.OnEndRequest(context);

            Assert.Equal(expectedVersion, context.GetRequestTelemetry().Context.GetInternalContext().SdkVersion);
        }