traces
Search, aggregate, and filter APM traces to debug request flow and latency issues. Use duration, HTTP status, and error filters for precise analysis.
Instructions
Analyze APM traces for request flow and latency debugging. Actions: search (find spans), aggregate (group stats), services (list APM services). Key filters: minDuration/maxDuration ("500ms", "2s"), httpStatus ("5xx", ">=400"), status (ok/error), errorMessage (grep). APM METRICS: Traces auto-generate metrics in trace..* namespace (e.g. trace.express.request). Use metrics tool to query: avg:trace.express.request.duration{service:my-service}. For percentiles (p95), use the root metric WITHOUT .duration suffix: p95:trace.express.request{service:my-service}
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform | |
| query | No | APM trace search query (Datadog syntax). Example: "@http.status_code:500", "service:my-service status:error" | |
| from | No | Start time. Formats: ISO 8601, relative (30s, 15m, 2h, 7d), precise (3d@11:45:23, yesterday@14:00) | |
| to | No | End time. Same formats as "from". Example: from="3d@11:45" to="3d@12:55" | |
| service | No | Filter by service name. Example: "my-service", "postgres" | |
| operation | No | Filter by operation name. Example: "express.request", "mongodb.query" | |
| resource | No | Filter by resource name (endpoint/query). Supports wildcards. Example: "GET /api/*", "*orders*" | |
| status | No | Filter by span status - "ok" for successful, "error" for failed spans | |
| env | No | Filter by environment. Example: "production", "staging" | |
| minDuration | No | Minimum span duration (find slow spans). Examples: "1s", "500ms", "100ms" | |
| maxDuration | No | Maximum span duration. Examples: "5s", "1000ms" | |
| httpStatus | No | HTTP status code filter. Examples: "500", "5xx" (500-599), "4xx" (400-499), ">=400" | |
| errorType | No | Filter by error type (grep-like). Example: "TimeoutError", "ConnectionRefused" | |
| errorMessage | No | Filter by error message (grep-like). Example: "timeout", "connection refused" | |
| limit | No | Maximum number of results (default: 50) | |
| sort | No | Sort order | |
| groupBy | No | Fields to group by (for aggregate). Example: ["resource_name", "status"] |