Skip to content

Commit ec0d76a

Browse files
authored
Merge pull request #49826 from SoubhagyaDash/master
E2E Transaction doc updates
2 parents d063fe4 + 1b56eb8 commit ec0d76a

27 files changed

+26
-68
lines changed

articles/application-insights/app-insights-transaction-diagnostics.md

Lines changed: 15 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,7 @@ ms.author: mbullwin
1818
---
1919
# Unified cross-component transaction diagnostics
2020

21-
*This experience is currently in preview and replaces the existing diagnostics blades for server-side requests, dependencies, and exceptions.*
22-
23-
The preview introduces a new unified diagnostics experience that automatically correlates server-side telemetry from across all your Application Insights monitored components into a single view. It doesn't matter if you have multiple resources with separate instrumentation keys. Application Insights detects the underlying relationship and allows you to easily diagnose the application component, dependency, or exception that caused a transaction slowdown or failure.
21+
The unified diagnostics experience automatically correlates server-side telemetry from across all your Application Insights monitored components into a single view. It doesn't matter if you have multiple resources with separate instrumentation keys. Application Insights detects the underlying relationship and allows you to easily diagnose the application component, dependency, or exception that caused a transaction slowdown or failure.
2422

2523
## What is a Component?
2624

@@ -31,23 +29,12 @@ Components are independently deployable parts of your distributed/microservices
3129
* Components can be separate Application Insights instrumentation keys (even if subscriptions are different) or different roles reporting to a single Application Insights instrumentation key. The new experience shows details across all components, regardless of how they have been set up.
3230

