Logs

Logs are structured events from context.log, context.audit, and the runtime host itself. The manifest sets the level:
Defaults are info, 7d, and 0.05.

The serial-console trade-off

Structured logs and cumulative usage are mirrored to the VM’s serial console for collection by the host agent. TINY_FIRECRACKER_SERIAL_TELEMETRY controls this and defaults to true.
On nested-KVM hosts the serial console costs roughly 0.08 ms per byte, which adds about 30 ms to every request that logs.TINY_FIRECRACKER_SERIAL_TELEMETRY=false is the escape hatch — but it is a real trade, not a free win. tiny logs and usage metering read the serial log, so a deployment that runs with it off reports neither.
examples/perf-probe exists to measure this on your own host before you decide.

Metrics

Prometheus text format, unauthenticated — as are /v1/health and /v1/ready.
Point your scraper and your load balancer’s health check at different routes. /v1/health says the process is up; /v1/ready says it can actually serve.

Usage

Usage samples include request counts and storage_bytes, the latter split into reads and writes by the operation field. Anonymous traffic is metered, even though it is not written to the audit log one row per request.

Audit

State changes and their audit events are written in the same transaction, so an audit log cannot disagree with the state it describes. Every control-plane action is audited: deploys, approvals, access changes, capability calls, denials, and lifecycle transitions. Anonymous application requests are not audited per request — there is no identity to record.

Webhooks

The signing secret is returned once. URLs must be public HTTPS destinations. Events go to an outbox drained asynchronously — the server drains it every second — so a slow endpoint never blocks a deployment. Verification is in the HTTP API reference.

Alerts

The manifest can carry alert intent for error rate, latency, or request thresholds. The current implementation persists structured worker logs and usage counters; it does not run a separate alert delivery service. Alert intent is recorded, not acted on.Drive alerting from /v1/metrics and webhooks instead.

Correlating a request

Every response carries X-Request-Id, and the same value appears in error.requestId and in context.requestId inside the handler. Supply your own to trace one request across the gateway, the control plane, and the deployment log.