Alerts & Usage Limits
2Signal tracks usage per organization per month. When you approach your plan limits, email alerts notify the organization owner so you can upgrade or adjust before ingestion is blocked.
What Gets Tracked
| Metric | Description | Counted When |
|---|---|---|
| Trace count | Number of traces ingested | Trace is written to the database |
| Span count | Number of spans ingested | Span is written to the database |
| Eval run count | Number of evaluator executions | Each evaluator scores a trace/span |
Usage is stored per-project per-month in UsageRecord entries (format: 2026-03). Counters are incremented atomically to prevent double-counting.
Plan Limits
| Metric | Free | Pro | Growth | Team | Enterprise |
|---|---|---|---|---|---|
| Traces / month | 10,000 | 50,000 | 150,000 | 500,000 | Unlimited |
| LLM evals / month | 500 | 5,000 | 15,000 | 50,000 | Unlimited |
| Data retention | 7 days | 30 days | 60 days | 90 days | Unlimited |
| Seats | 1 | 3 | Unlimited | Unlimited | Unlimited |
| Rate limit | 100 req/s | 1,000 req/s | 1,000 req/s | 1,000 req/s | 1,000 req/s |
| Price / month | Free | $29 | $79 | $199 | Custom |
Alert Thresholds
Email alerts are sent to the organization owner at two thresholds:
| Threshold | What Happens |
|---|---|
| 80% | Warning email sent. Ingestion continues normally. You have time to upgrade or reduce usage. |
| 100% | Limit reached email sent. On the Free plan, further trace ingestion is blocked until the next billing period. Pro, Growth, and Team plans support overages at per-trace and per-eval rates. |
Each alert fires once per month per threshold. You won't receive duplicate 80% warnings. Alerts are tracked in the UsageAlert table to prevent re-sending.
Viewing Usage
Dashboard
Dashboard → Usage shows:
- Current month usage across all projects
- Per-project breakdown of traces, spans, and eval runs
- Historical usage charts (up to 24 months)
- Percentage of plan limit consumed
CLI
# Current month usage
2signal usage
# Historical usage
2signal usage --months 6
# Per-project usage
2signal usage --project support-agent-prodTUI
Navigate to the Usage screen to see real-time counters and monthly trends.
How Usage Resets
Usage counters reset at the start of each calendar month (UTC). The month is tracked as a string like 2026-03. New UsageRecord entries are created automatically on the first ingestion of each month.
Reducing Usage
- Sample traces in development — not every dev run needs to be traced
- Use
enabled=Falsein the SDK — disable tracing in unit tests - Consolidate projects — usage is per-org, but fewer projects means less overhead
- Optimize evaluators — disable evaluators you aren't actively using. Each enabled evaluator runs on every trace, consuming eval quota.
- Use deterministic evals first — Contains, Regex, JSON Schema, Latency, and Cost are free (no LLM calls). Reserve LLM Judge for semantic quality checks.
Data Retention
A daily cleanup worker deletes traces and spans older than your plan's retention period. Scores associated with deleted traces are also removed.
| Plan | Retention |
|---|---|
| Free | 7 days |
| Pro | 30 days |
| Growth | 60 days |
| Team | 90 days |
| Enterprise | Unlimited |
If you need longer retention, upgrade your plan before the data is deleted — retention cleanup is irreversible.
Upgrading Your Plan
Upgrade from Dashboard → Settings → Billing → Upgrade. This redirects to Stripe Checkout. Plan changes take effect immediately — your new limits are applied as soon as the subscription is active.
Alert Rules
Beyond usage alerts, 2Signal supports configurable alert rules that fire when quality or performance metrics cross thresholds. Alert rules are checked automatically after evaluations complete on each trace.
Supported Metrics
| Metric | Description | Example |
|---|---|---|
EVAL_PASS_RATE | Percentage of traces passing a specific evaluator | Alert when pass rate drops below 80% |
EVAL_SCORE_AVG | Average score for a specific evaluator | Alert when avg score drops below 0.7 |
ERROR_RATE | Percentage of traces with ERROR status | Alert when error rate exceeds 5% |
P95_LATENCY | 95th percentile trace duration | Alert when P95 latency exceeds 10 seconds |
TRACE_COST_AVG | Average cost per trace | Alert when avg cost exceeds $0.50 |
EVAL_SCORE_DRIFT | Drift magnitude for evaluator scores | Alert when drift magnitude exceeds 0.5 |
PII_LEAK_RATE | Percentage of traces with PII detected | Alert when PII leak rate exceeds 1% |
BIAS_SCORE_AVG | Average bias detection score | Alert when bias score exceeds 0.1 |
SLA_BREACH_RATE | Percentage of traces breaching SLA | Alert when SLA breach rate exceeds 5% |
WORKFLOW_DEVIATION_RATE | Percentage of traces deviating from workflow | Alert when deviation rate exceeds 10% |
Delivery Channels
| Channel | Description | Configuration |
|---|---|---|
EMAIL | Email notification via Resend | Recipient email address |
SLACK | Slack message via incoming webhook | Slack webhook URL |
WEBHOOK | HTTP POST to a custom URL | Webhook URL + optional headers |
Creating an Alert Rule
In the dashboard, go to your project settings and configure alert rules. Each rule defines:
- Metric — which metric to monitor
- Evaluator name — for eval-specific metrics (EVAL_PASS_RATE, EVAL_SCORE_AVG)
- Operator —
gt(greater than) orlt(less than) - Threshold — the value that triggers the alert
- Window — time window in minutes to aggregate the metric over
- Cooldown — minimum minutes between repeated alerts to prevent alert storms
- Channel & destination — where to send the notification
Alert Lifecycle
- A trace is ingested and evaluators run
- After evaluation completes, the alert-checker worker evaluates all enabled alert rules for the project
- If a metric crosses its threshold within the configured time window, an
AlertEventis created - The notification is delivered to the configured channel
- The cooldown period prevents the same rule from firing again too soon
Alert events are logged with delivery status, so you can review alert history and troubleshoot delivery failures in the dashboard.