-
Notifications
You must be signed in to change notification settings - Fork 0
Concepts Services
A Service is anything you want to monitor and show on your status page — a web app, an API, a database, a third-party integration, or any other component your users depend on.
Think of a Service as a card on your status page. It has a name, an optional description, and a current status that updates automatically based on how its checks are doing.
A typical setup might look like this:
| Service | What it represents |
|---|---|
| Production API | Your backend REST API |
| Web App | The customer-facing frontend |
| Payment Gateway | Stripe or your payments provider |
| Database | PostgreSQL or MySQL endpoint |
| CDN / Assets | Static files and media delivery |
A Service on its own doesn't monitor anything — that's what Checks do. You attach one or more Checks to a Service, and Piro rolls up their results into a single status.
Example: Your Production API service might have:
- An HTTP check on
/healthto verify the app responds - An SSL check on
api.example.comto catch expiring certificates - A TCP check on port 5432 to confirm the database is reachable
If any of those checks fail, the service status degrades accordingly. The worst status among all checks wins.
| Status | What it means |
|---|---|
| 🟢 UP | Everything is operating normally |
| 🟡 DEGRADED | Partially available or slower than expected |
| 🔴 DOWN | Fully unavailable |
| 🔧 MAINTENANCE | Scheduled maintenance window is active |
| ⚪ NO_DATA | No check results yet (new service) |
Services appear on the public status page by default. You can hide a service (useful for internal infrastructure) — it will still be monitored and trigger alerts, but won't be visible to end users.
| Field | Description |
|---|---|
| Name | Display name shown on the status page and admin panel |
| Description | Optional free-text notes |
| Visible | Whether the service appears on the public status page |
escalationPolicyId |
Optional reference to an Escalation Policy. If unset, alerts on this service's checks never escalate to on-call — the admin panel shows a warning on the service when this is missing |
Source: Service.cs
⚠️ Note: A service without an escalation policy assigned will still fire alerts to its configured triggers, but nobody will be automatically paged via on-call rotation. Assign a policy from Admin panel → Services → select a service → Escalation Policy if this service needs on-call coverage.
- Checks — how to configure what gets monitored within a Service
- Escalation Policies — how alerts on this service's checks escalate to on-call