3331
> [!NOTE]
34-
> * **Missing the related item links?** All of the telemetry related to server-side request, dependency and exception are in the [top](#cross-component-transaction-chart) and [bottom](#all-telemetry-related-to-the-selected-component-operation) sections of the left side.
35-
> * The [top](#cross-component-transaction-chart) section correlates the transaction across all components. For the best results, ensure all components are instrumented with the latest Application Insights stable SDKs. If there are different Application Insights resources, ensure you have appropriate rights to view their telemetry.
36-
> * The [bottom](#all-telemetry-related-to-the-selected-component-operation) section of the left side shows **all** telemetry including traces and events related to the request from the selected component.
37-
38-
## Enable Transaction Diagnostics experience
39-
Enable "Unified details: E2E Transaction Diagnostics" from the [previews list](app-insights-previews.md)
40-
41-
![Enable preview](media/app-insights-e2eTxn-diagnostics/previews.png)
42-
43-
This preview is currently available for server-side requests, dependencies, and exceptions. You can access the new experience from **Search results**, **Performance**, or **Failure** triage experiences. The preview replaces the corresponding classic details blades.
44-
45-
![Performance samples](media/app-insights-e2eTxn-diagnostics/performanceSamplesClickThrough.png)
32+
> * **Missing the related item links?** All of the related telemetry are in the [top](#cross-component-transaction-chart) and [bottom](#all-telemetry-with-this-Operation-Id) sections of the left side.
4633
4734
## Transaction diagnostics experience
48-
This view has three key parts: a cross-component transaction chart, a time-sequence list of all telemetry from a specific component operation, and the details pane for any selected telemetry item on the left.
35+
This view has four key parts: results list, a cross-component transaction chart, a time-sequence list of all telemetry related to this operation, and the details pane for any selected telemetry item on the left.
4936

50-
![Key parts](media/app-insights-e2eTxn-diagnostics/3partsCrossComponent.png)
37+
![Key parts](media/app-insights-e2eTxn-diagnostics/4partsCrossComponent.png)
5138

5239
## Cross-component transaction chart
5340

@@ -56,24 +43,30 @@ This chart provides a timeline with horizontal bars for the duration of requests
5643
* The top row on this chart represents the entry point, the incoming request to the first component called in this transaction. The duration is the total time taken for the transaction to complete.
5744
* Any calls to external dependencies are simple non-collapsible rows, with icons representing the dependency type.
5845
* Calls to other components are collapsible rows. Each row corresponds to a specific operation invoked at the component.
59-
* By default, the request, dependency, or exception that you initially selected is displayed on the chart.
46+
* By default, the request, dependency, or exception that you selected is displayed on the right side.
6047
* Select any row to see its [details on the right](#details-of-the-selected-telemetry).
6148

6249
> [!NOTE]
6350
Calls to other components have two rows: one row represents the outbound call (dependency) from the caller component, and the other row corresponds to the inbound request at the called component. The leading icon and distinct styling of the duration bars help differentiate between them.
6451

65-
## All telemetry related to the selected component-operation
52+
## All telemetry with this Operation Id
6653

67-
Any row selected in the cross-component transaction chart is related to an operation invoked at a particular component. This selected component operation is reflected in the title of the bottom section. Open this section to see a flat time sequence of all the telemetry related to that particular operation. You can select any telemetry item in this list to see corresponding [details on the right](#details-of-the-selected-telemetry).
54+
This section shows flat list view in a time sequence of all the telemetry related to this transaction. It also shows the custom events, and traces that aren't displayed in the transaction chart. You can filter this list to telemetry generated by a specific component/call. You can select any telemetry item in this list to see corresponding [details on the right](#details-of-the-selected-telemetry).
6855

6956
![Time sequence of all telemetry](media/app-insights-e2eTxn-diagnostics/allTelemetryDrawerOpened.png)
7057

7158
## Details of the selected telemetry
7259

73-
This pane shows the detail of selected items from either of the two sections on the left. "Show all" lists all of the standard attributes that are collected. Any custom attributes are separately listed below the standard set. Click on "Open profiler traces" or "Open debug snapshot" for code level diagnostics in corresponding detail panes.
60+
This collapsible pane shows the detail of any selected item from the transaction chart, or the list. "Show all" lists all of the standard attributes that are collected. Any custom attributes are separately listed below the standard set. Click on the "..." below the stack trace window to get an option to copy the trace. "Open profiler traces" or "Open debug snapshot" shows code level diagnostics in corresponding detail panes.
7461

7562
![Exception detail](media/app-insights-e2eTxn-diagnostics/exceptiondetail.png)
7663

64+
## Search results
65+
66+
This collapsible pane shows the other results that meet the filter criteria. Click on any result to update the respective details the 3 sections listed above. We try to find samples that are most likely to have the details available from all components even if sampling is in effect in any of them. These are shown as "suggested" samples.
67+
68+
![Search results](media/app-insights-e2eTxn-diagnostics/searchResults.png)
69+
7770
## Profiler and snapshot debugger
7871

7972
[Application Insights profiler](app-insights-profiler.md) or [snapshot debugger](app-insights-snapshot-debugger.md) help with code-level diagnostics of performance and failure issues. With this experience, you can see profiler traces or snapshots from any component with a single click.
@@ -82,7 +75,7 @@ If you could not get Profiler working, please contact **serviceprofilerhelp@micr
8275

8376
If you could not get Snapshot Debugger working, please contact **[email protected]**
8477

85-
![Debugger Integration](media/app-insights-e2eTxn-diagnostics/debugSnapshot.png)
78+
![Profiler Integration](media/app-insights-e2eTxn-diagnostics/profilerTraces.png)
8679

8780
## FAQ
8881

@@ -96,12 +89,6 @@ Potential reasons:
9689

9790
If you do have access and the components are instrumented with the latest Application Insights SDKs, let us know via the top right feedback channel.
9891

99-
*I only have external dependencies. Should I care about this preview?*
100-
101-
Yes. The new experience unifies all related server-side telemetry into a single view. The older detail blades will be replaced by this experience in the future, so try it out and give us your feedback. Here's what it looks like for a single component transaction:
102-
103-
![Single component experience](media/app-insights-e2eTxn-diagnostics/singleComponent.png)
104-
10592
*I see duplicate rows for the dependencies. Is this expected?*
10693

10794
At this time, we are showing the outbound dependency call separate from the inbound request. Typically, the two calls look identical with only the duration value being different due to the network round trip. The leading icon and distinct styling of the duration bars help differentiate between them. Is this presentation of the data confusing? Give us your feedback!
@@ -113,13 +100,3 @@ Timelines are adjusted for clock skews in the transaction chart. You can see the
113100
*Why is the new experience missing most of the related items queries?*
114101

115102
This is by design. All of the related items, across all components, are already available on the left side (top and bottom sections). The new experience has two related items that the left side doesn't cover: all telemetry from five minutes before and after this event and the user timeline.
116-
117-
*Why does the new experience not have the feature that I loved in the older blades?*
118-
119-
Give us feedback! We want to address your concerns before this experience is generally available, at which time the older views will be deprecated. For now, you can disable the preview to go back to the older blades.
120-
121-
## Known Issues
122-
123-
* The failure samples from Application Map link to the older detail blades.
124-
* The autocluster-based insights in the search results link to the older detail blades.
125-
* Work item integration is not available in the new experience.

articles/application-insights/app-insights-tutorial-performance.md

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,27 +48,20 @@ Application Insights collects performance details for the different operations i
4848

4949
![Performance panel](media/app-insights-tutorial-performance/performance-blade.png)
5050

51-
3. The graph currently shows the average duration of all operations over time. Add the operations that you're interested in by pinning them to the graph. This shows that there are some peaks worth investigating. Isolate this further by reducing the time window of the graph.
51+
3. The graph currently shows the average duration of the selected operations over time. You can switch to the 95th percentile to find the performance issues. Add the operations that you're interested in by pinning them to the graph. This shows that there are some peaks worth investigating. Isolate this further by reducing the time window of the graph.
5252

5353
![Pin operations](media/app-insights-tutorial-performance/pin-operations.png)
5454

55-
4. Click an operation to view its performance panel on the right. This shows the distribution of durations for different requests. Users typically notice slow performance at about half a second, so reduce the window to requests over 500 milliseconds.
55+
4. The performance panel on the right shows distribution of durations for different requests for the selected operation. Reduce the window to start around the 95th percentile. The "Top 3 dependencies" insights card, can tell you at a glance that the external dependencies are likely contributing to the slow transactions. Click on the button with number of samples to see a list of the samples. You can then select any sample to see transaction details.
5656

5757
![Duration distribution](media/app-insights-tutorial-performance/duration-distribution.png)
5858

59-
5. In this example, you can see that a significant number of requests are taking over a second to process. You can see the details of this operation by clicking on **Operation details**.
59+
5. You can see at a glance that the call to Fabrikamaccount Azure Table is contributing most to the total duration of the transaction. You can also see that an exception caused it to fail. You can click on any item in the list to see its details on the right side. [Learn more about the transaction diagnostics experience](app-insights-transaction-diagnostics.md)
6060

6161
![Operation details](media/app-insights-tutorial-performance/operation-details.png)
62+
6263

63-
> [!NOTE]
64-
Enable the "Unified details: E2E Transaction Diagnostics" [preview experience](app-insights-previews.md) to see all related server-side telemetry like requests, dependencies, exceptions, traces, events etc. in a single full screen view.
65-
66-
With the preview enabled, you can see the time spent in dependency calls, along with any failures or exceptions in a unified experience. For cross-component transactions, the Gantt chart along with the details pane can help you quickly diagnose the root-cause component, dependency or exception. You can expand the bottom section to see time-sequence of any traces or events collected for the selected component-operation. [Learn more about the new experience](app-insights-transaction-diagnostics.md)
67-
68-
![Transaction diagnostics](media/app-insights-tutorial-performance/e2e-transaction-preview.png)
69-
70-
71-
6. The information that you've gathered so far only confirms that there is slow performance, but it does little to get to the root cause. The **Profiler** helps with this by showing the actual code that ran for the operation and the time required for each step. Some operations may not have a trace since the profiler runs periodically. Over time, more operations should have traces. To start the profiler for the operation, click **Profiler traces**.
64+
6. The **Profiler** helps get further with code level diagnostics by showing the actual code that ran for the operation and the time required for each step. Some operations may not have a trace since the profiler runs periodically. Over time, more operations should have traces. To start the profiler for the operation, click **Profiler traces**.
7265
5. The trace shows the individual events for each operation so you can diagnose the root cause for the duration of the overall operation. Click one of the top examples, which have the longest duration.
7366
6. Click **Show Hot Path** to highlight the specific path of events that most contribute to the total duration of the operation. In this example, you can see that the slowest call is from *FabrikamFiberAzureStorage.GetStorageTableData* method. The part that takes most time is the *CloudTable.CreateIfNotExist* method. If this line of code is executed every time the function gets called, unnecessary network call and CPU resource will be consumed. The best way to fix your code is to put this line in some startup method that only executes once.
7467

articles/application-insights/app-insights-tutorial-runtime-exceptions.md

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -57,20 +57,17 @@ Application Insights collects any failures in your application and lets you view
5757

5858
![Failed requests window](media/app-insights-tutorial-runtime-exceptions/failed-requests-window.png)
5959

60-
5. Click **View Details** to see the details for the operation. This includes a Gantt chart that shows two failed dependencies which collectively took almost half of a second to complete. You can find out more about analyzing performance issues by completing the tutorial [Find and diagnose performance issues with Azure Application Insights](app-insights-tutorial-performance.md).
60+
5. See the related samples by clicking on the button with the number of filtered results. The "suggested" samples have related telemetry from all components, even if sampling may have been in effect in any of them. Click on a search result to see the details of the failure.
6161

62-
![Failed requests details](media/app-insights-tutorial-runtime-exceptions/failed-requests-details.png)
62+
![Failed request samples](media/app-insights-tutorial-runtime-exceptions/failed-requests-search.png)
6363

64-
6. The operations detail also shows a FormatException which appears to have caused the failure. Click the exception or on the **Top 3 exception types** count to view its details. You can see that it's due to an invalid zip code.
64+
6. The details of the failed request shows the Gantt chart which shows that there were two dependency failures in this transaction, which also attributed to over 50% of the total duration of the transaction. This experience presents all telemetry, across components of a distributed application that are related to this operation ID. [Learn more about the new experience](app-insights-transaction-diagnostics.md). You can select any of the items to see its details on the right side.
6565

66-
![Exception details](media/app-insights-tutorial-runtime-exceptions/failed-requests-exception.png)
67-
68-
> [!NOTE]
69-
Enable the "Unified details: E2E Transaction Diagnostics" [preview experience](app-insights-previews.md) to see all related server-side telemetry like requests, dependencies, exceptions, traces, events etc. in a single full screen view.
66+
![Failed request details](media/app-insights-tutorial-runtime-exceptions/failed-request-details.png)
7067

71-
With the preview enabled, you can see the time spent in dependency calls, along with any failures or exceptions in a unified experience. For cross-component transactions, the Gantt chart along with the details pane can help you quickly diagnose the root-cause component, dependency or exception. You can expand the bottom section to see time-sequence of any traces or events collected for the selected component-operation. [Learn more about the new experience](app-insights-transaction-diagnostics.md)
68+
7. The operations detail also shows a FormatException which appears to have caused the failure. You can see that it's due to an invalid zip code. You can open the debug snapshot to see code level debug information in Visual Studio.
7269

73-
![Transaction diagnostics](media/app-insights-tutorial-runtime-exceptions/e2e-transaction-preview.png)
70+
![Exception details](media/app-insights-tutorial-runtime-exceptions/failed-requests-exception.png)
7471

7572
## Identify failing code
7673
The Snapshot Debugger collects snapshots of the most frequent exceptions in your application to assist you in diagnosing its root cause in production. You can view debug snapshots in the portal to see the call stack and inspect variables at each call stack frame. You can then debug the source code by downloading the snapshot and opening it in Visual Studio 2017.
@@ -100,15 +97,6 @@ All data collected by Application Insights is stored in Azure Log Analytics, whi
10097

10198
9. Click **Analyze impact** to open Application Insights Analytics. It's populated with several queries that provide details on failed requests such as impacted users, browsers, and regions.<br><br>![Analytics](media/app-insights-tutorial-runtime-exceptions/analytics.png)<br>
10299

103-
## Add work item
104-
If you connect Application Insights to a tracking system such as Visual Studio Team Services or GitHub, you can create a work item directly from Application Insights.
105-
106-
1. Return to the **Exception Properties** panel in Application Insights.
107-
2. Click **New Work Item**.
108-
3. The **New Work Item** panel opens with details about the exception already populated. You can add any additional information before saving it.
109-
110-
![New Work Item](media/app-insights-tutorial-runtime-exceptions/new-work-item.png)
111-
112100
## Next steps
113101
Now that you've learned how to identify run-time exceptions, advance to the next tutorial to learn how to identify and diagnose performance issues.
114102

163 KB
Loading
3.8 KB
Loading
27.2 KB
Loading

0 commit comments

Comments
 (0)