Observability
Every Acme service ships with built-in observability — no agent install, no per-handler instrumentation. The runtime captures structured logs, OpenTelemetry traces, and custom metrics automatically.
Logs
Structured logs are emitted to the platform log sink for every request. To add your own fields:
The log automatically carries request_id, actor_id, org_id,
service, region, and version — never log them manually.
Traces
Spans are created for every handler invocation, database query, outbound HTTP call, and cache lookup. View them in the dashboard under Service → Traces or export to your own backend with the OTLP shipper.
Custom metrics
Counters, histograms, and gauges live alongside your handlers:
Metrics are flushed every 10 seconds and retained for 90 days.
Alerts
Define alerts in acme.config.ts:
Slack, PagerDuty, email, and webhook destinations are supported.