Send your first event
OpenFault speaks the Sentry wire protocol. Keep your Sentry SDK and change the DSN. That is the whole migration.
Get a DSN
Create a project in the setup wizard or in Settings → Projects. The project page shows its DSN, shaped like:
https://<key>@errors.example.com/<project-id>
The host comes from OPENFAULT_BASE_URL. If the DSN shows http://localhost:8080, set that variable first.
Rails (sentry-ruby)
# config/initializers/sentry.rb
Sentry.init do |config|
config.dsn = "https://<key>@errors.example.com/1"
end
Next.js (@sentry/nextjs)
Set the DSN in all three config files: sentry.client.config.ts, sentry.server.config.ts and sentry.edge.config.ts.
Sentry.init({
dsn: "https://<key>@errors.example.com/1",
});
For readable stack traces from minified code, upload source maps. See Source maps.
Node (@sentry/node)
const Sentry = require("@sentry/node");
Sentry.init({ dsn: "https://<key>@errors.example.com/1" });
Python (sentry-sdk)
import sentry_sdk
sentry_sdk.init(dsn="https://<key>@errors.example.com/1")
Check it landed
Throw something, then open the project. A new issue shows up within a second or two.
Sentry.captureException(new Error("hello from OpenFault"));
What we drop
OpenFault keeps errors. Only event envelope items are stored. Transactions, spans, sessions, replays, profiles, attachments, check-ins, logs, metrics, client reports and feedback are accepted and thrown away, with a 200 so the SDK is happy.
Every response carries X-Sentry-Rate-Limits: 86400:transaction;span;profile;replay;session:organization, so SDKs stop sending tracing, replay, profiling and session data on their own. You can leave tracesSampleRate alone; it just stops costing bandwidth.
Limits
- 20 MiB compressed request, 100 MiB decompressed, 1 MiB per event. Larger gets
413. - gzip, deflate, br and zstd request bodies are accepted.
- Per project: 1,000 events per 5 minutes and 5,000 per hour. Over that, or when the ingest queue is full, you get
429withRetry-After: 60, and SDKs back off. - Wrong key, or a key for another project, gets
403.