trace_statistics
Rank endpoints by response time, total time, CPU usage, or failures by aggregating a metric over requests, split by a dimension, across services.
Instructions
Multidimensional analysis over traces: aggregates one metric over all matching requests, split by one dimension, across all services or for one. The tool for "which endpoints are the slowest / cost the most time / burn the most CPU / fail the most".
Recipes (the metric defaults to RESPONSE_TIME and the dimension to the request name {Request:Name}; add request_kind: "web" to rank HTTP endpoints only, because without it SQL statements dominate an environment-wide ranking; add service for one service):
slowest endpoints:
aggregation: "P95"(or"AVERAGE", the default for time metrics) withmin_calls: 20, so that requests seen once or twice do not win;most time-consuming endpoints:
aggregation: "SUM";most CPU:
metric: "CPU_TIME",aggregation: "SUM";most errors:
metric: "FAILED_REQUEST_COUNT"(orHTTP_5XX_ERROR_COUNT), a count metric, ranked by itsCOUNTby default;by something else:
dimension: "{Relative-URL}","{HTTP-Status}","{Exception:Class}","{Service:Name}", or a request attribute as"{RequestAttribute:<name>}".
list_definitions: true lists the metrics, dimensions and request attributes this environment has. aggregation picks the column the rows are ranked by; the header names it. The table shows every aggregate Dynatrace returns. For a time metric these are requests (the number of requests), avg, median, p90, p95, the chosen percentile, max, min and sum. For a count metric (Dynatrace returns a COUNT for it) they are printed under Dynatrace's own names, COUNT, COUNT_PER_MINUTE, LOAD, AVERAGE, MIN, MAX, with a line saying what is known about them. timeseries: true adds the top values over time.
Each row prints the request id and, without service, the service it belongs to. Dynatrace returns at most its top 100 values, those with the largest total (sum, or COUNT for a count metric), and leaves out values with too few sampled requests. Ranking by anything else (avg, p95, max, …) re-sorts only those 100, so a rarely called slow request outside them is missing; the output says when that happened.
This tool runs through the Dynatrace Bridge browser extension in the user's logged-in browser. If it fails, report the error to the user; do not try to open browser tabs or use browser automation instead.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of dimension values to print. Default 25, at most 200. The output says how many were omitted. | |
| failed | No | true = only failed requests, false = only successful requests. Omit for both. | |
| metric | No | Metric to aggregate, e.g. RESPONSE_TIME, CPU_TIME, WAIT_TIME, REQUEST_COUNT, FAILED_REQUEST_COUNT, FAILURE_RATE, HTTP_5XX_ERROR_COUNT, EXCEPTION_COUNT, DATABASE_CHILD_CALL_COUNT, DATABASE_CHILD_CALL_TIME. Default RESPONSE_TIME. List them with list_definitions. | |
| request | No | One request (endpoint, SQL statement, job) of `service`: its name or a part of the name (e.g. '/cart/checkout'), or its SERVICE_METHOD-… id. A name is looked up among the requests of `service` (one extra request), so it needs `service`; several matches return the candidates instead of guessing. An id works without a lookup. | |
| service | No | Restrict to one service, as an entity id (SERVICE-1234567890ABCDEF) or a name. A name that matches several entities returns the candidates instead of guessing. Omit for all services. | |
| time_to | No | Absolute end time, ISO 8601; without a zone it is read as UTC. Without time_from, the window starts minutes_lookback before this. Must not be in the future. | |
| dimension | No | Dimension to split by, in braces, e.g. {Request:Name}, {Relative-URL}, {URL:Host}, {HTTP-Status}, {HTTP-Method}, {Exception:Class}, {Service:Name}, {Request:Failure}, or a request attribute as {RequestAttribute:<name>}. Default {Request:Name}. List them with list_definitions. | |
| http_code | No | HTTP response code filter: one code ('404'), a class ('4xx', '5xx') or a range ('400-599'). | |
| min_calls | No | Leave out rows with fewer requests than this: the `requests` column of a time metric; for other metrics it is compared with Dynatrace's `LOAD` aggregate. Use about 20 when ranking by AVERAGE, P95 or MAX so that rarely called requests do not win. Default 0. | |
| time_from | No | Absolute start time, ISO 8601 (e.g. '2026-09-23T10:28:00Z'). A timestamp without a zone (Z or ±hh:mm) is read as UTC. Without time_to, the window runs from here to now. Must not be in the future. | |
| percentile | No | Percentile (1-99) for the PERCENTILE aggregation, shown as an extra column. Default 80. | |
| timeseries | No | Also summarise the top dimension values over time. Default false. | |
| aggregation | No | Aggregate the rows are ranked by. Default: COUNT for count metrics (those Dynatrace returns a COUNT for: REQUEST_COUNT, FAILED_REQUEST_COUNT, …), AVERAGE for every other metric. SUM = total time (on a count metric it means COUNT). LOAD = the number of requests of a time metric (the `requests` column). PERCENTILE needs `percentile`. An aggregate the metric does not have is an error that lists the available ones. | |
| environment | No | Which Dynatrace environment to query, as named in the Dynatrace Bridge extension popup. Omit it for the default, the first environment configured there. The names are not listed here because the extension had not connected yet when this description was built; `dynatrace_bridge_status` lists them. | |
| http_method | No | HTTP method of the request. | |
| raw_filters | No | Escape hatch for servicefilter types without a dedicated argument. Each entry is {type, values}; type is a numeric id or one of CPU_TIME, CALL_INSTANCE_ID, CALL_TREE, CALL_URI, CALL_TAG, WAIT_TIME, SYNC_TIME, SUSPENSION_TIME, CALLEE, CALLER, PROXY, SERVICE_ID, EXCEPTION, DATABASE_STATEMENT, DATABASE_TABLE, FLAWS, DISK_IO_TIME, NETWORK_IO_TIME, NUMBER_OF_DB_CALLS, NUMBER_OF_NON_DB_CALLS, TIME_SPENT_IN_DB_CALLS, TIME_SPENT_IN_NON_DB_CALLS, TRACE_ID, THREAD_NAME, PROCESSING_TIME, DATABASE_VENDOR, DATABASE_NAME, ENTITY_TAG, PG_NAME, PG_TAG, DATABASE_ROW_COUNT, DATABASE_FETCH_COUNT, WEBREQUEST_HOSTNAME, KEY_REQUEST, RELEASE, BUILD, STAGE, PRODUCT, SPAN_NAME, SPAN_ATTRIBUTE, ENTRY_POINT. Value formats of these types are not verified; time values are microseconds. | |
| request_kind | No | web = only requests of web request and web services (HTTP endpoints, including calls to unmonitored hosts); database = only SQL statements. Omit for every kind (also background activity, custom and messaging services). | |
| url_contains | No | Only web requests whose URL contains this text. The quick way to filter by a URL path fragment (e.g. '/checkout') without knowing the service or the request: it works with or without `service`. It matches nothing for non-web requests (SQL statements, cron jobs, messaging, custom services), which have no URL; use `request` for those. | |
| merge_services | No | true = one row per dimension value across services; false (default) = one row per dimension value and service. Ignored when `service` is given. | |
| definitions_view | No | Which built-in analysis view list_definitions reads. Default topweb (web requests); topdb / topsql for database statements, exceptions for exception analysis. | |
| list_definitions | No | Discovery mode: list the available metrics and dimensions instead of running an analysis. | |
| minutes_lookback | No | Window length in minutes. Default 120. With neither time_from nor time_to it means the last N minutes up to now; with only time_to it means the N minutes ending at time_to; ignored when time_from is given. The response header always shows the resolved absolute UTC window. | |
| request_group_id | No | A request type as a SERVICE_METHOD_GROUP-… id. For a 'Requests to unmonitored hosts' service this id is the target host (printed by list_service_requests; there the host name can also be passed as `request`). | |
| request_group_name | No | Display name belonging to request_group_id, exactly as printed next to the id. Pass it together with request_group_id. | |
| request_attribute_id | No | Only with metric REQUEST_ATTRIBUTE: the id of the numeric request attribute, as printed by list_definitions. | |
| response_time_max_ms | No | Only requests whose response time is at most this many milliseconds. | |
| response_time_min_ms | No | Only requests whose response time is at least this many milliseconds. |