Skip to content

Commit 6b9e32b

Browse files
committed
Moving App Insights FAQs
1 parent 850bf24 commit 6b9e32b

10 files changed

+191
-174
lines changed

articles/azure-monitor/app/api-custom-events-metrics.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1133,6 +1133,8 @@ To determine how long data is kept, see [Data retention and privacy](./data-rete
11331133

11341134
## Frequently asked questions
11351135

1136+
This section provides answers to common questions.
1137+
11361138
### Why am I missing telemetry data?
11371139

11381140
Both [TelemetryChannels](telemetry-channels.md#what-are-telemetry-channels) will lose buffered telemetry if it isn't flushed before an application shuts down.
@@ -1155,6 +1157,17 @@ The Application Insights SDK isn't compatible with autoinstrumentation. If autoi
11551157

11561158
Turn off autoinstrumentation in the Azure portal on the Application Insights tab of the App Service page or set <code class="notranslate">ApplicationInsightsAgent_EXTENSION_VERSION</code> to <code class="notranslate">disabled</code>.
11571159

1160+
### Why are the counts in Search and Metrics charts unequal?
1161+
1162+
[Sampling](./sampling.md) reduces the number of telemetry items (like requests and custom events) that are sent from your app to the portal. In Search, you see the number of items received. In metric charts that display a count of events, you see the number of original events that occurred.
1163+
1164+
Each item that's transmitted carries an `itemCount` property that shows how many original events that item represents. To observe sampling in operation, you can run this query in Log Analytics:
1165+
1166+
```
1167+
requests | summarize original_events = sum(itemCount), transmitted_events = count()
1168+
```
1169+
1170+
11581171
## <a name="next"></a>Next steps
11591172

11601173
* [Search events and logs](./diagnostic-search.md)

articles/azure-monitor/app/app-insights-overview.md

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,8 +170,49 @@ We're constantly assessing opportunities to expand our support for other languag
170170

171171
## Frequently asked questions
172172

173-
Review [frequently asked questions](../faq.yml).
174-
173+
This section provides answers to common questions.
174+
175+
### What telemetry does Application Insights collect?
176+
177+
From server web apps:
178+
179+
* HTTP requests.
180+
* [Dependencies](./asp-net-dependencies.md). Calls to SQL databases, HTTP calls to external services, Azure Cosmos DB, Azure Table Storage, Azure Blob Storage, and Azure Queue Storage.
181+
* [Exceptions](./asp-net-exceptions.md) and stack traces.
182+
* [Performance counters](./performance-counters.md): If you use the [Azure Monitor Application Insights agent](./application-insights-asp-net-agent.md), [Azure monitoring for VMs or virtual machine scale sets](./azure-vm-vmss-apps.md), or the [Application Insights collectd writer](/previous-versions/azure/azure-monitor/app/deprecated-java-2x#collectd-linux-performance-metrics-in-application-insights-deprecated).
183+
* [Custom events and metrics](./api-custom-events-metrics.md) that you code.
184+
* [Trace logs](./asp-net-trace-logs.md) if you configure the appropriate collector.
185+
186+
From [client webpages](./javascript-sdk.md):
187+
188+
* Uncaught exceptions in your app, including information on
189+
* Stack trace
190+
* Exception details and message accompanying the error
191+
* Line & column number of error
192+
* URL where error was raised
193+
* Network Dependency Requests made by your app XHR and Fetch (fetch collection is disabled by default) requests, include information on:
194+
* Url of dependency source
195+
* Command & Method used to request the dependency
196+
* Duration of the request
197+
* Result code and success status of the request
198+
* ID (if any) of user making the request
199+
* Correlation context (if any) where request is made
200+
* User information (for example, Location, network, IP)
201+
* Device information (for example, Browser, OS, version, language, model)
202+
* Session information
203+
204+
> [!Note]
205+
> For some applications, such as single-page applications (SPAs), the duration may not be recorded and will default to 0.
206+
207+
For more information, see [Data collection, retention, and storage in Application Insights](./data-retention-privacy.md).
208+
209+
From other sources, if you configure them:
210+
211+
* [Azure diagnostics](../agents/diagnostics-extension-to-application-insights.md)
212+
* [Import to Log Analytics](../logs/data-collector-api.md)
213+
* [Log Analytics](../logs/data-collector-api.md)
214+
* [Logstash](../logs/data-collector-api.md)
215+
175216
## Troubleshooting
176217

177218
Review dedicated [troubleshooting articles](/troubleshoot/azure/azure-monitor/welcome-azure-monitor) for Application Insights.

articles/azure-monitor/app/data-model-complete.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,16 @@ This field represents the node name used for billing purposes. Use it to overrid
411411

412412
**Maximum length:** 256
413413

414+
## Frequently asked questions
415+
416+
This section provides answers to common questions.
417+
418+
### How would I measure the impact of a monitoring campaign?
419+
420+
PageView Telemetry includes URL and you could parse the UTM parameter using a regex function in Kusto.
421+
422+
Occasionally, this data might be missing or inaccurate if the user or enterprise disables sending User Agent in browser settings. The [UA Parser regexes](https://github.com/ua-parser/uap-core/blob/master/regexes.yaml) might not include all device information. Or Application Insights might not have adopted the latest updates.
423+
414424
## Next steps
415425

416426
Learn how to use the [Application Insights API for custom events and metrics](./api-custom-events-metrics.md), including:

articles/azure-monitor/app/data-retention-privacy.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,22 @@ You can [switch off some of the data by editing ApplicationInsights.config][conf
321321

322322
No. Data is read-only and can only be deleted via the purge functionality. To learn more, see [Guidance for personal data stored in Log Analytics and Application Insights](../logs/personal-data-mgmt.md#delete).
323323

324+
## Frequently asked questions
325+
326+
This section provides answers to common questions.
327+
328+
### What happens to Application Insight telemetry when a server or device loses connection with Azure?
329+
330+
All of our SDKs, including the web SDK, include *reliable transport* or *robust transport*. When the server or device loses connection with Azure, telemetry is [stored locally on the file system](./data-retention-privacy.md#does-the-sdk-create-temporary-local-storage) (Server SDKs) or in HTML5 Session Storage (Web SDK). The SDK periodically retries to send this telemetry until our ingestion service considers it "stale" (48 hours for logs, 30 minutes for metrics). Stale telemetry is dropped. In some cases, such as when local storage is full, retry won't occur.
331+
332+
### Is personal data sent in the telemetry?
333+
334+
You can send personal data if your code sends such data. It can also happen if variables in stack traces include personal data. Your development team should conduct risk assessments to ensure that personal data is properly handled. Learn more about [data retention and privacy](./data-retention-privacy.md).
335+
336+
*All* octets of the client web address are always set to 0 after the geolocation attributes are looked up.
337+
338+
The [Application Insights JavaScript SDK](./javascript.md) doesn't include any personal data in its autocompletion, by default. However, some personal data used in your application might be picked up by the SDK (for example, full names in `window.title` or account IDs in XHR URL query parameters). For custom personal data masking, add a [telemetry initializer](./api-filtering-sampling.md#javascript-web-applications).
339+
324340
<!--Link references-->
325341

326342
[api]: ./api-custom-events-metrics.md

articles/azure-monitor/app/ip-collection.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,22 @@ Newly collected IP addresses will appear in the `customDimensions_client-ip` col
265265

266266
If you're testing from localhost, and the value for `customDimensions_client-ip` is `::1`, this value is expected behavior. The `::1` value represents the loopback address in IPv6. It's equivalent to `127.0.0.1` in IPv4.
267267

268+
## Frequently asked questions
269+
270+
This section provides answers to common questions.
271+
272+
### How is city, country/region, and other geolocation data calculated?
273+
274+
We look up the IP address (IPv4 or IPv6) of the web client:
275+
276+
* Browser telemetry: We collect the sender's IP address.
277+
* Server telemetry: The Application Insights module collects the client IP address. It's not collected if `X-Forwarded-For` is set.
278+
* To learn more about how IP address and geolocation data is collected in Application Insights, see [Geolocation and IP address handling](./ip-collection.md).
279+
280+
You can configure `ClientIpHeaderTelemetryInitializer` to take the IP address from a different header. In some systems, for example, it's moved by a proxy, load balancer, or CDN to `X-Originating-IP`. [Learn more](https://apmtips.com/posts/2016-07-05-client-ip-address/).
281+
282+
You can [use Power BI](../logs/log-powerbi.md) to display your request telemetry on a map if you've [migrated to a workspace-based resource](./convert-classic-resource.md).
283+
268284
## Next steps
269285

270286
* Learn more about [personal data collection](../logs/personal-data-mgmt.md) in Application Insights.

articles/azure-monitor/app/javascript-framework-extensions.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -763,6 +763,16 @@ Check out the [Application Insights Angular demo](https://github.com/microsoft/a
763763
764764
---
765765
766+
## Frequently asked questions
767+
768+
This section provides answers to common questions.
769+
770+
### How does Application Insights generate device information like browser, OS, language, and model?
771+
772+
The browser passes the User Agent string in the HTTP header of the request. The Application Insights ingestion service uses [UA Parser](https://github.com/ua-parser/uap-core) to generate the fields you see in the data tables and experiences. As a result, Application Insights users are unable to change these fields.
773+
774+
Occasionally, this data might be missing or inaccurate if the user or enterprise disables sending User Agent in browser settings. The [UA Parser regexes](https://github.com/ua-parser/uap-core/blob/master/regexes.yaml) might not include all device information. Or Application Insights might not have adopted the latest updates.
775+
766776
## Next steps
767777
768778
- [Confirm data is flowing](javascript-sdk.md#confirm-data-is-flowing).

articles/azure-monitor/app/javascript-sdk-configuration.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,21 @@ This section only applies to you if you're using the deprecated functions and yo
325325

326326
See the dedicated [troubleshooting article](/troubleshoot/azure/azure-monitor/app-insights/javascript-sdk-troubleshooting).
327327

328+
## Frequently asked questions
329+
330+
This section provides answers to common questions.
331+
332+
### How can I update my third-party server configuration for the JavaScript SDK?
333+
334+
The server side needs to be able to accept connections with those headers present. Depending on the `Access-Control-Allow-Headers` configuration on the server side, it's often necessary to extend the server-side list by manually adding `Request-Id`, `Request-Context`, and `traceparent` (W3C distributed header).
335+
336+
Access-Control-Allow-Headers: `Request-Id`, `traceparent`, `Request-Context`, `<your header>`
337+
338+
### How can I disable distributed tracing for the JavaScript SDK?
339+
340+
Distributed tracing can be disabled in configuration.
341+
342+
328343
## Next steps
329344

330345
* [Track usage](usage-overview.md)

articles/azure-monitor/app/javascript-sdk.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,46 @@ If you want to use the extra features provided by plugins for specific framework
164164

165165
For essential KQL operators, see [Learn common KQL operators](/azure/data-explorer/kusto/query/tutorials/learn-common-operators).
166166

167+
## Frequently asked questions
168+
169+
This section provides answers to common questions.
170+
171+
### What are the user and session counts?
172+
173+
* The JavaScript SDK sets a user cookie on the web client, to identify returning users, and a session cookie to group activities.
174+
* If there's no client-side script, you can [set cookies at the server](https://apmtips.com/posts/2016-07-09-tracking-users-in-api-apps/).
175+
* If one real user uses your site in different browsers, or by using in-private/incognito browsing, or different machines, they're counted more than once.
176+
* To identify a signed-in user across machines and browsers, add a call to [setAuthenticatedUserContext()](./api-custom-events-metrics.md#authenticated-users).
177+
178+
### What is the JavaScript SDK performance/overhead?
179+
180+
The Application Insights JavaScript SDK has a minimal overhead on your website. At just 36 KB gzipped, and taking only ~15 ms to initialize, the SDK adds a negligible amount of load time to your website. The minimal components of the library are quickly loaded when you use the SDK, and the full script is downloaded in the background.
181+
182+
Additionally, while the script is downloading from the CDN, all tracking of your page is queued, so you don't lose any telemetry during the entire life cycle of your page. This setup process provides your page with a seamless analytics system that's invisible to your users.
183+
184+
### What browsers are supported by the JavaScript SDK?
185+
186+
![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png) | ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png) | ![IE](https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png) | ![Opera](https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png) | ![Safari](https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png)
187+
--- | --- | --- | --- | --- |
188+
Chrome Latest ✔ | Firefox Latest ✔ | v3.x: IE 9+ & Microsoft Edge ✔<br>v2.x: IE 8+ Compatible & Microsoft Edge ✔ | Opera Latest ✔ | Safari Latest ✔ |
189+
190+
### Where can I find code examples for the JavaScript SDK?
191+
192+
For runnable examples, see [Application Insights JavaScript SDK samples](https://github.com/microsoft/ApplicationInsights-JS/tree/master/examples).
193+
194+
### What is the ES3/Internet Explorer 8 compatibility with the JavaScript SDK?
195+
196+
We need to take necessary measures to ensure that this SDK continues to "work" and doesn't break the JavaScript execution when loaded by an older browser. It would be ideal to not support older browsers, but numerous large customers can't control which browser their users choose to use.
197+
198+
This statement doesn't mean that we only support the lowest common set of features. We need to maintain ES3 code compatibility. New features need to be added in a manner that wouldn't break ES3 JavaScript parsing and added as an optional feature.
199+
200+
See GitHub for full details on [Internet Explorer 8 support](https://github.com/Microsoft/ApplicationInsights-JS#es3ie8-compatibility).
201+
202+
### Is the JavaScript SDK open-source?
203+
204+
Yes, the Application Insights JavaScript SDK is open source. To view the source code or to contribute to the project, see the [official GitHub repository](https://github.com/Microsoft/ApplicationInsights-JS).
205+
206+
167207
## Support
168208

169209
- If you can't run the application or you aren't getting data as expected, see the dedicated [troubleshooting article](/troubleshoot/azure/azure-monitor/app-insights/javascript-sdk-troubleshooting).

articles/azure-monitor/app/separate-resources.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,34 @@ The build version number is generated only by the Microsoft Build Engine, not by
153153

154154
If you use Azure DevOps, you can [get an annotation marker](../../azure-monitor/app/annotations.md) added to your charts whenever you release a new version.
155155

156+
## Frequently asked questions
157+
158+
This section provides answers to common questions.
159+
160+
### How do I move an Application Insights resource to a new region?
161+
162+
Moving existing Application Insights resources from one region to another is *currently not supported*. Historical data that you've collected *can't be migrated* to a new region. The only partial workaround is to:
163+
164+
1. Create a new Application Insights resource ([classic](/previous-versions/azure/azure-monitor/app/create-new-resource) or [workspace based](./app/create-workspace-resource.md)) in the new region.
165+
1. Re-create all unique customizations specific to the original resource in the new resource.
166+
1. Modify your application to use the new region resource's [instrumentation key](/previous-versions/azure/azure-monitor/app/create-new-resource#copy-the-instrumentation-key) or [connection string](./sdk-connection-string.md).
167+
1. Test to confirm that everything is continuing to work as expected with your new Application Insights resource.
168+
1. At this point, you can either keep or delete the original Application Insights resource. If you delete a classic Application Insights resource, *all historical data is lost*. If the original resource was workspace based, its data remains in Log Analytics. Keeping the original Application Insights resource allows you to access its historical data until its data retention settings run out.
169+
170+
Unique customizations that commonly need to be manually re-created or updated for the resource in the new region include but aren't limited to:
171+
172+
- Re-create custom dashboards and workbooks.
173+
- Re-create or update the scope of any custom log/metric alerts.
174+
- Re-create availability alerts.
175+
- Re-create any custom Azure role-based access control settings that are required for your users to access the new resource.
176+
- Replicate settings involving ingestion sampling, data retention, daily cap, and custom metrics enablement. These settings are controlled via the **Usage and estimated costs** pane.
177+
- Any integration that relies on API keys, such as [release annotations](./annotations.md) and [live metrics secure control channel](./live-stream.md#secure-the-control-channel). You need to generate new API keys and update the associated integration.
178+
- Continuous export in classic resources must be configured again.
179+
- Diagnostic settings in workspace-based resources must be configured again.
180+
181+
> [!NOTE]
182+
> If the resource you're creating in a new region is replacing a classic resource, we recommend that you explore the benefits of [creating a new workspace-based resource](./create-workspace-resource.md). Alternatively, [migrate your existing resource to workspace based](./convert-classic-resource.md).
183+
156184
## Next steps
157185

158186
* [Shared resources for multiple roles](../../azure-monitor/app/app-map.md)

0 commit comments

Comments
 (0)