Skip to content
sigiro
Esc
navigateopen⌘Jpreview

POST /v1/investigate

Root-cause an incident for one or more services over a time window. Returns a triage summary — NOT raw telemetry: a ranked findings array (read this first), per-operation anomaly flags, and bounded samples of spans/logs. Every lead carries a ready-to-run SQL string (drill_down_sql on findings, operations, spans, and log patterns; drill_all_sql on the spans/logs sections) that you paste VERBATIM into POST /v1/query to fetch the underlying rows and go deeper. Typical agent loop: GET /v1/servicesPOST /v1/investigate → for any finding or anomalous operation, run its drill_down_sql via /v1/query. Timestamps are microseconds since the Unix epoch. The response is a map {results: {service: block}, errors: {service: message}} — partial results survive a single failing service.

POST/v1/investigate
Authorization
AuthorizationBearer token (prefixed-api-key) · headerrequired
Request body
requiredapplication/json
from_tsinteger<int64>required
Window start, **microseconds** since the Unix epoch (a 16-digit value, e.g. 1780000000000000). Seconds/millis/nanos are rejected with a hint.
servicestring | null
Single service to investigate. Provide this OR `services` (call `GET /v1/services` first to discover valid names).
servicesstring[] | null
Multiple services in one call (max 10). Alternative to `service`.
to_tsinteger<int64>required
Window end, microseconds since the Unix epoch. Must be > `from_ts`.
Responses
200Per-service investigation blocks
errorsobjectrequired
Services whose investigation query failed, keyed by service name, with the error message. Empty when everything succeeded.
resultsobjectrequired
Successful investigation blocks, keyed by service name.
400Invalid request (e.g. timestamps not in microseconds, or to_ts <= from_ts)
401Missing or invalid bearer token
Request
curl -X POST "/v1/investigate" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "from_ts": 1780000000000000,
  "service": "worldpol-pipeline-worker",
  "services": [
    "string"
  ],
  "to_ts": 1780001800000000
}'
Response
{
  "errors": {},
  "results": {}
}