Alerts
Peekr Cloud watches your ingested traces and posts to Slack the moment something goes wrong — a runaway cascade, a compliance violation, a hallucination spike, a cost or latency threshold, or your agent going silent. Setup takes about a minute.
Connect Slack
1
Create a Slack incoming webhook
In Slack, go to api.slack.com/messaging/webhooks, create an app (or reuse one), enable Incoming Webhooks, and add a webhook to the channel you want alerts in. Copy the URL — it looks likehttps://hooks.slack.com/services/T…/B…/….2
Paste it into Peekr
Open your project's Settings → Alerts & Slack, paste the webhook URL, and click Connect Slack. Peekr seeds a starter set of alert rules on first connect.3
Send a test
Hit Send test alert. A message should land in your Slack channel within a second. If not, double-check the webhook URL.4
You're done
Event alerts (cascade, compliance) fire as spans arrive; metric alerts (rate/cost thresholds, silence) are evaluated on a schedule. Everything that fires is also logged on your project's Alerts page.What you can alert on
The starter catalog (tune thresholds or disable per project):
| Alert | When | Evaluated |
|---|---|---|
| Cascade | A trace where one op fans out into many calls, or re-enters itself | on ingest |
| Compliance / guardrail | A pack or guardrail violation (incl. memory contradiction) | on ingest |
| Hallucination rate | Too many answers below a faithfulness floor | scheduled |
| Cost | LLM spend over budget in the window | scheduled |
| Latency | p95 latency over a threshold | scheduled |
| Error rate | Error rate over a threshold | scheduled |
| Silence | No spans received — the agent went dark | scheduled |
Note
Each alert is throttled by a fingerprint, so the same cascade or violation won't spam your channel — it fires at most once per throttle window (default 10–60 min).
In-process alerts (SDK)
Prefer to alert from inside your own process, without the cloud? The OSS SDK ships a pluggable alert/sink system — route an alert straight to a Slack webhook from your app:
agent.py
from peekr.alerts import ErrorRate, SlackSink
# Fire to Slack when the error rate over the last 50 traces exceeds 5%
ErrorRate(threshold=0.05, window=50).with_sinks(
SlackSink("https://hooks.slack.com/services/…")
)In-process alerts see one process's traces. Cloud alerts see allyour ingested data, so they can do rates, baselines, and the topology detectors (cascade) that a single process can't compute.