Skip to main content

Metrics reference

This page lists the metrics the agent emits. You need these names in two places: when reading charts, and when writing a custom alert rule in the console, which asks for a metric name.

Naming scheme​

  • host.* for base host metrics, on every platform.
  • svc.<service>.* for service probes. The first segment after svc. is the service name from the matched definition (nginx, mysql, redis, ...).
  • ext.* for external checks run from a collector vantage, and domain expiry.
  • dev.* for SNMP devices polled by a collector.
  • apm.* for zero-touch APM RED metrics.
  • app.* is reserved for your own custom metrics (see Local ingest ports).

Dimensions never go into the name. They ride in tags: the mount point, the site, the port, the container image, the VM name. One metric name covers all entities of its kind, and the tag tells them apart.

Using metrics in alert rules​

A custom alert rule takes a metric name, a comparison (>=, <=, ==), a threshold, a "for" duration the condition must hold, and a severity. Two details worth knowing:

  • % is a wildcard. A rule metric may contain % to span a name segment. The built-in certificate rule watches svc.%.vhost.ssl_days_left, which matches the metric from nginx and Apache alike. Your custom rules can use the same trick.
  • The tag key splits the rule per entity. A rule on host.disk.used_pct with tag key mount opens a separate incident per mount point, not one blurred incident per host. Use the tag listed for the metric below.

A rule also carries a disarm threshold (hysteresis): the incident resolves only when the value crosses back past the disarm value, so a metric hovering at the threshold does not flap.

Host​

Base metrics, every platform, no privilege needed.

