Observer
Observer

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 typeReturnsTypical use
prometheusscalar from a PromQL querylatency / error rate / saturation against existing series
httpresponse time in msreachability + body match against an endpoint (supports mTLS)
tcpconnect time in msreachability for non-HTTP services (Redis, Postgres)
dnsresolve time in msDNS resolution path with optional record-value match
tls_certdays until certificate expiryleaf-cert validity for a hostname
icmplatency ms / packet loss % / reachabilityping a host where TCP is not a good proxy
grpchealth state (1/0) / check latency msstandard gRPC health checking protocol
websockethandshake ms / round-trip ms / connection (0/1)WebSocket endpoint reachability
databasenumeric scalar from a read-only queryrow counts and gauges from Postgres, MySQL, Redis, or MongoDB
otlpaggregated OTLP data point valuepush-mode metrics over OTLP/HTTP
cloudwatchlatest CloudWatch valueAWS metrics pulled via GetMetricData
lokinumeric scalar from a LogQL aggregationlog-derived rates and counts
elasticsearchnumeric scalar from an aggregationdocument counts and aggregations (Elasticsearch / OpenSearch)
customnumeric scalar from a registered probebespoke 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.

Was this page helpful?