Skip to content

Commit cf0512b

Browse files
committed
App Insights Pricing Updates
1 parent a01f02f commit cf0512b

File tree

6 files changed

+45
-23
lines changed

6 files changed

+45
-23
lines changed
37.7 KB
Loading
53.3 KB
Loading
25.6 KB
Loading
29.7 KB
Loading
30.7 KB
Loading

articles/azure-monitor/app/pricing.md

Lines changed: 45 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ ms.subservice: application-insights
66
ms.topic: conceptual
77
author: DaleKoetke
88
ms.author: dalek
9-
ms.date: 10/03/2019
9+
ms.date: 10/28/2019
1010

1111
ms.reviewer: mbullwin
1212
---
@@ -16,9 +16,9 @@ ms.reviewer: mbullwin
1616
> [!NOTE]
1717
> This article describes how to understand and control your costs for Application Insights. A related article, [Monitoring usage and estimated costs](https://docs.microsoft.com/azure/azure-monitor/platform/usage-estimated-costs) describes how to view usage and estimated costs across multiple Azure monitoring features for different pricing models.
1818
19-
Application Insights is designed to get everything you need to monitor the availability, performance, and usage of your web applications, whether they're hosted on Azure or on-premises. Application Insights supports popular languages and frameworks, such as .NET, Java, and Node.js, and integrates with DevOps processes and tools like Azure DevOps, Jira, and PagerDuty. It's important to understand what determines the costs of monitoring your applications. In this article we review what drives your application monitoring costs and how you can proactively monitor and control them.
19+
Application Insights is designed to get everything you need to monitor the availability, performance, and usage of your web applications, whether they're hosted on Azure or on-premises. Application Insights supports popular languages and frameworks, such as .NET, Java, and Node.js, and integrates with DevOps processes and tools like Azure DevOps, Jira, and PagerDuty. It's important to understand what determines the costs of monitoring your applications. In this article, we review what drives your application monitoring costs and how you can proactively monitor and control them.
2020

21-
If you have questions about how pricing works for Application Insights, you can post a question in our [forum](https://social.msdn.microsoft.com/Forums/en-US/home?forum=ApplicationInsights&filter=alltypes&sort=lastpostdesc).
21+
If you have questions about how pricing works for Application Insights, you can post a question in our [forum](https://social.msdn.microsoft.com/Forums/home?forum=ApplicationInsights&filter=alltypes&sort=lastpostdesc).
2222

2323
## Pricing model
2424

@@ -30,17 +30,17 @@ The pricing for [Azure Application Insights][start] is a **Pay-As-You-Go** model
3030

3131
If you're not yet using Application Insights, you can use the [Azure Monitor pricing calculator](https://azure.microsoft.com/pricing/calculator/?service=monitor) to estimate the cost of using Application Insights. Start by entering "Azure Monitor" in the Search box, and clicking on the resulting Azure Monitor tile. Scroll down the page to Azure Monitor, and select Application Insights from the Type dropdown. Here you can enter the number of GB of data you expect to collect per month, so they question is how much data will Application Insights collect monitoring your application.
3232

33-
There are two approaches to address this: use of default monitoring and adaptive sampling which is available in the ASP.NET SDK, or estimate your likely data ingestion based on what other similar customers have seen.
33+
There are two approaches to address this: use of default monitoring and adaptive sampling, which is available in the ASP.NET SDK, or estimate your likely data ingestion based on what other similar customers have seen.
3434

3535
### Data collection when using sampling
3636

37-
With the ASP.NET SDK's [adaptive sampling](https://docs.microsoft.com/azure/azure-monitor/app/sampling#adaptive-sampling-in-your-aspnetaspnet-core-web-applications), the data volume is adjusted automatically to keep within a specified maximum rate of traffic for default Application Insights monitoring. If the application produces a low amount of telemetry, such as when debugging or due to low usage, items won't be dropped by the sampling processor as long as volume is below the configured events per second level. For a high volume application, with the default threshold of 5 events per second, adaptive sampling will limit the number of daily events to 432,000. Using a typical average event size of 1 KB, this corresponds to 13.4 GB of telemetry per 31-day month per node hosting your application (since the sampling is done local to each node.)
37+
With the ASP.NET SDK's [adaptive sampling](https://docs.microsoft.com/azure/azure-monitor/app/sampling#adaptive-sampling-in-your-aspnetaspnet-core-web-applications), the data volume is adjusted automatically to keep within a specified maximum rate of traffic for default Application Insights monitoring. If the application produces a low amount of telemetry, such as when debugging or due to low usage, items won't be dropped by the sampling processor as long as volume is below the configured events per second level. For a high volume application, with the default threshold of five events per second, adaptive sampling will limit the number of daily events to 432,000. Using a typical average event size of 1 KB, this corresponds to 13.4 GB of telemetry per 31-day month per node hosting your application (since the sampling is done local to each node.)
3838

39-
For SDKs which don't support adaptive sampling, you can employ [ingestion sampling](https://docs.microsoft.com/azure/azure-monitor/app/sampling#ingestion-sampling) which samples when the data is received by Application Insights based on a percentage of data to retain, or [fixed-rate sampling for ASP.NET, ASP.NET Core, and Java websites](https://docs.microsoft.com/azure/azure-monitor/app/sampling#fixed-rate-sampling-for-aspnet-aspnet-core-java-websites-and-python-applications) to reduce the traffic sent from your web server and web browsers
39+
For SDKs that don't support adaptive sampling, you can employ [ingestion sampling](https://docs.microsoft.com/azure/azure-monitor/app/sampling#ingestion-sampling), which samples when the data is received by Application Insights based on a percentage of data to retain, or [fixed-rate sampling for ASP.NET, ASP.NET Core, and Java websites](https://docs.microsoft.com/azure/azure-monitor/app/sampling#fixed-rate-sampling-for-aspnet-aspnet-core-java-websites-and-python-applications) to reduce the traffic sent from your web server and web browsers
4040

4141
### Learn from what similar customers collect
4242

43-
In the Azure Monitoring Pricing calculator for Application Insights, if you enable the "Estimate data volume based on application activity" functionality, you can provide inputs about your application (requests per month and page views per month, in case you will collect client-side telemetry), and then the calculator will tell you the median and 90th percentile amount of data collected by similar applications. Of course these applications span the range of Application Insights configuration (e.g some have default [sampling](../../azure-monitor/app/sampling.md), some have no sampling etc.), so you still have the control to reduce the volume of data you ingest far below the median level using sampling. But this is a starting point to understand what other, similar customers are seeing.
43+
In the Azure Monitoring Pricing calculator for Application Insights, if you enable the "Estimate data volume based on application activity" functionality, you can provide inputs about your application (requests per month and page views per month, in case you will collect client-side telemetry), and then the calculator will tell you the median and 90th percentile amount of data collected by similar applications. These applications span the range of Application Insights configuration (e.g some have default [sampling](../../azure-monitor/app/sampling.md), some have no sampling etc.), so you still have the control to reduce the volume of data you ingest far below the median level using sampling. But this is a starting point to understand what other, similar customers are seeing.
4444

4545
## Understand your usage and estimate costs
4646

@@ -62,44 +62,66 @@ Application Insights charges are added to your Azure bill. You can see details o
6262

6363
![In the left menu, select Billing](./media/pricing/02-billing.png)
6464

65-
## Viewing Application Insights usage on your Azure bill
66-
67-
Azure provides a great deal of useful functionality in the [Azure Cost Management + Billing](https://docs.microsoft.com/azure/cost-management/quick-acm-cost-analysis?toc=/azure/billing/TOC.json) hub. For instance, the "Cost analysis" functionality enables you to view your spends for Azure resources. Adding a filter by resource type (to microsoft.insights/components for Application Insights) will allow you to track your spending.
65+
### Using data volume metrics
66+
<a id="understanding-ingested-data-volume"></a>
6867

69-
More understanding of your usage can be gained by [downloading your usage from the Azure Portal](https://docs.microsoft.com/azure/billing/billing-download-azure-invoice-daily-usage-date#download-usage-in-azure-portal).
70-
In the downloaded spreadsheet you can see usage per Azure resource per day. In this Excel spreadsheet, usage from your Application Insights resources can be found by first filtering on the "Meter Category" column to show "Application Insights" and "Log Analytics", and then adding a filter on the "Instance ID" column which is "contains microsoft.insights/components". Most Application Insights usage is reported on meters with the Meter Category of Log Analytics, since there is a single logs backend for all Azure Monitor components. Only Application Insights resources on legacy pricing tiers and multi-step web tests are reported with a Meter Category of Application Insights. The usage is shown in the "Consumed Quantity" column and the unit for each entry is shown in the "Unit of Measure" column. More details are available to help you [understand your Microsoft Azure bill](https://docs.microsoft.com/azure/billing/billing-understand-your-bill).
68+
To learn more about your data volumes, selecting **Metrics** for your Application Insights resource, add a new chart. For the chart metric, under **Log-based metrics**, select **Data point volume**. Click **Apply splitting**, and select group by **Telemetryitem type**.
7169

72-
## Understanding ingested data volume
70+
![Use Metrics to look at data volume](./media/pricing/10-billing.png)
7371

74-
To understand how much data is being ingested into Application Insights, you can:
75-
76-
1. Go to the **Usage and estimated cost** pane to see the daily data volume chart as described above.
77-
2. In Metrics Explorer, add a new chart. For the chart metric, select **Data point volume**. Turn on **Grouping**, and then group by **Data type**.
78-
3. Use the `systemEvents` table as shown below.
72+
### Queries to understand data volume details
7973

8074
For instance, you can use the `systemEvents` table to see the data volume ingested in the last 24 hours with the query:
8175

8276
```kusto
8377
systemEvents
84-
| where timestamp >= ago(1d)
78+
| where timestamp >= ago(24h)
8579
| where type == "Billing"
8680
| extend BillingTelemetryType = tostring(dimensions["BillingTelemetryType"])
8781
| extend BillingTelemetrySizeInBytes = todouble(measurements["BillingTelemetrySize"])
8882
| summarize sum(BillingTelemetrySizeInBytes)
8983
```
9084

91-
Or to see a chart of data volume by data type for the last 30 days, you can use:
85+
Or to see a chart of data volume (in bytes) by data type for the last 30 days, you can use:
9286

9387
```kusto
9488
systemEvents
95-
| where timestamp >= ago(30d)
89+
| where timestamp >= startofday(ago(30d))
9690
| where type == "Billing"
9791
| extend BillingTelemetryType = tostring(dimensions["BillingTelemetryType"])
9892
| extend BillingTelemetrySizeInBytes = todouble(measurements["BillingTelemetrySize"])
9993
| summarize sum(BillingTelemetrySizeInBytes) by BillingTelemetryType, bin(timestamp, 1d) | render barchart
10094
```
10195

102-
This query can be used in an [Azure Log Alert](https://docs.microsoft.com/azure/azure-monitor/platform/alerts-unified-log) to set up alerting on data volumes.
96+
Note that this query can be used in an [Azure Log Alert](https://docs.microsoft.com/azure/azure-monitor/platform/alerts-unified-log) to set up alerting on data volumes.
97+
98+
To learn more about your telemetry data changes, let's check the count of events by type using the query:
99+
100+
```kusto
101+
systemEvents
102+
| where timestamp >= startofday(ago(30d))
103+
| where type == "Billing"
104+
| extend BillingTelemetryType = tostring(dimensions["BillingTelemetryType"])
105+
| summarize count() by BillingTelemetryType, bin(timestamp, 1d) | render barchart
106+
```
107+
108+
If a similar changes are seen in the counts as is seen in the volume in bytes, then we can focus on the data types of events, which show increased counts. For instance, if it is observed that the number of dependencies increased, here's a query to understand which operations are responsible for the increase:
109+
110+
```kusto
111+
dependencies
112+
| where timestamp >= startofday(ago(30d))
113+
| summarize count() by operation_Name, bin(timestamp, 1d)
114+
| render barchart
115+
```
116+
117+
118+
## Viewing Application Insights usage on your Azure bill
119+
120+
Azure provides a great deal of useful functionality in the [Azure Cost Management + Billing](https://docs.microsoft.com/azure/cost-management/quick-acm-cost-analysis?toc=/azure/billing/TOC.json) hub. For instance, the "Cost analysis" functionality enables you to view your spends for Azure resources. Adding a filter by resource type (to microsoft.insights/components for Application Insights) will allow you to track your spending.
121+
122+
More understanding of your usage can be gained by [downloading your usage from the Azure portal](https://docs.microsoft.com/azure/billing/billing-download-azure-invoice-daily-usage-date#download-usage-in-azure-portal).
123+
In the downloaded spreadsheet, you can see usage per Azure resource per day. In this Excel spreadsheet, usage from your Application Insights resources can be found by first filtering on the "Meter Category" column to show "Application Insights" and "Log Analytics", and then adding a filter on the "Instance ID" column which is "contains microsoft.insights/components". Most Application Insights usage is reported on meters with the Meter Category of Log Analytics, since there is a single logs backend for all Azure Monitor components. Only Application Insights resources on legacy pricing tiers and multi-step web tests are reported with a Meter Category of Application Insights. The usage is shown in the "Consumed Quantity" column and the unit for each entry is shown in the "Unit of Measure" column. More details are available to help you [understand your Microsoft Azure bill](https://docs.microsoft.com/azure/billing/billing-understand-your-bill).
124+
103125

104126
## Managing your data volume
105127

@@ -242,7 +264,7 @@ Because this tier is applicable only to customers with an Operations Management
242264
* In SDK versions 2.2 and later, both the Application Insights [Core SDK](https://www.nuget.org/packages/Microsoft.ApplicationInsights/) and the [Web SDK](https://www.nuget.org/packages/Microsoft.ApplicationInsights.Web/) report each application host as a node. Examples are the computer name for physical server and VM hosts or the instance name for cloud services. The only exception is an application that uses only the [.NET Core](https://dotnet.github.io/) and the Application Insights Core SDK. In that case, only one node is reported for all hosts because the host name isn't available.
243265
* For earlier versions of the SDK, the [Web SDK](https://www.nuget.org/packages/Microsoft.ApplicationInsights.Web/) behaves like the newer SDK versions, but the [Core SDK](https://www.nuget.org/packages/Microsoft.ApplicationInsights/) reports only one node, regardless of the number of application hosts.
244266
* If your application uses the SDK to set **roleInstance** to a custom value, by default, that same value is used to determine node count.
245-
* If you're using a new SDK version with an app that runs from client machines or mobile devices, the node count might return a number that's very large (because of the large number of client machines or mobile devices).
267+
* If you're using a new SDK version with an app that runs from client machines or mobile devices, the node count might return a number that's large (because of the large number of client machines or mobile devices).
246268

247269
## Automation
248270

0 commit comments

Comments
 (0)