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.