Endpoints and checks
What Pulsimo can check, every endpoint setting, and how a check decides Up, Degraded or Down.
An endpoint is anything Pulsimo checks: a web page, an API route, a database, Redis, Elasticsearch, a gRPC or WebSocket service. Each check is one attempt to reach it. Checks decide whether the endpoint is up or down, open and close incidents, and feed response times, uptime and the status board.
Where to find it#
Services → Endpoints. Click Add endpoint, or open an endpoint's card to edit it, pause it, silence its alerts or see its history.
What Pulsimo can check#
The service type decides how the check is made.
| Service type | Address | The check passes when |
|---|---|---|
| Frontend, Backend, API, Microservice, API gateway | https://… or http://… |
The response is 2xx or 3xx, or exactly the expected status you set |
| Database | postgresql://host:5432 or mysql://host:3306 |
Pulsimo can sign in and run SELECT 1 |
| Cache | redis://host:6379 |
Redis answers PING with PONG |
| Search engine | https://host:9200 |
/_cluster/health is green or yellow (red fails) |
| gRPC | grpc://host:50051 |
The standard gRPC health service reports SERVING |
| WebSocket | ws://… or wss://… |
The connection opens and answers a ping |
Services that are hard to call from outside (POST-only routes, internal services, databases you only see through an exporter) can be judged from their own metrics instead, or as well. See Monitoring from metrics.
HTTP checks#
For HTTP-based types you can set:
- the method (GET by default; POST, PUT and PATCH can send a body with a content type);
- extra headers and query parameters;
- a GraphQL query and variables, sent as a POST;
- an expected status, which may be a 4xx, e.g.
401for a route that should stay protected; - authentication: none, Basic (username and password), Bearer token, or an API key in
a header of your choice (
X-API-Keyby default).
Pulsimo reads up to 2 MB of the body, so the transfer time is real. Each HTTP check also measures DNS, TCP connect, TLS, time to first byte and transfer on a side connection, so the breakdown in Service analytics costs the check nothing.
Endpoint settings#
| Setting | Range | What it does |
|---|---|---|
| Check interval | 10 s to 1 h | How often the endpoint is checked |
| Timeout | 1 to 60 s | A check without an answer in this time fails as a timeout |
| Expected status | any HTTP status | See above |
| Expected response time | ms | An answer slower than this counts as a failed check |
| Retries | 0 to 5 | Extra attempts before a check counts as failed |
| Project | – | Groups the endpoint for the status board, targets and routing |
| Tags, description, owner contact | – | Help people find the endpoint and know who owns it |
When it is down and who is told is set in the endpoint's alert policy (edit → Alert Policy): failures before down, a warning on the first failure, escalation, which channels get outages and warnings, and a slow-response warning that keeps the endpoint up. See Alarms and rules.
Status#
| Status | Meaning |
|---|---|
| Up | The last checks passed |
| Degraded | A partial outage: it answers, but not reliably |
| Down | The alert policy's failures before down were reached, and an incident is open |
| Unknown | Not checked yet, or paused |
A failure that comes back within INCIDENT_REOPEN_MINUTES (10 by default) of a recovery
reopens the last incident instead of opening a new one, so a flapping endpoint is one
incident, not twenty.
Choosing an interval#
| Interval | Good for |
|---|---|
| 10 to 30 s | Customer-facing services where every minute counts |
| 1 min | Most internal APIs and databases |
| 5 min or more | Batch jobs, admin tools, third-party pages you only want to keep an eye on |
Keep the timeout well below the interval. With hundreds of endpoints on short intervals,
watch the check lag on Monitoring pipeline and raise
MAX_CONCURRENT_CHECKS if checks start running late.
Checks as metrics#
Every check is also written to the metrics store as pulsimo_check_up,
pulsimo_check_duration_seconds, pulsimo_check_phase_seconds{phase} and
pulsimo_check_status_code, so you can chart them in the
Metrics Explorer and on Dashboards.
Certificates#
For https:// endpoints Pulsimo also reads the TLS certificate and warns before it
expires. See SSL Certificates in
Service analytics.