@rawdash/connector-sentry
v0.29.2
Published
Rawdash connector for Sentry — issues, issue events, releases, and error-rate metrics
Downloads
43
Readme
@rawdash/connector-sentry
Sync issues, issue events, releases, and hourly error rates from a Sentry organization.
Install
npm install @rawdash/connector-sentryAuthentication
A Sentry auth token is required. Use an organization-level Internal Integration token or a User Auth Token with read access to issues, events, and releases.
- Open Sentry → Settings → Custom Integrations → New Internal Integration (or Settings → Auth Tokens for a personal token).
- Grant read access to Issues & Events and Releases.
- Copy the generated token and store it as a secret, referencing it from the connector config as
authToken: secret("SENTRY_AUTH_TOKEN"). - Set the
organizationslug as it appears in your Sentry URL.
Configuration
| Field | Type | Required | Description |
| -------------------- | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| authToken | secret | Yes | Sentry Internal Integration token or User Auth Token. Create one at Sentry → Settings → Auth Tokens (or for an org, Settings → Custom Integrations → New Internal Integration). |
| organization | string | Yes | Your Sentry organization's slug, as it appears in the URL. |
| projects | array | No | Restrict the sync to specific Sentry project slugs (or numeric IDs). Omit to sync every project the token can see. |
| resources | array | No | Which Sentry resources to sync. Omit to sync all of them. 'issue_events' depends on 'issues' being fetched - enabling it without 'issues' still runs the issues query, but skips writing issue entities. |
| eventsPerIssueCap | number | No | Maximum number of recent events (occurrences) to sample per issue on each sync. Defaults to 100 (the max page size Sentry allows for the issue events endpoint). |
| statsLookbackHours | number | No | How many hours of hourly error-rate data to refresh on each sync. Defaults to 24. |
Resources
sentry_issue(entity) - Sentry issues (error groups) with level, status, occurrence count, affected user count, and first/last seen timestamps.- Endpoint:
GET /api/0/organizations/{organization}/issues/
- Endpoint:
sentry_issue_event(event) - Individual event occurrences sampled per issue, with platform, environment, level, and message.- Endpoint:
GET /api/0/issues/{issueId}/events/ - Events are sampled: at most eventsPerIssueCap recent events per issue per sync (Sentry caps a single events page at 100), so this is a representative sample, not a full audit trail.
- Endpoint:
sentry_release(entity) - Releases with their versions, associated project slugs, and creation/release/last-event timestamps.- Endpoint:
GET /api/0/organizations/{organization}/releases/
- Endpoint:
sentry_errors_per_hour(metric) - Hourly count of accepted (stored) error events across the organization over the configured lookback window.- Endpoint:
GET /api/0/organizations/{organization}/stats_v2/ - Unit: errors
- Granularity: 1h
- Endpoint:
Example
import {
defineConfig,
defineDashboard,
defineMetric,
secret,
} from '@rawdash/core';
const sentry = {
name: 'sentry',
connectorId: 'sentry',
config: {
authToken: secret('SENTRY_AUTH_TOKEN'),
organization: 'my-org',
projects: ['my-project'],
},
};
export default defineConfig({
connectors: [sentry],
dashboards: {
engineering: defineDashboard({
widgets: {
unresolved_issues: {
kind: 'stat',
title: 'Unresolved Issues',
metric: defineMetric({
connector: sentry,
shape: 'entity',
entityType: 'sentry_issue',
fn: 'count',
filter: [{ field: 'status', op: 'eq', value: 'unresolved' }],
}),
},
},
}),
},
});Rate limits
Sentry returns X-Sentry-Rate-Limit-Remaining / X-Sentry-Rate-Limit-Reset headers (reset in seconds); list pagination uses the Link header (page size 100).
Limitations
- Performance / trace data is out of scope (high cost, low signal for dashboards).
- Self-hosted Sentry on custom hosts is out of scope (pagination URLs are pinned to sentry.io).
Links
License
Apache-2.0
