Set up Sentry observability for OpenClaw (install plugin, configure DSN, investigate issues with Sentry CLI). Use when setting up error tracking, traces, or structured logs for an OpenClaw instance, or when investigating Sentry issues/errors.
Install
npx skillscat add sergical/openclaw-skill-sentry Install via the SkillsCat registry.
SKILL.md
Sentry Observability for OpenClaw
Overview
This skill covers two things:
- Setting up the
openclaw-plugin-sentryplugin for error/trace/log collection - Investigating issues using the Sentry CLI
Plugin Setup
Install
openclaw plugins install openclaw-plugin-sentryConfigure
Two config changes needed in openclaw.json:
- Enable diagnostics (required for traces):
{ "diagnostics": { "enabled": true } }- Configure the plugin:
{
"plugins": {
"allow": ["sentry"],
"entries": {
"sentry": {
"enabled": true,
"config": {
"dsn": "<your-sentry-dsn>",
"environment": "production",
"tracesSampleRate": 1.0,
"enableLogs": true
}
}
}
}
}Config lives under plugins.entries.sentry.config — not top-level under sentry.
Get your DSN
- Go to Sentry → Project Settings → Client Keys (DSN)
- Copy the DSN URL (looks like
https://key@o000000.ingest.us.sentry.io/0000000)
What gets captured
| Signal | Source | Sentry Feature |
|---|---|---|
| Errors | Auto-captured exceptions (fetch failures, AbortError, etc.) | Issues |
| Traces | model.usage → ai.chat spans, message.processed → openclaw.message spans |
Tracing |
| Messages | webhook.error, session.stuck → captureMessage |
Issues |
| Logs | Gateway log transport → Sentry.logger |
Structured Logs |
Verify it works
After restart, send a message to your bot and check:
sentry issue list <org>/<project> # Should see any errors
sentry event list <org>/<project> # Should see eventsOr via API:
curl -s "https://sentry.io/api/0/organizations/<org>/events/?project=<project-id>&dataset=discover&field=id&field=title&field=event.type&field=timestamp&sort=-timestamp" \
-H "Authorization: Bearer $SENTRY_AUTH_TOKEN"Sentry CLI Investigation
Auth setup
npm install -g sentry
sentry login
# Follow browser auth flow — stores config in ~/.sentry/cli.dbCommon commands
# List issues for a project
sentry issue list <org>/<project>
# View issue details
sentry issue view <short-id>
# AI-powered root cause analysis
sentry issue explain <short-id>
# List recent events
sentry event list <org>/<project>
# Direct API calls
sentry api /organizations/<org>/projects/Checking traces via API
Traces don't show in the CLI directly. Use the API:
SENTRY_TOKEN="..."
curl -s "https://sentry.io/api/0/organizations/<org>/events/?project=<id>&dataset=discover&per_page=10&sort=-timestamp&field=id&field=title&field=timestamp&field=transaction.duration&field=transaction.op&query=event.type:transaction" \
-H "Authorization: Bearer $SENTRY_TOKEN"Troubleshooting
No traces appearing
- Check
diagnostics.enabled: truein config (this gates event emission) - Check plugin loaded: look for
sentry: initializedin gateway logs - Check for module isolation: plugin's
onDiagnosticEventmust share the same listener set as the gateway (OpenClaw patchesglobalThis.__oc_diagfor this)
Traces show 0ms duration
- Sentry SDK v10 expects timestamps in milliseconds (not seconds)
- The plugin uses
evt.tsandevt.durationMsfrom diagnostic events
Plugin not loading
- Ensure
"sentry"is inplugins.allowarray - Ensure
openclaw.plugin.jsonhasconfigSchemawithadditionalProperties: true - Check gateway logs for config validation errors
Logs not appearing
enableLogs: truemust be set in plugin config- Sentry structured logs may need to be enabled in your Sentry project settings
Sentry.loggerAPI requires@sentry/nodev10+