Skip to main content
Boat pushes your account’s telemetry to one OTLP/HTTP endpoint that you choose. You do not install an agent in your sandboxes. An account has one endpoint. The API needs a key with account.admin, because the headers hold your vendor credentials.

Set the endpoint

In the dashboard, use the Webhooks & OTel tab. Or use the CLI, the API or an SDK. Give the base URL of the collector. Boat adds /v1/metrics and /v1/logs. If you paste a URL that ends in /v1/metrics, Boat removes that part.
When you save, Boat sends one empty metrics export at once and returns the collector’s answer in test. A wrong key or endpoint shows here, before you wait for data. The first metrics arrive within 60 seconds.
The endpoint must use HTTPS on port 443 or 4318 and resolve only to public addresses. Boat encrypts the header values at rest and never returns them. Up to 20 headers.

Vendor settings

For Grafana Cloud, make the header value like this:

Your own collector and Prometheus

Run the OpenTelemetry Collector with an OTLP/HTTP receiver behind TLS. Export to Prometheus with remote write, or expose a scrape endpoint:
otelcol.yaml
Prometheus turns boat.sandbox.cpu.utilization into boat_sandbox_cpu_utilization, with boat_sandbox_id and boat_sandbox_name labels.

Metrics

All metrics are gauges. Every point carries boat.sandbox.id and boat.sandbox.name, so each sandbox is its own series in every vendor. Each sandbox is one resource: A sandbox sends points only while it runs. Each export holds the samples taken since the previous one.

Events

Each lifecycle event is one OTLP log record. Its event name is sandbox.ready, sandbox.hydrated, sandbox.error, sandbox.archived, sandbox.degraded, or sandbox.recovered. Boat sets it in the record’s event name field and in the event.name attribute. sandbox.error has severity ERROR, sandbox.degraded has WARN, and the others have INFO.

Delivery and errors

Metrics go in time order. After an outage, Boat sends at most the last 10 minutes of metrics. An event is retried like a webhook delivery, up to 8 attempts. Read the status:

Remove the endpoint

Boat stops the export and deletes the queued data at once.
  • Webhooks: the same lifecycle events, signed, to your own HTTPS endpoint.
  • Command history: the output of the processes in a sandbox.