MetricTagsUnitWhat it is
host.cpu.used_pct%CPU busy, all cores combined. Inside an LXC container this is the load of the physical cores the container is pinned to, as the container runtime presents them, so neighbours sharing those cores show up in it; host.cpu.pressure_pct is the container's own signal.
host.cpu.coresCores the agent may run on, re-read every cycle (a core taken offline is noticed within a minute; also feeds the energy estimate; the CPU model rides as a host fact).
host.cpu.pressure_pct%Share of time at least one task waited for a CPU (Linux pressure stall information; inside a container, the container's own cgroup).
host.load1 / host.load5 / host.load15Load average (Linux and macOS). Inside a container the agent computes it from the container's own runnable and waiting tasks, sampled every five seconds with the kernel's decay, because the kernel's /proc/loadavg there is the node's.
host.load1_per_core1-minute load divided by cores: the honest saturation signal a busy-percent hides (built-in rule at 4 sustained).
host.mem.total_kbKiBTotal physical memory.
host.mem.available_kbKiBMemory available to applications.
host.mem.used_pct%Memory in use.
host.swap.used_pct%Swap in use (emitted only when swap exists).
host.disk.total_bytesmountbytesFilesystem size, per mount.
host.disk.used_bytesmountbytesUsed space, per mount.
host.disk.used_pctmount%Used space percentage, per mount.
host.disk.readonlymount0/1The mount is read-only: on Linux as the host's init process sees it (a filesystem remounted read-only after errors; EFI partitions that are read-only by design are not judged), on Windows as the volume reports itself.
host.io.read_bytes_per_sec / host.io.write_bytes_per_secbytes/sDisk reads and writes across physical block devices (inside a container, the container's own cgroup accounting).
host.io.pressure_pct%Share of time at least one task waited for disk I/O (pressure stall information; inside a container, the container's own cgroup). Absent where the kernel has pressure accounting switched off.
host.io.busy_pct%Share of time the busiest physical disk was serving requests, from the kernel's per-device counters; the fallback saturation signal where pressure accounting is unavailable.
host.net.rx_bytes_per_sec / host.net.tx_bytes_per_secbytes/sNetwork throughput over physical interfaces (bridges, veth pairs and other virtual interfaces are not summed, so a container host does not count the same bytes twice; inside a container with no physical interface every interface except loopback and bridges counts).
host.uptime_secsSeconds since boot.
host.top.cpu_pctproc%Top processes by CPU (top 5, workers folded by name; only the process name travels, never the command line). Linux and Windows.
host.top.mem_bytesprocbytesTop processes by memory.
host.top.io_bpsprocbytes/sTop processes by disk I/O (read plus write).

Websites (per-site checks)​

Emitted by the vhosts probe of the matched web server, so the service segment is the web server's (svc.nginx.vhost.*, svc.apache.vhost.*). In rules, svc.%.vhost.<name> covers them all. See Websites and domains for how these are measured.

MetricTagsUnitWhat it is
svc.%.vhost.latency_msvhostmsResponse time of the local per-site HTTP check.
svc.%.vhost.ssl_days_leftvhostdaysDays until the site's certificate expires. Negative = already expired.
svc.%.vhost.ssl_trustedvhost0/1Whether the certificate chain verifies. Reported for every name of the block, each from its own TLS handshake.
svc.%.vhost.ssl_name_okvhost0/1Whether the certificate presented for this name lists it. Reported for every name that exists in DNS; the built-in rule folds the zeros into one incident per host.
svc.%.vhost.dns_okvhost0/1Whether the site's domain still resolves (NXDOMAIN = 0). Reported for every name of the block, except an alias under the site's own domain that was never created in DNS.
svc.%.vhost.backend_missingvhost0/1A local backend of the site (PHP socket, proxied port, upstream member) has nothing serving it: every dynamic request would answer 502, found by inspection rather than by waiting for traffic. First name of the block only.
svc.%.vhost.docroot_missingvhost0/1The site's root directory does not exist. First name of the block only.
svc.%.vhost.offloadedvhost0/11 when the domain points away from this host (CDN, proxy, moved).
svc.%.vhost.domain_age_daysvhost (registrable domain)daysAge of the domain registration. A young age on an old site signals a drop-catch.
svc.%.vhost.domain_days_leftvhost (registrable domain)daysDays until the domain registration expires. Negative = registrar grace window.

Web servers (RED from access logs)​

MetricTagsUnitWhat it is
svc.nginx.req_ratereq/sRequest rate from the access log.
svc.nginx.client_error_ratereq/s4xx responses per second.
svc.nginx.server_error_ratereq/s5xx responses per second.
svc.apache.req_rate / .client_error_rate / .server_error_ratereq/sThe same three for Apache.

PHP-FPM pools​

Pool saturation telemetry, read from the kernel and the pool configs with no client config touched. Saturation means a growing backlog (requests queueing on the listen socket), never a high workers-to-limit ratio: a static pool sits at its limit by design.

MetricTagsUnitWhat it is
svc.php-fpm.poolsPools found on the host.
svc.php-fpm.pool.workerspoolLive worker processes of the pool.
svc.php-fpm.pool.blockedpoolWorkers in uninterruptible wait (stuck on IO or a lock).
svc.php-fpm.pool.max_childrenpoolThe pool's configured worker limit.
svc.php-fpm.pool.backlogpoolRequests waiting in the pool's listen queue. The saturation signal.
svc.php-fpm.pool.staticpool0/1Whether the pool is static (prefers all workers by design).

Node.js services​

MetricTagsUnitWhat it is
svc.node.mastersNode master processes found.
svc.node.upunit0/1Per-service state (systemd, pm2, or the Windows SCM).
svc.node.crash_restartsunitcountAutomatic restarts counted by the supervisor.
svc.node.restarts_seenunitcountRestarts detected by process identity change (catches pm2 too).
svc.node.instrumentedunit0..1Share of the service's masters running the spans instrumentation.
svc.node.busy_pct / svc.node.unique_stacksCPU profiler window stats (behind the profiling grant).

An instrumented Node service also reports runtime metrics: the OpenTelemetry nodejs.* and v8js.* families arrive as svc.node.* with dots turned into underscores, tagged unit, times in milliseconds. The ones you will actually use:

MetricTagsUnitWhat it is
svc.node.nodejs_eventloop_delay_mean_msunitmsMean event loop delay: the "Node cannot keep up" signal (built-in rule at 100 ms).
svc.node.nodejs_eventloop_delay_p99_msunitmsThe p99 of the same.
svc.node.nodejs_eventloop_utilizationunitratioShare of time the loop is busy.
svc.node.v8js_gc_durationunitmsAverage GC pause.
svc.node.v8js_memory_heap_usedunitbytesHeap in use.

Databases and caches​

MetricTagsUnitWhat it is
svc.mysql.unit_active0/1+Whether the MySQL or MariaDB unit is active (survives a dead server process, so the down rule can fire).
svc.mysql.connectionsConnected threads.
svc.mysql.max_connectionsThe server's connection limit.
svc.mysql.connections_used_pct%Connections against the limit: the saturation signal (built-in rule at 85%).
svc.mysql.runningActively running threads.
svc.mysql.threadsServer threads (status header).
svc.mysql.aborted_connects / .aborted_connects_per_mincount, /minFailed connection attempts, cumulative and per minute (derived on the host).
svc.mysql.slow_queries / .slow_queries_per_mincount, /minSlow queries, cumulative and per minute.
svc.mysql.slow_rateq/sSlow-log entries per second (from the real slow-log path).
svc.mysql.qpsq/sQueries per second average.
svc.mysql.innodb_row_lock_waits / .innodb_row_lock_waits_per_mincount, /minInnoDB row lock waits, cumulative and per minute.
svc.mysql.bytes_sentbytesBytes sent (cumulative).
svc.mysql.uptimesServer uptime.
svc.postgres.connectionsBackends across databases.
svc.postgres.commits / .rollbackscountTransactions (cumulative).
svc.postgres.commits_rate / .rollbacks_per_min/s, /minCommits per second and rollbacks per minute, derived on the host.
svc.postgres.blks_hit / .blks_readcountBuffer cache hits versus disk reads (cumulative).
svc.postgres.blks_read_rate/sDisk block reads per second.
svc.postgres.deadlocks / .deadlocks_per_mincount, /minDeadlocks, cumulative and per minute (the built-in rule watches the rate).
svc.redis.connected_clientsConnected clients.
svc.redis.used_memorybytesMemory used by Redis.
svc.redis.maxmemorybytesThe configured memory limit (0 when unlimited).
svc.redis.memory_used_pct%Memory against the limit; only exists where a limit is set, so the rule arms honestly.
svc.redis.mem_fragmentation_ratioratioFragmentation ratio.
svc.redis.total_commands_processedcountCommands processed (cumulative).
svc.redis.keyspace_hits / .keyspace_missescountKey lookups (cumulative).
svc.redis.keyspace_misses_per_min/minMisses per minute, derived on the host.
svc.redis.evicted_keys / .evicted_keys_per_mincount, /minKeys evicted under memory pressure, cumulative and per minute.
svc.redis.rejected_connections / .rejected_connections_per_mincount, /minConnections rejected at maxclients, cumulative and per minute.
svc.redis.uptimesServer uptime.
svc.mongo.connections / .connections_availableCurrent and available connections.
svc.mongo.opcounters_insert / .opcounters_query / .opcounters_update / .opcounters_deletecountOperations (cumulative).
svc.mongo.insert_rate / .query_rate / .update_rate / .delete_rate/sOperations per second, derived on the host.
svc.mongo.mem_resident_mbMBResident memory.
svc.mongo.uptimesServer uptime.
svc.mssql.connections / .user_sessionsConnections and user sessions.
svc.mssql.blocked_requestsRequests blocked by another session.
svc.mssql.databases / .databases_offlineDatabases total and not online.
svc.mssql.batch_requestscountBatch requests counter.
svc.mssql.page_life_expectancysBuffer page life expectancy.
svc.elasticsearch.nodes / .data_nodesCluster nodes.
svc.elasticsearch.active_shards / .unassigned_shards / .relocating_shardsShard states.
svc.elasticsearch.shard_health_pct%Active shards percentage.
svc.elasticsearch.status_red / .status_yellow0/1Cluster status flags; red means a primary shard is missing and drives the built-in rule.
svc.elasticsearch.pending_tasksPending cluster tasks.
svc.elasticsearch.docs / .store_bytesDocuments and store size of the probed index.
svc.clickhouse.unit_active0/1Whether the ClickHouse unit is active.
svc.clickhouse.running_queriesQueries in flight.
svc.clickhouse.tcp_connections / .http_connectionsClient connections by interface.
svc.clickhouse.memory_bytesbytesTracked memory use.
svc.clickhouse.max_parts_per_partitionWorst part count per partition: merge health.
svc.clickhouse.replica_max_delay_secsWorst replica lag (0 without replication).
svc.clickhouse.databases / .tablesObject counts.
svc.clickhouse.rows_total / .bytes_totalMergeTree totals.
svc.clickhouse.uptime_secsServer uptime.

A named MSSQL instance matched by its own definition emits the same set under its service name (for example svc.mssql-express.*).

Mail​

MetricTagsUnitWhat it is
svc.postfix.queue_requests / .queue_kbytesMail queue depth and size.
svc.postfix.sent_rate / .deferred_rate / .bounced_ratemsg/sDelivery outcomes from the mail log.
svc.dovecot.login_rate/sIMAP logins per second.
svc.dovecot.auth_fail_rate/sFailed authentications per second.
svc.exim.queueQueued messages.
svc.pmg.day_total / .day_in / .day_outmsgsProxmox Mail Gateway daily counts.
svc.pmg.day_spam_in / .day_virus_in / .day_bounces_inmsgsDaily spam, virus, bounce counts.
svc.pmg.day_rbl_rejects / .day_greylistmsgsRBL rejects and greylisted.
svc.pmg.avg_process_secsAverage processing time.

DNS​

MetricTagsUnitWhat it is
svc.bind.recursive_clients / .tcp_clientsClient counts from rndc status.
svc.bind.query_rateq/sQueries per second from the query log (real path from the config).
svc.unbound.queries / .cache_hits / .cache_misscountTotals (cumulative).
svc.unbound.query_rate / .cache_hit_rate / .cache_miss_rateq/sThe same per second, derived on the host.
svc.unbound.cache_hit_pct%Cache hits as a share of hits plus misses.
svc.unbound.recursion_time_avgsAverage recursion time.
svc.unbound.requestlist_avgAverage request list length.
svc.unbound.requestlist_exceeded / .requestlist_exceeded_per_mincount, /minQueries dropped because the request list was full, cumulative and per minute.
svc.powerdns.udp_queries / .udp_answers / .tcp_queries / .tcp_answerscountQuery and answer totals per transport (cumulative).
svc.powerdns.query_rateq/sUDP queries per second, derived on the agent.
svc.powerdns.servfail_packets / .corrupt_packets / .timedout_packets / .overload_dropscountFailure totals (cumulative).
svc.powerdns.servfail_rate / .corrupt_rate / .timedout_rate / .overload_drop_rate/minThe same failures per minute, derived on the agent.
svc.powerdns.servfail_pct%SERVFAIL answers as a share of all queries (the built-in rule watches this, not the count).
svc.powerdns.query_cache_hit / .query_cache_misscountQuery cache hits and misses.
svc.powerdns.packetcache_hit / .packetcache_misscountPacket cache hits and misses.
svc.powerdns.qsize_qQueries waiting in the backend queue.
svc.powerdns.open_tcp_connectionsOpen TCP connections.
svc.powerdns.latency_ususAverage time a packet spends inside PowerDNS.
svc.powerdns.uptime_secsDaemon uptime.

Queues and brokers​

MetricTagsUnitWhat it is
svc.rabbitmq.messages / .messages_readyQueue depth totals.
svc.rabbitmq.publish_total / .publish_ratecount, /sPublished messages, cumulative and per second.
svc.kafka.brokersLive brokers.
svc.kafka.partitionstopicPartitions per topic.
svc.kafka.current_offsettopic, partitionLatest offset.
svc.kafka.consumer_lagconsumergroup, topicConsumer group lag.
svc.kafka.under_replicatedtopicUnder-replicated partitions.
svc.nats.connections / .total_connectionsCurrent and total connections.
svc.nats.total_connections_per_min/minNew connections per minute (the reconnect-storm signal; the monitoring probe itself accounts for about one).
svc.nats.subscriptionsActive subscriptions.
svc.nats.slow_consumers / .slow_consumers_per_mincount, /minSlow consumers, cumulative and per minute.
svc.nats.in_msgs / .out_msgscountMessage totals (cumulative).
svc.nats.in_msgs_rate / .out_msgs_ratemsg/sMessages in and out per second.
svc.nats.mem_bytesbytesServer memory.

Load balancers and proxies​

MetricTagsUnitWhat it is
svc.haproxy.current_connections / .conn_rateCurrent connections and connection rate.
svc.haproxy.uptimesProcess uptime.
svc.haproxy.backends_up / .backends_totalBackends up versus configured.
svc.haproxy.servers_up / .servers_totalReal servers up versus configured.
svc.haproxy.proxy.upproxy, kind0/1Backend health.
svc.haproxy.proxy.sessions / .proxy.sessions_totalproxy, kindSessions per frontend or backend.
svc.haproxy.proxy.hrsp_5xx_totalproxy, kindcount5xx answered through the proxy (cumulative).
svc.haproxy.proxy.conn_errors_totalproxy, kindcountBackend connection errors (cumulative).
svc.haproxy.proxy.active_serversproxy, kindActive servers in the backend.
svc.haproxy.server.upproxy, server0/1Per-server health.
svc.haproxy.server.sessionsproxy, serverPer-server sessions.
svc.haproxy.server.hrsp_5xx_totalproxy, servercountPer-server 5xx (cumulative).
svc.varnish.uptimesProcess uptime.
svc.varnish.sessions / .client_reqcountSessions and client requests (cumulative).
svc.varnish.cache_hit / .cache_misscountCache outcomes (cumulative).
svc.varnish.backend_fail / .backend_unhealthycountBackend trouble (cumulative).
svc.varnish.threadsWorker threads.
svc.traefik.http_routers / .http_servicesConfigured routers and services.
svc.keepalived.active0/11 when this node actually holds the VIP (de-facto master).
svc.keepalived.vips_heldHow many of the configured VIPs this node holds.
svc.keepalived.priorityConfigured VRRP priority.

Virtualization and containers​

MetricTagsUnitWhat it is
svc.proxmox.vms / .vms_runningQEMU VMs total and running.
svc.proxmox.cts / .cts_runningLXC containers total and running.
svc.proxmox.guest.runningvmid, name, type0/1Per-guest state.
svc.proxmox.guest.cpu_pct / .guest.mem_pct / .guest.mem_bytesvmid, name, typePer-guest usage (running guests).
svc.proxmox.guest.disk_pctvmid, name, type%Per-guest disk usage where reported.
svc.proxmox.guest.uptimevmid, name, typesPer-guest uptime.
svc.proxmox.storage.used_pctstorage%Per-storage usage (this node's view; a built-in rule fires at 90%).
svc.proxmox.storages_active / .storages_totalStorage states.
svc.proxmox.cluster.quorate0/1Whether this node sees cluster quorum (exists only on cluster members).
svc.proxmox.cluster.nodes / .cluster.nodes_onlineCluster members total and online, as this node sees them.
svc.proxmox.cluster.node.onlinenode0/1Per-member liveness from this node's view.
svc.proxmox.cluster.corosync_active0/1Cluster membership daemon state; emitted only where a cluster exists, so single nodes never false-alarm.
svc.corosync.unit_active0/1The corosync service itself, where monitored as its own service.
svc.libvirt.domains / .runningDefined and running domains.
svc.libvirt.guest.runningdomain0/1Per-domain state.
svc.libvirt.guest.vcpus / .guest.mem_bytes / .guest.cpu_time_nsdomainPer-domain resources.
svc.libvirt.storage.capacity_bytes / .storage.used_bytes / .storage.used_pctstorageStorage pools.
svc.hyperv.domains / .runningHyper-V VMs total and running.
svc.hyperv.guest.runningvm0/1Per-VM state.
svc.hyperv.guest.vcpus / .guest.mem_bytes / .guest.uptime_secvmPer-VM resources.
svc.docker.containers / .containers_runningContainers total and running.
svc.docker.servicesImage groups (the billing unit).
svc.docker.group.containers / .group.runningimagePer-group counts.
svc.docker.group.cpu_pct / .group.mem_bytesimagePer-group usage.
svc.docker.group.net_rx_total / .group.net_tx_totalimagebytesPer-group network (cumulative).
svc.docker.group.blkio_read_total / .group.blkio_write_totalimagebytesPer-group block IO (cumulative).
svc.docker.group.restartsimagecountRestarts across the group (cumulative).
svc.docker.group.restarts_1himageRestarts in the last hour: the crash-loop signal a threshold can actually judge.
svc.docker.group.unhealthyimageUnhealthy containers (only for groups with healthchecks).

Replicated storage (DRBD, LINSTOR)​

Per-resource and per-connection replication health. The link tag names a resource-to-peer pair; transient backup-snapshot resources are skipped at the source, so nightly dumps never masquerade as replication trouble.

MetricTagsUnitWhat it is
svc.drbd.resourcesDRBD resources on this node.
svc.drbd.resource.primary / .resource.suspendedres0/1Per-resource role and suspension.
svc.drbd.resource.replicas_uptodateresUp-to-date replicas of the resource.
svc.drbd.device.uptodate / .device.quorumres0/1Local device state and quorum.
svc.drbd.connection.establishedlink0/1Whether the replication link is up.
svc.drbd.connection.flaps_hourlinkLink state changes in the last hour (computed at the source).
svc.drbd.peer.oos_kib / .peer.oos_lingering_kiblinkKiBOut-of-sync data, and out-of-sync that lingers on an established link.
svc.drbd.peer.resync_percent / .peer.eta_seclinkResync progress and estimate.
svc.drbd.peer.resync_stalledlink0/1A resync that stopped making progress.
svc.linstor.node.onlinenode0/1Satellite liveness as the controller sees it.
svc.linstor.netif.on_defaultnode0/1Whether a node's traffic rides its default interface (0 = stuck on a failsafe path).
svc.linstor.pool.free_pctpool%Free space per storage pool per node.
svc.linstor.error_reports_hourNew controller error reports in the last hour.
svc.linstor.stale_snapshotsBackup snapshots older than a day that should have been cleaned up.

Kubernetes​

See Kubernetes for how these are collected.

MetricTagsUnitWhat it is
svc.k8s.nodes / .nodes_readyNodes total and ready.
svc.k8s.nodes_ready_pct%Ready nodes as a percentage (computed at the source so one number drives the rule).
svc.k8s.podsPods total.
svc.k8s.pods_running / .pods_pending / .pods_failed / .pods_crashloopPod phase split.
svc.k8s.restarts_totalcountContainer restarts across the cluster.
svc.k8s.namespacesNamespaces.
svc.k8s.ns.pods / .ns.cpu_millicores / .ns.mem_bytesnamespacePer-namespace usage.
svc.k8s.pod.cpu_millicores / .pod.mem_bytesnamespace, podTop pods by CPU.

Windows​

MetricTagsUnitWhat it is
svc.iis.sites / .sites_startedIIS sites total and started.
svc.iis.sites_started_pct / .pools_started_pct%Started share, computed at the source.
svc.iis.pools / .pools_startedApp pools total and started.
svc.iis.worker_processesRunning w3wp processes.
svc.iis.site.startedsite0/1Per-site state.
svc.iis.pool.startedpool0/1Per-pool state.
svc.windows.errors / .warnings / .eventschannelcountEvent Log entries in the window, per channel (System, Application).

MSSQL metrics are in the databases table above.

OS health and security​

MetricTagsUnitWhat it is
svc.os.updates_pendingcountPending package updates (apt, dnf, dnf5, zypper, apk).
svc.os.security_updatescountPending security updates.
svc.os.cves_pendingcountCVE and package pairs pending (RHEL family, local data).
svc.os.security_critical / .security_important / .security_moderate / .security_lowcountSeverity split where the distribution publishes it.
svc.os.security_noticescountSecurity notices (dnf5).
svc.os.reboot.exists0/1Reboot required flag (/var/run/reboot-required).
svc.ssh.auth_fail_rate/sFailed SSH logins per second (brute-force signal).
svc.ssh.accepted_rate/sAccepted SSH logins per second.
svc.ssh.root_login_rate/sAccepted logins for root per second.
svc.ssh.root_login_permitted0/1Root can log in with a password in the configuration sshd actually runs with (sshd -T, or the parsed sshd_config before the first connection on a socket-activated host): PermitRootLogin yes together with PasswordAuthentication or keyboard-interactive authentication on. Key-only root reads 0.
svc.ssh.password_auth_on0/1PasswordAuthentication is yes in the effective configuration, read the same way.
svc.systemd.failed_unitscountFailed systemd units.
svc.systemd.degraded0/1System state degraded.
svc.systemd.oom_kills_rate/sKernel OOM kills per second.
svc.cis.score%Hardening scan: share of CIS-subset checks passed.
svc.cis.pass / svc.cis.failcountHardening checks passed and failed; the failed ones ride an event with severities.
svc.cron.runs_rate / .error_rate/sCron job runs and cron's own errors from the journal.
svc.cron.job_failed_rate/sJobs that exited non-zero: a client job failing is its own signal, separate from cron being broken.
svc.vsftpd.login_rate / .login_fail_rate/sFTP logins and failures.
svc.vsftpd.upload_rate / .download_rate/sFTP transfers per second.
svc.pure-ftpd.sessionsLive FTP sessions.
svc.pure-ftpd.login_rate / .login_fail_rate/sPure-FTPd logins and failures (a failure spike is the FTP brute-force signal).
svc.pure-ftpd.upload_rate / .download_rate/sTransfers per second.

Backups​

The file probe pattern is svc.<service>.<probe>.exists (0/1) and svc.<service>.<probe>.age_sec (seconds since the newest write). The stock backup definitions produce:

MetricUnitWhat it is
svc.backup.artifact.age_secsAge of the artifact at your configured backup.path.
svc.backup.artifact.exists0/1Whether the path exists.
svc.borg.repo.age_secsAge of the newest write in the borg repository.
svc.restic.repo.age_secsAge of the newest write in the restic repository.

APM​

RED metrics from the zero-touch layer (see APM):

MetricTagsUnitWhat it is
apm.http.req_rateportreq/sHTTP requests per second on the watched port.
apm.http.error_rate / .client_error_rateportreq/s5xx and 4xx per second.
apm.http.p50_ms / .p95_ms / .max_msportmsRequest latency percentiles and max.
apm.backend.call_ratecomponentcalls/sOutbound calls to a downstream (db, cache, ext).
apm.backend.p50_ms / .p95_ms / .max_mscomponentmsDownstream round-trip latency.

Instrumentation state and the profiler:

MetricTagsUnitWhat it is
svc.apm-php.instrumentedphp0/1Whether spans instrumentation is active, per PHP minor.
svc.apm-dotnet.instrumented0/1Whether the .NET instrumentation is active.
svc.apm-profile.busy_pct%Share of profiler samples that were on-CPU.
svc.apm-profile.unique_stacksDistinct folded stacks in the window.
svc.apm-profile.owner_pctowner%CPU share per owner (plugin:X, theme:X, wp-core, app) in the last window.
svc.apm-profile.owner_samplesownercountRaw sample counts per owner (sums correctly over time windows).

Traces, profiles and RUM beacons are not metrics; they flow through their own pipelines.

External checks​

From a collector host you designate (the ext probe), plus domain expiry:

MetricTagsUnitWhat it is
ext.<service>.upurl0/1Check verdict (status under 500 and body matched, when configured).
ext.<service>.latency_msurlmsTotal request time.
ext.<service>.statusurlHTTP status code.
ext.<service>.dns_ms / .connect_ms / .tls_ms / .ttfb_msurlmsPhase timings.
ext.<service>.ssl_days_left / .ssl_trustedurlCertificate days left and chain trust, from the external vantage.
ext.<service>.body_matchurl0/1Whether the expected body pattern matched.
ext.domain.days_leftdomaindaysDays until the domain registration expires (RDAP, WHOIS fallback).
ext.domain.age_daysdomaindaysAge of the domain registration.

Synthetics​

Outside-in probes of your public sites, measured by Wakora's points of presence rather than by the agent (see Availability). They ride the normal metric stream, so rules can reference them like anything else.

MetricTagsUnitWhat it is
ext.web.upsite, pop0/1Whether the site answered from that vantage.
ext.web.statussite, popHTTP status seen from that vantage.
ext.web.latency_mssite, popmsResponse time from that vantage.
ext.txn.upflow, pop0/1Whether the whole transaction flow passed from that vantage.
ext.txn.duration_msflow, popmsTotal flow duration.
ext.txn.steps_okflow, popHow many steps passed before the flow ended.
ext.txn.step_msflow, pop, stepmsPer-step timing for the steps that passed.

SNMP devices​

Every dev.* point carries the device tag (the polled target). Walks add a per-row tag from the device's own labels (interface name, sensor name). See SNMP and network.

MetricTagsUnitWhat it is
dev.sys.uptimedeviceticksDevice uptime.
dev.if.oper_statusdevice, interface labelInterface operational status (1 = up).
dev.if.in_octets / .out_octetsdevice, interface labelbytesTraffic counters (cumulative).
dev.if.in_errors / .out_errorsdevice, interface labelcountError counters (cumulative).
dev.if.in_errors_per_min / .out_errors_per_mindevice, interface label/minErrors per minute per port, derived on the collector.
dev.if.link_lostdevice, port0/1A port that used to carry a link went dark while administratively up; never-used ports do not count, and an admin shutdown resets the memory.
dev.ups.charge_pctdevice%UPS battery charge.
dev.ups.battery_status / .output_sourcedeviceenumUPS states (UPS-MIB values).
dev.ups.seconds_on_battery / .minutes_remainingdeviceRuntime on battery and estimate remaining.
dev.ups.battery_voltage_dv / .battery_temp_cdeviceBattery voltage (tenths of volts) and temperature.
dev.ups.output_load_pctdevice%Output load.
dev.sensor.valuedevice, sensor, typevariesAny ENTITY-SENSOR-MIB sensor: celsius, voltsDC, amperes, watts, rpm, dBm.
dev.sensor.okdevice, sensor0/1Sensor operational status.
dev.poe.ports_deliveringdevicePoE ports currently delivering power.
dev.poe.consumption_wattsdeviceWTotal PoE power draw.
dev.poe.detection_status / .admin / .class / .prioritydevice, portPer-port PoE state.
dev.vendor.<vendor>.*devicevariesVendor OID bundles (for example APC battery and load, MikroTik voltage and temperature).
dev.traps.received_total / .dropped_totalcountTraps accepted and rejected by the listener.
dev.syslog.rate / .severe_rate/sSyslog lines per second, and err-or-worse lines.
dev.syslog.dropped_totalcountSyslog lines dropped by the allow filter.
dev.scan.responders / .scannedrangeSubnet scan results (candidates found versus addresses probed).
dev.flow.bytes_per_secdeviceB/sFlow-reported traffic rate per exporter (NetFlow/IPFIX).
dev.flow.flows_per_secdevice/sFlow records per second per exporter.
dev.flow.dropped_totalcountFlow packets dropped by the exporter allow list or an unknown template.

Custom application metrics​

Anything your own apps POST to the local ingest port lands under app.* with the tags you send, subject to namespace, cardinality and size limits. See Local ingest ports.