|
| 1 | +--- |
| 2 | +title: Automated Analysis |
| 3 | +description: Automatically surfacing critical issues with contextual insights and recommended next steps |
| 4 | +aliases: |
| 5 | + - /profiler/automated_analysis/ |
| 6 | +further_reading: |
| 7 | + - link: 'profiler/enabling' |
| 8 | + tag: 'Documentation' |
| 9 | + text: 'Enable continuous profiler for your application' |
| 10 | + - link: 'getting_started/profiler' |
| 11 | + tag: 'Documentation' |
| 12 | + text: 'Getting Started with Profiler' |
| 13 | + - link: 'https://www.datadoghq.com/blog/introducing-datadog-profiling/' |
| 14 | + tag: 'Blog' |
| 15 | + text: 'Introducing always-on production profiling in Datadog' |
| 16 | + - link: 'https://www.datadoghq.com/blog/continuous-profiler-timeline-view/' |
| 17 | + tag: 'Blog' |
| 18 | + text: "Diagnose runtime and code inefficiencies using Continuous Profiler's timeline view" |
| 19 | +multifiltersearch: |
| 20 | + # "id" must match the corresponding key in the "data" object |
| 21 | + headers: |
| 22 | + - name: Name |
| 23 | + id: name |
| 24 | + filter_by: true |
| 25 | + - name: Severity |
| 26 | + id: severity |
| 27 | + filter_by: true |
| 28 | + - name: Description |
| 29 | + id: description |
| 30 | + filter_by: false |
| 31 | + |
| 32 | + data: |
| 33 | + - name: GC Setup |
| 34 | + severity: Info |
| 35 | + description: Triggers when one of the following is detected - serial GC used on a multi-core machine, parallel GC on a single-core machine, more GC threads were configured than available cores, or a parallel GC was configured to run in 1 thread |
| 36 | + - name: Duplicated Flags |
| 37 | + severity: Info |
| 38 | + description: Triggers if duplicate flags were provided to the runtime (e.g. `-Xmx2g -Xmx5g`). This is a problem as it may lead to changes not having the expected effect. |
| 39 | + - name: Options |
| 40 | + severity: Warn |
| 41 | + description: Triggers if undocumented, deprecated or non-recommended option flags were detected. |
| 42 | + - name: Stackdepth Setting |
| 43 | + severity: Warn |
| 44 | + description: Triggers if events were found with truncated stacktraces which may make it hard to understand profiling data. |
| 45 | + - name: VMOperation Peak Duration |
| 46 | + severity: Warn |
| 47 | + description: Triggers if a blocking VM operation (or combination of ops close in time) taking more than 2 seconds. Reports details about the operation with the highest duration. |
| 48 | + - name: GC Pauses |
| 49 | + severity: Warn |
| 50 | + description: Triggers if more than 10% of time was spent in GC pauses. |
| 51 | + - name: GC Pause Peak Duration |
| 52 | + severity: Info |
| 53 | + description: Triggers if at least one GC pause took more than 1 second. |
| 54 | + - name: Deadlocked Threads |
| 55 | + severity: Warn |
| 56 | + description: Triggers if we see a custom datadog event capturing deadlocked threads during the profile. |
| 57 | + - name: Deadlocked Threads Detected |
| 58 | + severity: Warn |
| 59 | + description: Triggers if max number of deadlocked threads over query context is bigger than 0. |
| 60 | + - name: Thrown Exceptions |
| 61 | + severity: Warn |
| 62 | + description: Triggers when the rate of thrown (caught and uncaught) exceptions per minute goes above a threshold (defauls to 10K) |
| 63 | + - name: Primitive Value Boxing |
| 64 | + severity: Info |
| 65 | + description: Triggers if more than 5% of CPU time was spent doing primitive<>object value conversions. |
| 66 | + - name: Explicit GC |
| 67 | + severity: Info |
| 68 | + description: Triggers if there are System.gc() calls. |
| 69 | + - name: Head of line blocking |
| 70 | + severity: Info |
| 71 | + description: Triggers if a queue event gets stuck behind the given activity. |
| 72 | +--- |
| 73 | + |
| 74 | +## Overview |
| 75 | +Automated Analysis helps teams detect and troubleshoot problems faster, without requiring deep expertise in code profiling. Powered by Continuous Profiler, Automated Analysis continuously monitors your applications and surfaces critical issues in real time, along with actionable insights to guide resolution. When a problem is detected, Automated Analysis provides: |
| 76 | + |
| 77 | +- A high-level summary explaining the issue and why it matters |
| 78 | +- Contextual insights from profiling data (e.g., affected methods, packages, or processes) |
| 79 | +- Recommended next steps to help you resolve the issue efficiently |
| 80 | + |
| 81 | +By reducing the expertise required to take action, Automated Analysis enables faster resolution of performance issues, increases product adoption, and helps teams avoid costly blind spots. It also lays the foundation for powering performance and cost insights across the Datadog platform. |
| 82 | + |
| 83 | + |
| 84 | +{{< img src="profiler/profiling_automated_analysis.png" alt="The Profiler Thread Time line showing a Thrown Exception insight" style="width:100%;" >}} |
| 85 | + |
| 86 | +## Explore insights |
| 87 | +Automated Analysis will be surfaced within the [Profile explorer][1] |
| 88 | +- As a banner at the top of the page when you're scoped to a specific service |
| 89 | +{{< img src="profiler/profiling_automated_analysis_banner.png" alt="The Automated Analysis banner displaying insights detected for a given service" style="width:100%;">}} |
| 90 | +- As a column within the service list |
| 91 | +{{< img src="profiler/profiling_automated_analysis_column.png" alt="The Automated Analysis column displaying insights detected for a given service within the service list" style="width:100%;">}} |
| 92 | + |
| 93 | +Clicking an an insight in either area will display a high-level summary explaining the issue, contextual insights from profiling data, and recommended next steps. |
| 94 | +{{< img src="profiler/profiling_automated_analysis_details.png" alt="Expanded Profiling Insights showing the details of a detected Issue" style="width:100%;">}} |
| 95 | + |
| 96 | +## Aggregated vs Individual Insights |
| 97 | +Individual insights are tied to a specific profile and show up directly in the flamegraph and timeline views. They highlight problems detected within a single recording, giving detailed context about a specific performance issue observed in that exact moment. |
| 98 | +{{< img src="profiler/profiling_automated_analysis_individual.png" alt="Example of an individual profile insight within the trace explorer" style="width:100%;">}} |
| 99 | + |
| 100 | +Aggregated insights, on the other hand, are surfaced at the service level and represent patterns detected across many profiles. They help you identify recurring or systemic issues affecting a service over time, making them ideal for quickly spotting problematic trends without digging into individual profiles. |
| 101 | +{{< img src="profiler/profiling_automated_analysis_aggregated.png" alt="Example of an aggregated insight within the profiler explorer" style="width:100%;">}} |
| 102 | + |
| 103 | + |
| 104 | +## Supported Insights |
| 105 | +<!-- The table below is auto-generated. Add new entries in multifiltersearch with new insights as they become available. --> |
| 106 | +{{< multifilter-search >}} |
| 107 | + |
| 108 | + |
| 109 | +## Further reading |
| 110 | + |
| 111 | +{{< partial name="whats-next/whats-next.html" >}} |
| 112 | + |
| 113 | +[1]: https://app.datadoghq.com/profiling/explorer |
| 114 | + |
0 commit comments