jaeger_critical_path
Identify the critical path and top bottlenecks in a distributed trace to pinpoint performance issues.
Instructions
Identify the critical path and top bottlenecks in a trace.
Finds the longest-duration span chain (critical path) from root to leaf, and ranks spans by self-time to find actual performance bottlenecks.
Examples: - Use when: "Why is this trace so slow?" → call with the slow trace ID; examine the critical_path_duration_us and critical_path_percentage to see how much of the total time is spent on the longest path. - Use when: "Which operations are consuming the most CPU/self-time?" → check the bottlenecks list sorted by self_time_us descending. - Use when: Debugging performance regressions — compare critical path percentages before/after changes. - Don't use when: You want aggregate statistics across many traces (use jaeger_span_statistics for that). - Don't use when: You need to compare two traces structurally (use jaeger_compare_traces for that).
Returns: dict with trace metadata, critical path spans, and bottleneck ranking.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| trace_id | Yes | Trace ID as a hex string (16 or 32 hex chars). Obtain from jaeger_search_traces. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| trace_id | Yes | ||
| bottlenecks | Yes | ||
| critical_path | Yes | ||
| root_operation | Yes | ||
| bottleneck_count | Yes | ||
| total_duration_us | Yes | ||
| critical_path_percentage | Yes | ||
| critical_path_duration_us | Yes |