Get started
Nothing to install and nothing to re-instrument. If your services already emit OpenTelemetry, this is one environment variable.
1 — Account
The free tier needs no card. You'll land on an empty dashboard with an API key waiting for you in settings.
2 — Point your exporter
Whale speaks OTLP natively over HTTP and gRPC, so there's no vendor SDK and no agent to install. Whatever you already use keeps working.
OTEL_EXPORTER_OTLP_ENDPOINT=https://ingest.whale.balajitech.xyz OTEL_EXPORTER_OTLP_HEADERS=x-api-key=$WHALE_API_KEY OTEL_SERVICE_NAME=checkout-api
exporters: otlphttp/whale: endpoint: https://ingest.whale.balajitech.xyz headers: x-api-key: ${WHALE_API_KEY} service: pipelines: logs: exporters: [otlphttp/whale] metrics: exporters: [otlphttp/whale] traces: exporters: [otlphttp/whale]
3 — Confirm
Not wired up to OTel yet? Send one event by hand and watch it land in the explorer.
curl -s https://ingest.whale.balajitech.xyz/dev/logs \ -H "x-api-key: $WHALE_API_KEY" \ -H 'content-type: application/json' \ -d '{"service":"checkout-api", "body":"payment timeout"}'
Then open the Logs tab in your dashboard — it should be there within a second, and the live tail will show it stream in.
Reference
| Path | Format | Use |
|---|---|---|
| POST /v1/logs · /v1/metrics · /v1/traces | OTLP/HTTP — protobuf or JSON | Any OTel SDK or Collector, no special config |
| OTLP/gRPC Export | OTLP/gRPC protobuf | The default OTLP transport for most SDKs |
| POST /dev/logs · /dev/metrics · /dev/spans | Simple JSON | curl, smoke tests, seeding a demo |
| WS /v1/logs/tail | WebSocket | Live tail in the browser |
| GET /usage | JSON | Your event count today, against your plan limits |
Every path authenticates with your workspace API key — the x-api-key header over HTTP, or gRPC metadata. The websocket tail takes it as a query parameter, since browsers can't set headers on a WebSocket handshake.
Migrating
Then this is a one-line change, not a project. Add Whale as a second exporter first, run both for a week, and cut over when you're satisfied the data matches — OpenTelemetry pipelines fan out to as many destinations as you like.
service: pipelines: traces: exporters: [otlphttp/incumbent, otlphttp/whale]
Self-hosting
Whale runs on your own infrastructure against your own ClickHouse on Enterprise plans — same platform, same UI, your network. Most teams start hosted and only move if compliance requires it.
One endpoint, one API key, and the instrumentation you already have.