---
title: "Observability"
description: "Measure service health, Worker cost, deployment state, and recovery signals without collecting data that has no owner."
url: "https://architecture.mnppi.org/operations/observability/"
status: "Current"
last_updated: "2026-07-23"
---

# Observability

**Standard details**

- Status: Current
- Reviewed: July 23, 2026
- Cadence: Review with each production incident

Observability must support a decision.
Do not collect a signal when no owner can use it.

## Minimum signals

| Area         | Signal                                            | Owner action                                   |
| ------------ | ------------------------------------------------- | ---------------------------------------------- |
| Availability | Critical route success                            | Investigate a sustained failure.               |
| Errors       | Worker exception rate                             | Find the route, release, and cause.            |
| Latency      | End-to-end and Worker duration                    | Remove slow work or a bad dependency.          |
| Cost         | Worker CPU and service usage                      | Correct a route or update a budget.            |
| Delivery     | Failed Cloudflare build or deploy                 | Fix the build or preserve the healthy release. |
| Data         | Failed migration, queue backlog, or storage error | Stop dependent work and recover safely.        |

## Static-first checks

Static asset requests should avoid Worker execution.
Track unexpected Worker requests to asset paths.

Investigate a change in Worker CPU before increasing a limit.
The normal fix can be route scope, caching, or shorter request work.

## Log rules

Use structured fields for service, environment, route, release, and request outcome.
Do not log secrets, authentication tokens, or unnecessary personal data.

Use a stable release identifier from the deployed commit.
This identifier connects a production error to its source change.

## Alert rules

An alert must state:

- The measured condition.
- The threshold and time window.
- The affected service.
- The first response action.
- The owner.

Remove alerts that stay noisy and do not change an action.
