I'm using Application Insights for Console App (.NET Core 2.1).
I need to gather more information about dependencies(requests/responses) than ApplicationInsights.DependencyCollector
does.
So I've tried the approach described in this blog. And it works for requests.
But it does not work for responses. Because in the code above Activity.Current
is null
:
[DiagnosticName("System.Net.Http.HttpRequestOut.Stop")]
public virtual void OnHttpRequestOutStop(System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpResponseMessage response, TaskStatus requestTaskStatus)
{
Console.WriteLine(Activity.Current);
}
While in the similar code for HttpRequestOut.Start
it has proper value:
[DiagnosticName("System.Net.Http.HttpRequestOut.Start")]
public virtual void OnHttpRequestOutStart(System.Net.Http.HttpRequestMessage request)
{
Console.WriteLine(Activity.Current);
}
Why in System.Net.Http.HttpRequestOut.Stop
event the Activity.Current
is null
?
How can I access the same activity in Start and Stop events?
UPDATE:
I've found some info about the issue here.
This comment really helped.
So I just initialized my 'enrichment' observer class before the telemetry client. And
Activity.Current
is no longernull
inOnHttpRequestOutStop
.