Skip to main content
The DSN is the one value your app needs. Put it in FOCALE_DSN. Do not commit the live key.

Shape

The part before @ is the ingest key. The host is where watching is sent. Production always uses intake.focale.io.

Bearer mapping

Boot code (or your OTEL exporters) reads the key out of the DSN and sends it as:
You do not set that header yourself if your watching boot parses FOCALE_DSN.

Local intake

If you are sending to a local intake instead of production, use that host in the DSN. The path layout stays the same. See OTLP for the full contract.