Health & Status
Four health routes, and only one of them looks at your services./v1/health/deep needs an organization API key. It is the only health
route with auth. An unauthenticated call gets 403, and the platform private
token gets 401 with “API key not found”, so neither an anonymous probe nor the
private token can read component health. A 401 or 403 here is the auth
requirement, not a broken route.On that path, ?deep=true is a real parameter: it adds data-plane
verification on top of the service pings, reading from collections, probing
MVS namespaces and inspecting Celery workers.- Tasks API –
/v1/tasks/{task_id}and/v1/tasks/listexpose status for batches, clustering jobs, taxonomy materialization, and migrations. All tasks useTaskStatusEnum.
Who owns this alert
GET /v1/ops/ownership maps every alert class to the team that owns it and the
procedure for fixing it. Org-scoped, needs a bearer token.
alert_class to resolve one alert, or by subsystem to pull one
entry. The response is {subsystems: [...], total}.
Resolving the responder for one alert: use
alert_escalations[alert_class] when
that key is present, otherwise escalation. Reach for an override when a single
alert inside a subsystem pulls in someone other than the subsystem default. A key
that names an alert the subsystem does not own is rejected at load time, because
an override on an unowned alert never fires and reads like routing that works.
owner_confirmed records that the owner agreed to the entry, and where they said
so. Absent means nobody has confirmed it. An unconfirmed entry can still be
correct, so do not read the absence as a dispute.
Every entry names an owner and a procedure. The loader rejects an entry
carrying one without the other, so
runbook or runbook_text is always
populated even when the written doc does not exist yet. Read both: either can
be the one that is filled.CI pins that every declared alert class is covered by exactly one subsystem,
so an alert cannot be owned twice or by nobody.- Webhooks – webhook events recorded in MongoDB provide a durable log of ingestion and enrichment milestones (
collection.documents.written, etc.).
Engine Monitoring
- Ray Dashboard (port 8265) – view worker health, task timelines, Serve deployments, resource utilization, and logs.
- Ray logs – pod logs (Kubernetes) or Ray CLI provide detailed extractor and clustering output (
ray logs <job_id>). - Serve metrics – per-model latency and request counts; scrape via Prometheus or Ray metrics endpoint.
Analytics APIs
Enable analytics (ENABLE_ANALYTICS=true) to populate ClickHouse-backed metrics:
Use these APIs to populate dashboards or feed alerting systems.
Logging & Tracing
- API layer – structured JSON logs include request IDs, namespace, HTTP status, error codes, and downstream latency.
- Celery workers – log task execution, retries, and webhook dispatch results.
- Ray workers – include extractor metrics, batch IDs, and queue stats; aggregate logs centrally for long-term retention.
- Correlation – propagate
x-request-idfrom API to Engine jobs viaadditional_data.request_idto stitch traces together.
Metrics to Track
Integrate with Prometheus, Datadog, or your preferred metrics stack via existing exporters or custom scrapers.
Alerting Playbook
- Latency spike → check retriever analytics, stage statistics, and Ray Serve load.
- Task backlog → inspect Celery queue length, Redis health, and Ray worker availability.
- Failed enrichment → query
/v1/tasks/listforFAILED, inspecterror_message, review webhook events. - Storage saturation → monitor MVS storage usage and MongoDB disk consumption; scale storage or shard by namespace.
- Cache regression → view cache hit-rate endpoint; adjust TTLs or stage cache configuration.
Dashboards to Build
- API dashboard – health endpoint status, request latency, error breakdown, rate-limit counters.
- Engine dashboard – Ray worker utilization, job runtime percentiles, extractor throughput, Serve queue depth.
- Retrieval performance – retriever analytics charts (latency, cache hits, slow queries).
- Storage dashboard – MongoDB/Redis/MVS metrics for capacity planning.
- Task tracker – open tasks by status, median processing times, failure rates.
Incident Response Tips
- Keep runbooks for common failures (e.g., extractor timeouts, MVS restarts).
- Use webhook history to confirm whether ingestion completed or stalled.
- Capture Ray job IDs from task metadata to replay logs quickly.
- Snapshot retriever and collection configurations when debugging to ensure you’re reproducing the same pipeline.

