Skip to content

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.

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:

GroupMetrics
Hostcpu, ram, disk
Containercontainer_cpu, container_ram, container_status, container_restarts
Lifecycledeploy_status, deploy_success, backup_status, backup_success
Infraagent_offline, server_reachable, ssl_expiry, docker_cleanup_success, docker_cleanup_failure

Each rule also carries:

  • comparisongt, lt or eq.
  • severityinfo, warning or critical.
  • scopeglobal or 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.

Pier ships four channels. Each has one global configuration, stored encrypted:

ChannelConfiguration
TelegramBot token + chat ID
EmailDriver (smtp, brevo or resend) + from/to addresses
DiscordWebhook URL + optional @here ping
SlackWebhook 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.org directly. If your server’s network blocks that host, Telegram notifications will fail to send even though the configuration is valid.

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].

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.

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.