Core concepts
Organization
The billing and membership boundary. Every user gets a personal organization on signup and can create more. An organization owns:
- projects
- members and their roles
- a wallet (Toman) and its pay-as-you-go usage
- integrations, AI configurations, notification channels and alert rules
- dashboards
- a retention policy (
retention_days)
Project
One application or service. A project owns its events, issues, logs, replays, monitors,
metrics, profiles and feedback. Projects have a platform (for the icon and setup
snippet) and a sample rate — the fraction of arriving events that get stored
(1.0 keeps everything).
DSN key
The credential an SDK uses to send data:
https://<public_key>@<host>/<project_id>
A project can have several keys (label, public_key, is_active) so you can rotate one
without downtime. The public key is what authenticates ingestion — via the X-Sentry-Auth
header, a ?sentry_key= query parameter, or the dsn field of an envelope header.
Event
One thing that happened: an exception, a message, a transaction, a log record, a replay
segment, a check-in, a metric bucket or a feedback submission. SDKs post events as
envelopes to /api/<project_id>/envelope/ (or the legacy /store/ endpoint for plain
error events).
Issue (group)
Events are fingerprinted — by exception type plus stack trace, Sentry-style — and identical fingerprints collapse into one issue. The issue tracks:
times_seen, unique users, first seen / last seen- status:
unresolved,resolved,ignored,archived - assignment and bookmarks
- 24h / 30d trend series
If a new event arrives for an issue you already resolved, the issue regresses back to
unresolved and fires the issue.regressed alert event.
Trace and span
A trace ties together everything that happened during one logical operation, across
services. A transaction is the root span of one service's work; spans are the
nested units of work inside it (an HTTP call, a SQL query, an LLM call). Logs, profiles,
replays and check-ins carry the trace_id too, which is how the UI can jump from a log
line to the transaction that produced it.
Environment and release
- Environment (
production,staging, …) separates the same code running in different places. Cron monitors keep per-environment state; issues, logs and feedback can be filtered by it. - Release (
myapp@1.4.2) tags every event with the version that produced it, and is the key that source maps are uploaded under.
Set both in the SDK:
sentry_sdk.init(dsn="…", environment="production", release="myapp@1.4.2")
Sampling
Two independent knobs:
- SDK-side —
traces_sample_rate,profiles_sample_rate,replaysSessionSampleRatedecide what the client sends. - Server-side — the project's
sample_ratedecides what Errora stores from what arrives.
Both reduce cost. SDK-side sampling also reduces the load on your own app.
Retention
Each organization sets retention_days. A nightly job deletes events, logs and replays past
that age (and issues left empty), falling back to DATA_RETENTION_DAYS_DEFAULT (90 days).
See Data retention.
Roles and capabilities
Roles are owner, admin, member, billing, viewer, applied per organization and
optionally per project, resolved through a capability matrix (org:manage,
project:manage, issue:write, ai:trigger, …). See
Roles & permissions.