Alerts & notifications
Pier watches host and container metrics, plus lifecycle events like deploys and backups, and sends notifications when something crosses a threshold or fails.
Alert rules
Section titled “Alert rules”A rule pairs a metric with a threshold, a comparison and a severity. Numeric rules are evaluated on a recurring tick (default every 30 seconds); event rules fire from the code path that produced the event.
Available metrics:
| Group | Metrics |
|---|---|
| Host | cpu, ram, disk |
| Container | container_cpu, container_ram, container_status, container_restarts |
| Lifecycle | deploy_status, deploy_success, backup_status, backup_success |
| Infra | agent_offline, server_reachable, ssl_expiry, docker_cleanup_success, docker_cleanup_failure |
Each rule also carries:
- comparison —
gt,ltoreq. - severity —
info,warningorcritical. - scope —
globalor a specific service. - duration — how long a breach must hold before firing (default 60s).
- cooldown — minimum gap between repeat fires while still breached (default 30 minutes).
A rule fires once its breach has held for the configured duration, re-fires only after the cooldown elapses, and automatically resolves when the value returns under threshold.
Notification channels
Section titled “Notification channels”Pier ships four channels. Each has one global configuration, stored encrypted:
| Channel | Configuration |
|---|---|
| Telegram | Bot token + chat ID |
Driver (smtp, brevo or resend) + from/to addresses | |
| Discord | Webhook URL + optional @here ping |
| Slack | Webhook URL |
For SMTP email, the encryption mode (starttls, tls, none), host, port (default 587) and credentials are configured per channel. Brevo and Resend send through their HTTP APIs with an API key instead.
Telegram delivery hits
api.telegram.orgdirectly. If your server’s network blocks that host, Telegram notifications will fail to send even though the configuration is valid.
Test notifications
Section titled “Test notifications”Each channel has a Test action that sends a sample message through the live configuration, so you can confirm credentials and connectivity before relying on the channel. Individual rules can also send a test message tagged [TEST].
The event feed
Section titled “The event feed”Every fire and resolve is recorded as an event with its delivery status. Two views are available:
- A global feed of the most recent events across all rules.
- A per-rule history of that rule’s recent events.
Failed deliveries are kept with the error message attached, so a misconfigured webhook or bad SMTP host is visible in the feed rather than silently dropped.
Preset alerts
Section titled “Preset alerts”Pier seeds a set of ready-made preset rules so you don’t start from a blank slate. Presets are toggled on or off rather than built field-by-field, and they deliver through the global channel configuration above instead of carrying their own credentials.
Next steps
Section titled “Next steps”- System maintenance — Docker cleanup events feed alerts too.
- Backups — back up databases the alerts watch over.
- Troubleshooting — when notifications don’t arrive.