Skip to main content

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, replaysSessionSampleRate decide what the client sends.
  • Server-side — the project's sample_rate decides 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.