| name | sentry |
| description | Add observability to your OpenClaw instance — errors, logs, and traces sent to Sentry. Set up monitoring with the Sentry plugin, then investigate issues with the `sentry` CLI. |
| metadata | {"openclaw":{"emoji":"🐛","requires":{"bins":"[Truncated]"},"install":["[Truncated]"]}} |
Sentry — OpenClaw Observability
See what your OpenClaw instance is doing: errors, structured logs, and performance traces — all in Sentry.
Two halves: setup (get telemetry flowing) and investigation (query it with the CLI).
Setup
1. Authenticate
sentry auth login
OAuth device flow — follow the browser prompt. Credentials stored in ~/.sentry/cli.db.
Alternatives (one-liners):
sentry auth login --token <TOKEN> — paste an auth token directly
SENTRY_AUTH_TOKEN=<token> — env var, useful in CI
2. Create a Project
Create a dedicated Sentry project for your OpenClaw instance:
sentry api /teams/<org>/<team>/projects/ \
--method POST \
--field name="my-openclaw" \
--field platform=node
Don't know your org/team slugs? List them:
sentry api /organizations/
sentry api /organizations/<org>/teams/
3. Get the DSN
sentry project view <org>/my-openclaw --json | jq -r '.dsn'
Or via the keys endpoint:
sentry api /projects/<org>/my-openclaw/keys/ | jq '.[0].dsn.public'
4. Configure OpenClaw
Add the DSN to your openclaw.json:
{
"plugins": {
"entries": {
"sentry": {
"enabled": true,
"config": {
"dsn": "https://examplePublicKey@o0.ingest.sentry.io/0",
"enableLogs": true
}
}
}
}
}
Note: Config goes under plugins.entries.sentry.config, not directly under sentry.
Then install the Sentry plugin. See references/plugin-setup.md for the full plugin implementation using @sentry/node.
Log buffer gotcha: Sentry's structured logs buffer up to 100 items before auto-flushing. For low-volume services like OpenClaw, logs may sit in the buffer for a long time. The plugin should call _INTERNAL_flushLogsBuffer(client) periodically (e.g. every 30s) and before Sentry.flush() on shutdown. See references/plugin-setup.md for the implementation.
5. Verify
Restart your OpenClaw gateway, then check Sentry for incoming events:
sentry issue list <org>/my-openclaw --limit 5
Investigation
Once telemetry is flowing, use the CLI to query your OpenClaw's errors, traces, and events.
List Issues
sentry issue list <org>/<project>
sentry issue list <org>/<project> --query "is:unresolved" --sort freq --limit 20
sentry issue list <org>/
View an Issue
sentry issue view <short-id>
sentry issue view <short-id> --json
AI Root Cause Analysis
sentry issue explain <issue-id>
sentry issue explain <issue-id> --force
sentry issue plan <issue-id>
Structured Logs
sentry log list <org>/<project>
sentry log list <org>/<project> --limit 50
sentry log list <org>/<project> -q 'level:error'
sentry log list <org>/<project> -q 'database'
sentry log list <org>/<project> -f
sentry log list <org>/<project> -f 5
sentry log list <org>/<project> --json
View a specific log entry:
sentry log view <log-id>
sentry log view <log-id> --json
sentry log view <log-id> --web
Inspect Events
sentry event view <event-id>
sentry event view <event-id> --json
Direct API Calls
sentry api /projects/<org>/<project>/issues/ --paginate
sentry api /issues/<id>/ --method PUT --field status=resolved
sentry api /issues/<id>/ --method PUT --field assignedTo="user@example.com"
Workflow: Investigate an Error
sentry issue list <org>/<project> --query "is:unresolved" --sort date --limit 5
sentry issue view <short-id> — context, affected users, timeline
sentry issue explain <issue-id> — AI root cause analysis
sentry issue plan <issue-id> — concrete fix steps
- Fix →
sentry api /issues/<id>/ --method PUT --field status=resolved
Reference