Search code examples
c#azure-application-insights

Is Application Insight logging, happening in background?


I'm using Application Insight to log information and exceptions. When we use _telemetryClient.TrackTrace("Message") is this a background process or will block the thread until it is done?


Solution

  • Telemetry is internally buffered and send periodically in a non-blocking manner:

    ServerTelemetryChannel stores arriving items in an in-memory buffer. The items are serialized, compressed, and stored into a Transmission instance once every 30 seconds, or when 500 items have been buffered. A single Transmission instance contains up to 500 items and represents a batch of telemetry that's sent over a single HTTPS call to the Application Insights service.

    (source)

    Of course creating any telemetry has a small impact on the performance. But it shouldn't be noticable.