
Standardmäßig wird der Referer, also die Quelle des Aurufs des HTTP-Requests, nicht von der Application Insights Middleware des ASP.NET SDKs gespeichert.
Um dies dennoch im Log zu hinterlegen, muss ein eigener ITelemetryInitializer geschrieben werden.
1 public class HttpRefererTelemetryInitializer : ITelemetryInitializer
2 {
3 private readonly IHttpContextAccessor _httpContextAccessor;
4
5 public HttpRefererTelemetryInitializer(IHttpContextAccessor httpContextAccessor)
6 {
7 _httpContextAccessor = httpContextAccessor;
8 }
9
10 public void Initialize(ITelemetry telemetry)
11 {
12 if (telemetry is RequestTelemetry requestTelemetry)
13 {
14 requestTelemetry.Context.GlobalProperties.Add("Url-Referer",
15 _httpContextAccessor.HttpContext.Request.Headers["Referer"]);
16 }
17 }
18 }
Dieser muss anschließend noch registriert werden
1services.AddSingleton<ITelemetryInitializer, HttpRefererTelemetryInitializer>();

Comments