private static void AddRequestTagsAndInstrumentRequest(HttpWebRequest request, Activity activity) { activity.DisplayName = HttpTagHelper.GetOperationNameForHttpMethod(request.Method); InstrumentRequest(request, activity); if (activity.IsAllDataRequested) { try { Options.Enrich?.Invoke(activity, "OnStartActivity", request); } catch (Exception ex) { HttpInstrumentationEventSource.Log.EnrichmentException(ex); } activity.SetTag(SemanticConventions.AttributeHttpMethod, request.Method); activity.SetTag(SemanticConventions.AttributeHttpHost, HttpTagHelper.GetHostTagValueFromRequestUri(request.RequestUri)); activity.SetTag(SemanticConventions.AttributeHttpUrl, request.RequestUri.OriginalString); if (Options.SetHttpFlavor) { activity.SetTag(SemanticConventions.AttributeHttpFlavor, HttpTagHelper.GetFlavorTagValueFromProtocolVersion(request.ProtocolVersion)); } } }
private static void AddRequestTagsAndInstrumentRequest(HttpWebRequest request, Activity activity) { activity.DisplayName = HttpTagHelper.GetOperationNameForHttpMethod(request.Method); InstrumentRequest(request, activity); if (activity.IsAllDataRequested) { activity.SetCustomProperty(RequestCustomPropertyName, request); activity.SetTag(SemanticConventions.AttributeHttpMethod, request.Method); activity.SetTag(SemanticConventions.AttributeHttpHost, HttpTagHelper.GetHostTagValueFromRequestUri(request.RequestUri)); activity.SetTag(SemanticConventions.AttributeHttpUrl, request.RequestUri.OriginalString); if (Options.SetHttpFlavor) { activity.SetTag(SemanticConventions.AttributeHttpFlavor, HttpTagHelper.GetFlavorTagValueFromProtocolVersion(request.ProtocolVersion)); } } }
public override void OnStartActivity(Activity activity, object payload) { if (!(this.startRequestFetcher.Fetch(payload) is HttpRequestMessage request)) { HttpInstrumentationEventSource.Log.NullPayload(nameof(HttpHandlerDiagnosticListener), nameof(this.OnStartActivity)); return; } if (this.options.TextFormat.IsInjected(request, HttpRequestMessageHeaderValuesGetter)) { // this request is already instrumented, we should back off activity.IsAllDataRequested = false; return; } activity.SetKind(ActivityKind.Client); activity.DisplayName = HttpTagHelper.GetOperationNameForHttpMethod(request.Method); this.activitySource.Start(activity); if (activity.IsAllDataRequested) { activity.AddTag(SemanticConventions.AttributeHttpMethod, HttpTagHelper.GetNameForHttpMethod(request.Method)); activity.AddTag(SemanticConventions.AttributeHttpHost, HttpTagHelper.GetHostTagValueFromRequestUri(request.RequestUri)); activity.AddTag(SemanticConventions.AttributeHttpUrl, request.RequestUri.OriginalString); if (this.options.SetHttpFlavor) { activity.AddTag(SemanticConventions.AttributeHttpFlavor, HttpTagHelper.GetFlavorTagValueFromProtocolVersion(request.Version)); } } if (!(this.httpClientSupportsW3C && this.options.TextFormat is TraceContextFormat)) { this.options.TextFormat.Inject(activity.Context, request, HttpRequestMessageHeaderValueSetter); } }