Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Application Insights Reporting Duplicate Events for each Server Request

I have an API App running under Azure App Service, with Application Insights installed to track server side telemetry of API calls. When viewing Application Insights in the Azure portal, I am seeing two events for every one server call. Each event has an exact duplicate with the same timestamp, response time, telemetry, etc. I have verified that only one event is in the web server logs, so I'm not accidentally calling the same function twice from the client.

Here are a couple of screenshots to illustrate:

enter image description here

enter image description here

What could be causing this? And how can I fix it?

like image 678
James Richards Avatar asked May 13 '16 23:05

James Richards


People also ask

Where are application insights logs stored?

Application Insights is an Azure service. Security policies are described in the Azure Security, Privacy, and Compliance white paper. The data is stored in Microsoft Azure servers.

How do I get logs from application insights?

View logs in Application InsightsGo to Application Insights resource in your resource group. Go to Logs under Monitoring section. Click on traces eye button to get log traces. Select Time Range and click Run.

How do you query custom events in application insights?

In the Azure Portal, navigate to the Application Insights resource, and click Log Analytics. Log queries help you to fully leverage the value of the data collected in Azure Monitor Logs. Query your custom events by entering “customEvents” in the prompt and click Run.


1 Answers

There is a one known scenario that may lead to the data duplication:

  1. Application is not onboarded to AI SDK is deployed as an Azure Web App
  2. AI Extension is installed to the app -> after this step you start to receive data without need to modify your code
  3. Later on you decided to use more powerful features of AI let's say custom event tracking and on-boarded your application to AI from VS and re-deployed.

Now you may end up in the situation when HTTP module is registered twice and you start to receive duplicate request data. It happens because AI nuget packages add HTTP module definition in web.config, but extension installation drops additional assembly into your application bin folder that registers HTTP module dynamically during app start - Microsoft.AI.HttpModule.dll (Microsoft.ApplicationInsights.Extensibility.HttpModule.dll in previous versions). To correctly handle this case you need to remove extension leftovers during your application deployment by choosing "Settings->Remove additional files from destination" in case of deploying from VS.

like image 120
Yulia Safarova Avatar answered Nov 14 '22 01:11

Yulia Safarova