Probe types
Source types the agent supports, with their value semantics and runtime status.
source_type | Value reported | Status |
|---|---|---|
prometheus | scalar from PromQL query | shipped |
http | response_time_ms | shipped |
tcp | connect_time_ms | shipped |
dns | resolve_time_ms | shipped |
tls_cert | days_until_expiry | shipped |
icmp | n/a | stubbed |
grpc | n/a | stubbed |
websocket | n/a | stubbed |
mtls_http | n/a | stubbed |
database | n/a | stubbed |
Shipped runtimes
Each shipped runtime has a dedicated guide:
Stubbed runtimes
The cloud accepts metric definitions for stubbed source types and
stores their source_config. The agent recognises them but
reports not_implemented in the reason field on every probe.
The metric remains in no_data until the runtime ships.
| Source type | Why stubbed |
|---|---|
icmp | Most container runtimes need CAP_NET_RAW to open raw sockets. The TCP probe is a better proxy for "is this host reachable" in cloud-native environments. |
grpc | Adds a @grpc/grpc-js dependency that is not yet justified by validated demand. |
websocket | Same: adds the ws library for a probe with limited validated demand. |
mtls_http | Requires a client-cert secret store. The auth model needs design work before runtime work. |
database | Requires per-driver client libraries and a connection-string secret store. |
Common contract
Every source's runtime exports the same interface:
interface ProbeSource<TConfig> {
validateConfig(config: unknown): null | string;
execute(config: TConfig, env?: AgentEnv): Promise<ProbeResult>;
}
interface ProbeResult {
value: number | null;
timestamp: string;
status_hint?: "no_data";
reason?: string;
metadata?: Record<string, unknown>;
}
Sources never throw. Network errors, malformed config, missing
fields all resolve to { value: null, status_hint: "no_data", reason: "<code>" }. The dispatcher applies the threshold rule
only when status_hint is absent.
Was this page helpful?