Use multiple metric sources
Mix Prometheus, HTTP, TCP, DNS, and TLS certificate probes in one Observer organisation.
Observer's agent supports several probe runtimes within one deployment. Pick the source that produces the most reliable signal for what you want to assert about the system.
Source types
| Source type | Returns | Typical use |
|---|---|---|
prometheus | scalar from a PromQL query | latency / error rate / saturation against existing series |
http | response time in ms | reachability + body match against an endpoint (supports mTLS) |
tcp | connect time in ms | reachability for non-HTTP services (Redis, Postgres) |
dns | resolve time in ms | DNS resolution path with optional record-value match |
tls_cert | days until certificate expiry | leaf-cert validity for a hostname |
icmp | latency ms / packet loss % / reachability | ping a host where TCP is not a good proxy |
grpc | health state (1/0) / check latency ms | standard gRPC health checking protocol |
websocket | handshake ms / round-trip ms / connection (0/1) | WebSocket endpoint reachability |
database | numeric scalar from a read-only query | row counts and gauges from Postgres, MySQL, Redis, or MongoDB |
otlp | aggregated OTLP data point value | push-mode metrics over OTLP/HTTP |
cloudwatch | latest CloudWatch value | AWS metrics pulled via GetMetricData |
loki | numeric scalar from a LogQL aggregation | log-derived rates and counts |
elasticsearch | numeric scalar from an aggregation | document counts and aggregations (Elasticsearch / OpenSearch) |
custom | numeric scalar from a registered probe | bespoke checks running inside the agent |
Every source type listed above is shipped and runs in the agent. A
metric whose status is set through the public API rather than a probe
uses a manual source. (The mtls_http source type is deprecated:
use the http source with its mTLS fields instead.)
Configure a non-Prometheus metric
Open Metrics, then New metric, and pick the source type. Each source has its own configuration form:
- HTTP: URL, expected status code(s), optional body match, optional headers, timeout, follow-redirects, verify-TLS toggle.
- TCP: host, port, timeout.
- DNS: domain, record type (
A,AAAA,CNAME,MX,TXT,NS,SRV,CAA,PTR), optional expected value, optional resolver. - TLS cert: host, port (default
443), warn-days, critical-days.
The thresholds remain consistent: each metric has healthy_* and
unhealthy_* operators applied to whatever value the source
returns.
Mixing sources on one page
A status page can carry metrics from any combination of sources. The page renders each metric using its threshold band, regardless of the runtime that produced the value. Operators viewing the page see one consistent green / amber / red signal across heterogeneous checks.
Agent reach
The agent must be able to reach each source from its host. For Prometheus, that is your internal Prometheus URL. For HTTP probes, the URL must be reachable from wherever the agent runs (for example, an internal endpoint on a private network). The cloud never reaches your endpoints directly: the agent collects, computes status, and pushes the verdict.