Skip to main content
Most of the time you should finish onboarding and let focale open the watching pull request. Merge it if it is still open, set your ingest DSN as a host secret, then publish. The PR adds a boot file (focale.instrument.mjs) and wraps the handlers you confirmed with watch(). The example env file uses a placeholder, not the live key.
Never commit the live ingest key. Put FOCALE_DSN in .env locally, or in your host’s secret store (Lovable, Bolt, Vercel, Railway, and the like). The key is not a GitHub token.

DSN

focale gives you this value. Copy it into secrets. See DSN for the shape.

Manual install

Use this if the PR did not land, or you want to add watching yourself.
Node is the runtime focale lands today.
Call start() once when the process boots, then wrap the handler you care about:
The file focale would have added looks like this:
If you already send OpenTelemetry yourself, you can skip the SDK. See OTLP.