Loading...
Loading...
Search and analyze Oodle traces by service, operation, duration, and error status.
npx skill4agent add oodle-ai/agent-skills oodle-tracesbrew install oodle-ai/oodle/oodle
oodle configureoodle traces list --from -15m --to now -o json | jq 'length'oodle traces list --from -1h --to now -o json | jq -r '.[].service' | sort -u--service--from--to--error--min-duration--operationoodle traces get <trace-id> -o jsonoodle traces list--service| Task | Command |
|---|---|
| List traces in a service | |
| List error traces only | |
| List slow traces (>500ms) | |
| Filter by operation | |
| Get full trace | |
# ✅ CORRECT — scoped to one service, narrow time window, error filter on
oodle traces list --service api --error --from -1h --to now -o json
# ❌ WRONG — no service, no error filter, huge result set
oodle traces list --from -1h --to now -o json# ✅ CORRECT — slow checkout traces in the last hour
oodle traces list --service checkout --min-duration 500 --from -1h --to now -o json
# ✅ CORRECT — narrow further by operation when you know the endpoint
oodle traces list --service checkout --operation POST_/cart --min-duration 500 --from -1h -o json
# ❌ WRONG — listing everything and sorting client-side wastes the API budget
oodle traces list --service checkout --from -1h -o json | jq 'sort_by(.durationMs) | reverse | .[0:10]'# ✅ CORRECT — list to discover trace ids, then get the one of interest
TRACE_ID=$(oodle traces list --service api --error --from -15m -o json | jq -r '.[0].traceId')
oodle traces get "$TRACE_ID" -o json
# ❌ WRONG — `oodle traces get` without an id (it expects the id as a positional arg)
oodle traces get--from--to| Format | Example |
|---|---|
| Epoch seconds | |
| |
| Relative duration | |
# ✅ CORRECT
oodle traces list --service api --from -30m --to now -o json
# ❌ WRONG — human strings are not parsed
oodle traces list --service api --from "30 minutes ago"--service# ✅ CORRECT
oodle traces list --service api --from -1h -o json
# ❌ WRONG — full-tenant scan
oodle traces list --from -1h -o json--error--error# ✅ CORRECT
oodle traces list --service api --error --from -1h -o json
# ❌ WRONG — fetches every trace then filters client-side
oodle traces list --service api --from -1h -o json | jq '.[] | select(.status=="error")'--min-duration# ✅ CORRECT — server-side filter, returns ~the right number of rows
oodle traces list --service api --min-duration 500 --from -1h -o json
# ❌ WRONG — pulls everything, sorts on the client
oodle traces list --service api --from -1h -o json | jq 'sort_by(.durationMs) | reverse'list--to# ✅ CORRECT — bounded window
oodle traces list --service api --error --from -1h --to now -o json
# ❌ WRONG — multi-day list
oodle traces list --service api --error --from -7d --to now -o json| Error | Cause | Fix |
|---|---|---|
| 401 Unauthorized | Invalid or missing API key | Run |
| 404 Not Found | Trace ID does not exist or has aged out of retention | Re-list with a recent |
| connection refused | Wrong | Check |
| Empty result | Wrong service name or time window outside retention | List recent services: `oodle traces list --from -1h -o json |
| Request times out | Time window too large or no service filter | Narrow |
| 429 Too Many Requests | Concurrent trace fetches | Add |