Observer
Observer

Customer scopes

Per-customer status pages, JWT-verified, with per-customer SLO targets.

A customer-scoped page is one underlying status page that renders differently per customer. Each customer sees a filtered subset of metrics and SLOs, with optional per-customer thresholds applied at render time. The same page can therefore serve a 99.99% agreement with one customer and a 99% agreement with another, without duplicating the underlying metric work.

Why customer scopes exist

Enterprise contracts vary. The same backend that an SMB customer signs at 99.5% may carry a 99.99% clause for an enterprise customer with a higher-priced contract. Two implementation paths exist:

  1. Duplicate the metric definition per customer, with different thresholds.
  2. Define the metric once and apply per-customer thresholds at render time.

Path 2 keeps a single source of truth for collection and evaluation. Customer scopes implement path 2.

Identity model

Customer scopes use JWT-based identity. The page's access mode is set to customer_scoped. Observer Cloud verifies tokens against the public key (or JWKS endpoint) configured on the page, then reads a configurable claim (typically sub, customer_id, or a custom claim) to determine which customer is viewing.

A customer must be:

  1. Defined in the organisation's customer list.
  2. Bound to the page through the page's customer-binding list.

A token whose claim does not resolve to a bound customer returns 403, even when the token's signature is valid.

SLO overrides

Each customer can carry per-SLO target overrides. When the customer-scoped page renders for that customer, the SLO strip uses the override target. Customers without an override see the default target.

SLO: checkout-api availability
  default target: 99.9%

Customer A: no override.            renders at 99.9%
Customer B: override at 99.99%.     renders at 99.99%
Customer C: override at 99%.        renders at 99%

The underlying metric and the burn evaluator remain unchanged. The only differences are the threshold the page renders and the per-customer error budget displayed.

Configuration

See Configure customer-scoped pages for the step-by-step setup.

Was this page helpful?