Define a manual metric
The cleanest path for operators without metrics infrastructure.
If you do not have a Prometheus server, no observability for the target system, or want a status surface that follows operator judgment rather than a measurement, manual metrics are the right shape.
Steps
Create the metric
In the console, navigate to Metrics > New metric. In the Source type picker, choose Manual. The form hides the probe config and threshold sections; manual metrics carry neither.
Fill the title and description; pick the agent association if any (manual metrics ignore the agent at runtime, but the field stays for ownership / audit).
Set the initial status
Save. Open the metric. The detail page shows a clickable status
pill. Pick the right initial status (healthy is the most common).
Bind the metric to a service and (optional) SLO
Manual metrics fit the same service / SLO model as probed metrics. Open the service, define an SLO that points at the manual metric, set a target, and the budget will burn whenever the metric is in the unhealthy state. The machinery is the same as a probed metric.
Hook up automation (optional)
For systems with their own observability, you can drive a manual metric from outside Observer:
curl -X POST https://use.observer/api/v1/metrics/<id>/status \
-H "Authorization: Bearer obs_pub_..." \
-H "Content-Type: application/json" \
-d '{"status":"unhealthy","note":"Vendor incident #VND-12345"}'
The scope write:metrics is required. The note ends up in the
audit log.
Incident-driven status
When an open incident lists a service that contains a manual metric, that metric auto-flips to mirror the incident's severity. This is intentional: manual metrics have no probe, so the only meaningful signal is what the operator says is true. See Manual metrics for the full semantics.