App Insight performance overhead

Eliot Chen 91 Reputation points
2022-02-04T05:27:59.73+00:00

Hi,

Microsoft has following offical statement:

"The impact on your app's performance is small. Tracking calls are non-blocking, and are batched and sent in a separate thread."

How do we interpret small? Is it 5%, 10% or 25% or it depends on particular service (APIM, function app, or B2C etc) and how App Insight is configured (SDK, agent or other)

I like to access stats collected or people's knowledge/experience on performance overhead when a service is instrumented by App Insight. This will be of great help as we are going through performance/stress testing of flows enabled by Azure.

Cheers,

Eliot

Azure Monitor
Azure Monitor
An Azure service that is used to collect, analyze, and act on telemetry data from Azure and on-premises environments.
3,644 questions
{count} votes

1 answer

Sort by: Most helpful
  1. Alistair Ross 7,466 Reputation points Microsoft Employee
    2022-02-08T11:32:19.167+00:00

    TL:DR - The impact on your application, while minimal, is going to be down to you. How you have implemented your application, what SDK you are using and resources available to your application? These are all factors that will impact performance.

    Taken from https://github.com/MicrosoftDocs/azure-docs/issues/25528#issuecomment-466428449

    A couple of quick thoughts on this one.

    The Application Insights SDK and instrumentation is designed to be extremely lightweight and have minimal impact on the performance of your application. With that said, anytime you use a monitoring product or introduce change to a system or application there is a chance for some unforeseen interaction to occur which could negatively impact performance.

    With the Application Insights SDKs there is also the added flexibility that you get to choose how and where you instrument your application. This level of flexibility is incredibly powerful, and allows you to gain insights that might otherwise not be possible with more traditional closed source agent based monitoring solutions. But it also creates a scenario where it is possible to unintentionally instrument your application in an inefficient way.

    If you suspect from testing that you are experiencing a negative performance impact from Application Insights our first recommendation is to check and confirm that you are running the latest stable version of the SDK. If you find that you are still experiencing a problem on the latest version that does not occur when Application Insights is turned off, it is worth examining the release notes for the beta releases for the SDK you are using to confirm that there are no bug-fixes that sound like they would address the issue you are experiencing. For example here are the release notes for the .NET SDK which include bug fixes introduced in the latest beta releases: https://github.com/Microsoft/ApplicationInsights-dotnet/blob/develop/CHANGELOG.md

    If you find that you are still experiencing a performance impact when testing against the latest beta release I would look at how you have implemented Application Insights as well as experiment with paring down certain features to see if performance changes. What happens if you shutoff profiling, have you made any recent changes to sampling, do you reuse telemetry clients etc.

    At this point as well, if you feel you have something our engineering team would be able to repro or think you might have found a bug in the SDK I would recommend opening a GitHub Issue directly against the repo for the SDK you are using. The supported SDK repo links can be found here. If you aren't able to get an answer to your problem through that channel I would recommend opening a support case.

    1 person found this answer helpful.
    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.