/// <summary> /// Initializes a new instance of the <see cref="HttpWebRequestInstrumentation"/> class. /// </summary> /// <param name="tracer">Tracer to record traced with.</param> /// <param name="options">Configuration options for HttpWebRequest instrumentation.</param> public HttpWebRequestInstrumentation(Tracer tracer, HttpClientInstrumentationOptions options) { #if NET461 GC.KeepAlive(HttpWebRequestDiagnosticSource.Instance); this.diagnosticSourceSubscriber = new DiagnosticSourceSubscriber(new HttpWebRequestDiagnosticListener(tracer, options), options.EventFilter); this.diagnosticSourceSubscriber.Subscribe(); #endif }
internal bool EventFilter(HttpWebRequest request) { Uri requestUri; if (request.Method == "POST" && (requestUri = request.RequestUri) != null && HttpClientInstrumentationOptions.IsInternalUrl(requestUri)) { return(false); } return(this.FilterFunc?.Invoke(request) ?? true); }
/// <summary> /// Initializes a new instance of the <see cref="DependenciesInstrumentation"/> class. /// </summary> /// <param name="tracerFactory">Tracer factory to get a tracer from.</param> /// <param name="httpOptions">Http configuration options.</param> /// <param name="sqlOptions">Sql configuration options.</param> public DependenciesInstrumentation(TracerFactoryBase tracerFactory, HttpClientInstrumentationOptions httpOptions = null, SqlClientInstrumentationOptions sqlOptions = null) { if (tracerFactory == null) { throw new ArgumentNullException(nameof(tracerFactory)); } var assemblyVersion = typeof(DependenciesInstrumentation).Assembly.GetName().Version; var httpClientListener = new HttpClientInstrumentation(tracerFactory.GetTracer(nameof(HttpClientInstrumentation), "semver:" + assemblyVersion), httpOptions ?? new HttpClientInstrumentationOptions()); var httpWebRequestInstrumentation = new HttpWebRequestInstrumentation(tracerFactory.GetTracer(nameof(HttpWebRequestInstrumentation), "semver:" + assemblyVersion), httpOptions ?? new HttpClientInstrumentationOptions()); var azureClientsListener = new AzureClientsInstrumentation(tracerFactory.GetTracer(nameof(AzureClientsInstrumentation), "semver:" + assemblyVersion)); var azurePipelineListener = new AzurePipelineInstrumentation(tracerFactory.GetTracer(nameof(AzurePipelineInstrumentation), "semver:" + assemblyVersion)); var sqlClientListener = new SqlClientInstrumentation(tracerFactory.GetTracer(nameof(AzurePipelineInstrumentation), "semver:" + assemblyVersion), sqlOptions ?? new SqlClientInstrumentationOptions()); this.instrumentations.Add(httpClientListener); this.instrumentations.Add(httpWebRequestInstrumentation); this.instrumentations.Add(azureClientsListener); this.instrumentations.Add(azurePipelineListener); this.instrumentations.Add(sqlClientListener); }
/// <summary> /// Initializes a new instance of the <see cref="HttpClientInstrumentation"/> class. /// </summary> /// <param name="activitySource">ActivitySource adapter instance.</param> /// <param name="options">Configuration options for dependencies instrumentation.</param> public HttpClientInstrumentation(ActivitySourceAdapter activitySource, HttpClientInstrumentationOptions options) { this.diagnosticSourceSubscriber = new DiagnosticSourceSubscriber(new HttpHandlerDiagnosticListener(options, activitySource), options.EventFilter); this.diagnosticSourceSubscriber.Subscribe(); }
/// <summary> /// Initializes a new instance of the <see cref="HttpClientInstrumentation"/> class. /// </summary> /// <param name="tracer">Tracer to record traced with.</param> /// <param name="options">Configuration options for dependencies instrumentation.</param> public HttpClientInstrumentation(Tracer tracer, HttpClientInstrumentationOptions options) { this.diagnosticSourceSubscriber = new DiagnosticSourceSubscriber(new HttpHandlerDiagnosticListener(tracer, options), options.EventFilter); this.diagnosticSourceSubscriber.Subscribe(); }