# Missing or Disabled Sampling in Application Insights Telemetry

Canonical: https://www.pointfive.co/efficiency-hub/inefficiencies/missing-or-disabled-sampling-in-application-insights-telemetry

Application Insights records requests, dependencies, traces, exceptions and page views for every instrumented call.

By: PointFive

Updated: 2026-09-28

[Cloud Efficiency Hub](https://www.pointfive.co/efficiency-hub) 

The short version

Application Insights records requests, dependencies, traces, exceptions and page views for every instrumented call.

PointFive Research

Cloud cost research at PointFive

Azure service

[Azure Application Insights](https://www.pointfive.co/efficiency-hub/cloud-services/azure-application-insights)

Category

[Other](https://www.pointfive.co/efficiency-hub/service-category/other)

Reference

CER-0426

Type

Excessive Ingestion or Processing

## Explanation

Why the waste happens and who it affects.

When sampling is turned off, set to keep 100% of traces, or never configured on older instrumentation, telemetry volume grows in step with traffic, and every record is billed as Log Analytics ingestion. Verbose logging makes it worse: Information or Debug level log output from application code, frameworks and hosts such as Azure Functions lands in the AppTraces table and often becomes the largest billed table in the workspace.

Common causes are sampling disabled during troubleshooting and never restored, a sampler ratio of 1.0 copied into every environment, and log levels left at Information in production. Microsoft calls OpenTelemetry sampling the primary tool for tuning how much data Application Insights collects. Metrics are not sampled, so alerting on them keeps working, and the Application Insights sampler keeps whole traces together, so a sampled data set still supports end-to-end transaction views.

## Billing model

The pricing dimensions that drive this cost.

Workspace-based Application Insights stores its data in a Log Analytics workspace, so ingestion and retention are billed by that workspace.

Log ingestion

Billed per GB of data sent to the workspace, based on the billed size of each record (\_BilledSize)

Interactive retention

Application Insights data is kept for 90 days without a retention charge; longer retention is billed per GB per month

Sampling

Reduces the number of traces (and, by default, the logs tied to unsampled traces) sent from the application; metrics are never sampled

Ingestion sampling

Drops data at the Azure Monitor ingestion point, with less control over which traces are kept

## How to detect

5 checks to find it in your estate.

- Run the Microsoft validation query union requests,dependencies,pageViews,browserTimings,exceptions,traces | where timestamp \> ago(1d) | summarize RetainedPercentage = 100/avg(itemCount) by bin(timestamp, 1h), itemType; a RetainedPercentage of 100 for high-volume types means nothing is being sampled

- Rank tables in the linked workspace by billed volume with search \* | where \_IsBillable == true | summarize sum(\_BilledSize) by $table, and look for AppTraces, AppDependencies and AppRequests at the top

- Break down AppTraces by AppRoleName, logger category (Properties\['Category'\]) and SeverityLevel to find applications logging at Information or Debug level in production

- Check application configuration for OTEL\_TRACES\_SAMPLER set to always\_on or a ratio of 1.0, sampling ratios of 1.0 in code, or APPLICATIONINSIGHTS\_SAMPLING\_PERCENTAGE of 100 for the Java agent

- Use the workspace Usage workbook in Log Analytics Workspace Insights to see which Application Insights resources contribute most ingestion

## How to fix

6 ways to remove the waste.

- Configure fixed-rate sampling (microsoft.fixed\_percentage, for example a ratio of 0.1) or rate-limited sampling (microsoft.rate\_limited, maximum traces per second) in the Azure Monitor OpenTelemetry distro; environment variables override code settings. If Failures and Performance views look incomplete, raise the rate

- Keep trace-based sampling for logs enabled so logs belonging to unsampled traces are dropped, and set application log levels to export only ERROR, adding WARN only where it is actionable

- Disable instrumentation and host logging that nobody uses, limit Ajax call reporting in the JavaScript SDK, and avoid high-cardinality custom metric dimensions and 'Enable alerting on custom metric dimensions' unless needed

- Use ingestion sampling (Usage and estimated costs, Data Sampling) only when application code cannot be changed, since it drops data without regard to trace boundaries

- Set a daily cap with an alert at a threshold such as 90% as a last-resort guard, not as the primary cost control, because reaching it stops ingestion until the next day

- Migrate any remaining classic Application Insights resources to workspace-based resources so they can use commitment tiers, Basic Logs and table-level retention

## Documentation

Vendor references for pricing and configuration.

- [Sampling in Azure Application Insights with OpenTelemetry  learn.microsoft.com](https://learn.microsoft.com/en-us/azure/azure-monitor/app/opentelemetry-sampling)

- [Configuring OpenTelemetry in Application Insights  learn.microsoft.com](https://learn.microsoft.com/en-us/azure/azure-monitor/app/opentelemetry-configuration)

- [Cost optimization in Azure Monitor  learn.microsoft.com](https://learn.microsoft.com/en-us/azure/azure-monitor/fundamentals/best-practices-cost)

- [Azure Monitor Logs Cost Calculations And Options  learn.microsoft.com](https://learn.microsoft.com/en-us/azure/azure-monitor/logs/cost-logs)

- [Troubleshoot High Data Ingestion in Application Insights  learn.microsoft.com](https://learn.microsoft.com/en-us/troubleshoot/azure/azure-monitor/app-insights/telemetry/troubleshoot-high-data-ingestion)

- [Azure Monitor pricing  azure.microsoft.com](https://azure.microsoft.com/en-us/pricing/details/monitor/)

## Related inefficiencies

[Browse the library](https://www.pointfive.co/efficiency-hub)

- Azure Monitor  CER-0425

### [Unfiltered Diagnostic Settings and Agent Data Collection Inflating Log Ingestion](https://www.pointfive.co/efficiency-hub/inefficiencies/unfiltered-diagnostic-settings-and-agent-data-collection-inflating-log-ingestion)

Most Azure Monitor Logs cost comes from the volume of data ingested into Log Analytics workspaces, and much of that volume is collected by default rather than by design. Diagnostic settings are commonly created with the allLogs category...

Other

- Azure Monitor  CER-0569

### [Duplicate Container Metrics Collection in Container Insights](https://www.pointfive.co/efficiency-hub/inefficiencies/duplicate-container-metrics-collection-in-container-insights)

AKS clusters can send container metrics to two places: Azure Monitor managed service for Prometheus, which stores metrics in an Azure Monitor workspace, and Container insights, which can write performance and inventory data such as Perf...

Other

- Microsoft Fabric  CER-0337

### [Oversized Microsoft Fabric Capacity During Low-Utilization Periods](https://www.pointfive.co/efficiency-hub/inefficiencies/oversized-microsoft-fabric-capacity-during-low-utilization-periods)

Microsoft Fabric capacity is billed based on the provisioned SKU tier (F2, F4, F8, F16, F64, etc.) on an hourly basis, regardless of whether workloads are actively consuming those resources. Each SKU tier provides a fixed pool of Capacity...

Other

---
Source: the public page above. Product screenshots and illustrative interfaces are examples, not live customer data.

