Skip to content

Concepts Services

Arael Espinosa edited this page Jul 13, 2026 · 2 revisions

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.

What a Service looks like

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 groups its Checks

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 /health to verify the app responds
  • An SSL check on api.example.com to 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 values

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)

Visibility

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.

Key properties

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.

Related

  • Checks — how to configure what gets monitored within a Service
  • Escalation Policies — how alerts on this service's checks escalate to on-call

Clone this wiki locally