Current main: applies to the application at
51a835a. See version and availability for newer candidate work.
Continuous Pulse and Recovery Agent¶
Checks services, sends alerts, and runs the recovery you configure.
CPRa (Continuous Pulse and Recovery Agent) is a self-hosted monitoring and recovery agent written in Go. It runs health checks against your services on a schedule, opens and closes incidents against thresholds you set, sends notifications, and executes a configured recovery action when a service fails. It is free software under the MIT license, distributed as a single static binary.
The current application includes a read-only dashboard, an HTTP API, and the cpractl command-line client. These guides describe the source at 51a835a, published to main on 11 September 2026.
What you can do¶
-
Check a service
Monitor HTTP, TCP, DNS, TLS certificates, containers, and more. Add database and broker checks with optional build tags.
-
Follow an incident
Set failure and healthy-check thresholds. Send notifications to individual destinations or reusable groups.
-
Configure recovery
Trigger a Docker or webhook action, or build in Kubernetes, AWS, and systemd support.
-
Inspect the process
Use the dashboard, CLI, API, and Prometheus metrics to understand monitor and worker-pool state.
Start with a small deployment¶
Run one process for each monitor configuration. Incident state lives in memory and resets when the process restarts. Separate CPRa instances do not coordinate ownership.
Worker sizing uses Erlang C with an Allen–Cunneen variability adjustment. It estimates mean latency; actual capacity depends on your targets, intervals, host, and workload. This preview does not establish a million-monitor benchmark, a percentile latency guarantee, or high availability.
Deployment guide · Queueing model · Current changes · FAQ
Follow the latest development¶
Use versions and availability to choose between these main guides, the durable release candidate, the Go SDK candidate, and the approved management plan. Their implementation and publication states are recorded separately.