Open kgoderis opened 5 years ago
When the function runs locally (v2.7.1724) then this telemetry is tagged with category Microsoft.Azure.WebJobs.Host.Queues.Listeners.QueueListener. However, running the same code on Azure, the telemetry is not tagged with this category. On the same page, telemetry in the cloud gets a prop_messageCount property, whereas local telemetry does not.
Adding a line to the "logging":"logLevel" section in host.json, for example,
"Microsoft.Azure.WebJobs.Host.Queues.Listeners.QueueListener": "Error"
does not change a dime, e.g. this line is seemingly ignored and all telemetry of that category is logged.
Are you trying to have these persisted in App Insights? Or are you trying to hide them from Live Metrics?
The Live Metrics Stream is meant to be a live "snapshot" into everything happening (and that data is stored in-memory; not all of it is persisted anywhere) -- after we send details to that stream, the filter specified in host.json is applied. There's currently no way to filter from the Live Metrics stream, other than using the Filter built-in to the portal (the little filter next to Sample Telemetry). Using that, you can completely remove traces, or tell it to ignore anything with "QueueListener", for example.
Are you trying to have these persisted in App Insights? Or are you trying to hide them from Live Metrics?
The Live Metrics Stream is meant to be a live "snapshot" into everything happening (and that data is stored in-memory; not all of it is persisted anywhere) -- after we send details to that stream, the filter specified in host.json is applied. There's currently no way to filter from the Live Metrics stream, other than using the Filter built-in to the portal (the little filter next to Sample Telemetry). Using that, you can completely remove traces, or tell it to ignore anything with "QueueListener", for example.
Indeed, I try to filter in in the live metrics stream. I understand the solution, but why doe other filter.json filter seemingly work?
The host.json
you mean?
We made a decision a while ago that we wanted to show everything in the Live Metrics stream, regardless of filter. Since these records aren't persisted anywhere and you're not charged for Live Metrics usage, it wasn't considered an issue.
The best example of why we do this -- you may have very high througput and not want to log any RequestTelemetry, instead relying on the Metrics we log with our Aggregator. But we still wanted you to be able to get a concrete view of the current state in Live Metrics. For that reason, we allow everything through to Live Metrics.
So, we "capture" your filter, and apply it after the details are sent to Live Metrics, but before they're sent to be persisted by App Insights.
I understand it's confusing -- we may re-think how we can make this more obvious.
Hello, I'm facing the same issue as well. It fills the stream with garbage and makes it quite unusable.
I know I can filter it, but since the "filters" can't be saved in the live metrics stream, it is really a pain to do it every time.
is there an appropriate place to raise "we should be able to safe filters on live stream" as an issue?
We're getting more-and-more folks coming to us with confusion around this and filtering. We need to do something to make this more clear. We could do something like:
I think that could strike the right balance of being able to use Live Metrics out-of-the-box for most folks, and also allowing them to control things directly if they want.
Any updates on this?
Recent function hosts generate a lot of
messages that are visible in the "Live Metrics Stream" on Azure Application Insights, but these do not show up when searching in the "Search" functionality of Application Insights.
In the logged entries there is no indication of the LogLevel or so.
How can these entries be filtered or disabled?