<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/application-insights-telemetry-processors-whhz0wijc" -->

---
title: Application Insights telemetry processors | daily.dev
description: Explains how to customize Azure Application Insights telemetry using custom ITelemetryProcessor implementations, which form a pipeline similar to OWIN...
canonical: https://daily.dev/posts/application-insights-telemetry-processors-whhz0wijc
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Application Insights telemetry processors | daily.dev
og:description: Explains how to customize Azure Application Insights telemetry using custom ITelemetryProcessor implementations, which form a pipeline similar to OWIN...
og:url: https://daily.dev/posts/application-insights-telemetry-processors-whhz0wijc
og:image: https://api.daily.dev/og/posts/whhz0wIjC.png
og:image:alt: Application Insights telemetry processors
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Application Insights telemetry processors

**[Maarten Balliauw](https://daily.dev/sources/maartenballiauw)** · 8 min read · 0 upvotes · 0 comments

## Summary

Explains how to customize Azure Application Insights telemetry using custom ITelemetryProcessor implementations, which form a pipeline similar to OWIN middleware that runs before telemetry is sent to the backend. Covers plugging a processor into the pipeline via ApplicationInsights.config or code, using built-in sampling to reduce telemetry volume and cost, enriching telemetry with custom data like tenant information for multi-tenant apps, and stripping or dropping sensitive data (like API keys in URLs) from telemetry before it's sent. Includes working C# code examples for each scenario.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.maartenballiauw.be/posts/2017-01-31-application-insights-telemetry-processors>

## Questions this post answers

### How do I write a custom ITelemetryProcessor in Application Insights to remove sensitive data from telemetry?

Implement the ITelemetryProcessor interface, cast the incoming ITelemetry item to RequestTelemetry, and use a regex to replace sensitive patterns (such as GUIDs used as API keys) in the Name and Url properties before calling the next processor's Process method. Register the processor in ApplicationInsights.config under TelemetryProcessors or via TelemetryConfiguration.Active.TelemetryProcessorChainBuilder in code.

_daily.dev surfaces practical patterns like this for developers hardening their telemetry pipelines._

### How can I reduce Application Insights costs by sampling telemetry data?

Enable the built-in SamplingTelemetryProcessor in ApplicationInsights.config and set a SamplingPercentage close to 100/N, such as 50, 33.33, 25, 20, or lower. Built-in sampling reduces telemetry traffic and storage costs while still preserving statistically correct counts for users, sessions, requests, and exceptions in the Application Insights portal.

_developers weighing telemetry cost against visibility can track techniques like this on daily.dev._

### How do I add custom tenant information to Application Insights telemetry for a multi-tenant application?

Create a custom ITelemetryProcessor that casts the telemetry item to RequestTelemetry, extracts the tenant name from the subdomain of the request URL (e.g. customer1 from customer1.example.com), and adds it as a property via item.Context.Properties.Add("Tenant", tenant) before passing the item to the next processor in the chain.

_daily.dev helps developers building multi-tenant monitoring compare approaches like this one._

## Similar posts on daily.dev

- [Enabling the Application Insights Profiler](https://daily.dev/posts/enabling-the-application-insights-profiler-iov3s2yke) · The Art of Simplicity · 0 upvotes · 0 comments
- [How to Monitor an Application with Auto Instrumentation in Azure?](https://daily.dev/posts/how-to-monitor-an-application-with-auto-instrumentation-in-azure--vebkhydrv) · C\# Corner · 0 upvotes · 0 comments
- [OpenTelemetry Exporters in .NET: OTLP, Prometheus, Jaeger, and Azure Monitor](https://daily.dev/posts/opentelemetry-exporters-in-net-otlp-prometheus-jaeger-and-azure-monitor-okxbsh01m) · We Are .NET · 0 upvotes · 0 comments
- [Introduction to instrumentation with OpenTelemetry for Developers – Key Concepts A \(maybe not so\) quick introduction to the universe of instrumentation and observability.](https://daily.dev/posts/introduction-to-instrumentation-with-opentelemetry-for-developers-key-concepts-a-maybe-not-so-qu-zvvnihl7j) · The Miners · 1 upvotes · 0 comments
- [OpenTelemetry ASP.NET Core: Setup, Auto-Instrumentation, and Configuration](https://daily.dev/posts/opentelemetry-asp-net-core-setup-auto-instrumentation-and-configuration-tiydmwrgx) · We Are .NET · 1 upvotes · 0 comments

---

Tags: [#aspnet](https://daily.dev/tags/aspnet), [#azure](https://daily.dev/tags/azure), [#c#](https://daily.dev/tags/c#)

[View this post on daily.dev](https://daily.dev/posts/application-insights-telemetry-processors-whhz0wijc)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Application Insights telemetry processors","url":"https://daily.dev/posts/application-insights-telemetry-processors-whhz0wijc","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/application-insights-telemetry-processors-whhz0wijc"},"datePublished":"2026-10-04T13:04:12.133Z","dateModified":"2026-10-15T02:22:58.972Z","description":"Explains how to customize Azure Application Insights telemetry using custom ITelemetryProcessor implementations, which form a pipeline similar to OWIN...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/7345f9b9d690cdacb7b264383fe3d582?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/7345f9b9d690cdacb7b264383fe3d582?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Maarten Balliauw","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Maarten Balliauw","logo":"https://media.daily.dev/image/upload/s--rOTg3VYO--/f_auto,q_auto/v1791119043/logos/maartenballiauw?_a=BAMAMicg0","url":"https://daily.dev/sources/maartenballiauw"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/application-insights-telemetry-processors-whhz0wijc","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"aspnet,azure,c#","timeRequired":"PT8M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Maarten Balliauw","item":"https://daily.dev/sources/maartenballiauw"},{"@type":"ListItem","position":3,"name":"Application Insights telemetry processors"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/application-insights-telemetry-processors-whhz0wijc#faq","mainEntity":[{"@type":"Question","name":"How do I write a custom ITelemetryProcessor in Application Insights to remove sensitive data from telemetry?","acceptedAnswer":{"@type":"Answer","text":"Implement the ITelemetryProcessor interface, cast the incoming ITelemetry item to RequestTelemetry, and use a regex to replace sensitive patterns (such as GUIDs used as API keys) in the Name and Url properties before calling the next processor's Process method. Register the processor in ApplicationInsights.config under TelemetryProcessors or via TelemetryConfiguration.Active.TelemetryProcessorChainBuilder in code. daily.dev surfaces practical patterns like this for developers hardening their telemetry pipelines."}},{"@type":"Question","name":"How can I reduce Application Insights costs by sampling telemetry data?","acceptedAnswer":{"@type":"Answer","text":"Enable the built-in SamplingTelemetryProcessor in ApplicationInsights.config and set a SamplingPercentage close to 100/N, such as 50, 33.33, 25, 20, or lower. Built-in sampling reduces telemetry traffic and storage costs while still preserving statistically correct counts for users, sessions, requests, and exceptions in the Application Insights portal. developers weighing telemetry cost against visibility can track techniques like this on daily.dev."}},{"@type":"Question","name":"How do I add custom tenant information to Application Insights telemetry for a multi-tenant application?","acceptedAnswer":{"@type":"Answer","text":"Create a custom ITelemetryProcessor that casts the telemetry item to RequestTelemetry, extracts the tenant name from the subdomain of the request URL (e.g. customer1 from customer1.example.com), and adds it as a property via item.Context.Properties.Add(\"Tenant\", tenant) before passing the item to the next processor in the chain. daily.dev helps developers building multi-tenant monitoring compare approaches like this one."}}]}
```

