Consul integration metrics

The official Datadog integration for monitoring Consul. It collects 152 metrics.

Official summary

Alert on Consul health checks, see service-to-node mappings, and much more.

Metric types

  • gauge (value at a point in time): 101
  • count (occurrences in the interval): 51

Metrics

Descriptions are the official definitions, unedited.

MetricTypeUnit
consul.catalog.nodes_critical[Integration] The number of nodes with service status critical from those registeredgaugenode
consul.catalog.nodes_passing[Integration] The number of nodes with service status passing from those registeredgaugenode
consul.catalog.nodes_up[Integration] The number of nodesgaugenode
consul.catalog.nodes_warning[Integration] The number of nodes with service status warning from those registeredgaugenode
consul.catalog.services_count[Integration] Metrics to count the number of services matching criteria like the service tag, node name, or status. To be queried using the sum by aggregator.gaugeservice
consul.catalog.services_critical[Integration] Total critical services on nodesgaugeservice
consul.catalog.services_passing[Integration] Total passing services on nodesgaugeservice
consul.catalog.services_up[Integration] Total services registered on nodesgaugeservice
consul.catalog.services_warning[Integration] Total warning services on nodesgaugeservice
consul.catalog.total_nodes[Integration] The number of nodes registered in the consul clustergaugenode
consul.check.upA metric representing the status of a service check. A value of 0 = unavailable, 1 = passing, 2 = warning, 3 = criticalgauge-
consul.client.rpc[DogStatsD] [Prometheus] This increments whenever a Consul agent in client mode makes an RPC request to a Consul server. This gives a measure of how much a given agent is loading the Consul servers. This is only generated by agents in client mode, not Consul servers.countrequest
consul.client.rpc.failed[DogStatsD] [Prometheus] Increments whenever a Consul agent in client mode makes an RPC request to a Consul server and failscountrequest
consul.http.request[DogStatsD] Tracks how long it takes to service the given HTTP request for the given verb and path. Using a DogStatsD mapper as described in the README, the paths are mapped to tags and do not include details like service or key names. For these paths, an underscore is present as a placeholder, for example: http_method:GET, path:v1.kv._)gaugemillisecond
consul.http.request.count[Prometheus] A count of how long it takes to service the given HTTP request for the given verb and path. It includes labels for path and method. Path does not include details like service or key names. For these paths, an underscore is present as a placeholder, for example: path=v1.kv._)countmillisecond
consul.http.request.quantile[Prometheus] A quantile of how long it takes to service the given HTTP request for the given verb and path. Includes labels for path and method. Path does not include details like service or key names. For these paths, an underscore is present as a placeholder, for example: path=v1.kv._)gaugemillisecond
consul.http.request.sum[Prometheus] The sum of how long it takes to service the given HTTP request for the given verb and path. Includes labels for path and method. Path does not include details like service or key names. For these paths, an underscore is present as a placeholder, for example: path=v1.kv._)countmillisecond
consul.memberlist.degraded.probe[DogStatsD] [Prometheus] This metric counts the number of times the Consul agent has performed failure detection on another agent at a slower probe rate. The agent uses its own health metric as an indicator to perform this action. If its health score is low, it means that the node is healthy, and vice versa.gauge-
consul.memberlist.gossip.95percentile[DogStatsD] The p95 for the number of gossips (messages) broadcasted to a set of randomly selected nodes.gaugemessage
consul.memberlist.gossip.avg[DogStatsD] The avg for the number of gossips (messages) broadcasted to a set of randomly selected nodes.gaugemessage
consul.memberlist.gossip.count[DogStatsD] [Prometheus] The number of samples of consul.memberlist.gossipcount-
consul.memberlist.gossip.max[DogStatsD] The max for the number of gossips (messages) broadcasted to a set of randomly selected nodes.gaugemessage
consul.memberlist.gossip.median[DogStatsD] The median for the number of gossips (messages) broadcasted to a set of randomly selected nodes.gaugemessage
consul.memberlist.gossip.quantile[Prometheus] The quantile for the number of gossips (messages) broadcasted to a set of randomly selected nodes.gaugemessage
consul.memberlist.gossip.sum[DogStatsD] [Prometheus] The sum of the number of gossips (messages) broadcasted to a set of randomly selected nodes.countmessage
consul.memberlist.health.score[DogStatsD] [Prometheus] This metric describes a node's perception of its own health based on how well it is meeting the soft real-time requirements of the protocol. This metric ranges from 0 to 8, where 0 indicates "totally healthy". For more details see section IV of the Lifeguard paper: https://arxiv.org/pdf/1707.00788.pdfgauge-
consul.memberlist.msg.alive[DogStatsD] [Prometheus] This metric counts the number of alive Consul agents, that the agent has mapped out so far, based on the message information given by the network layer.count-
consul.memberlist.msg.dead[DogStatsD] [Prometheus] This metric counts the number of times a Consul agent has marked another agent to be a dead node.countmessage
consul.memberlist.msg.suspect[DogStatsD] [Prometheus] The number of times a Consul agent suspects another as failed while probing during gossip protocolcount-
consul.memberlist.probenode.95percentile[DogStatsD] The p95 for the time taken to perform a single round of failure detection on a select Consul agent.gaugenode
consul.memberlist.probenode.avg[DogStatsD] The avg for the time taken to perform a single round of failure detection on a select Consul agent.gaugenode
consul.memberlist.probenode.count[DogStatsD] [Prometheus] The number of samples of consul.memberlist.probenodecount-
consul.memberlist.probenode.max[DogStatsD] The max for the time taken to perform a single round of failure detection on a select Consul agent.gaugenode
consul.memberlist.probenode.median[DogStatsD] The median for the time taken to perform a single round of failure detection on a select Consul agent.gaugenode
consul.memberlist.probenode.quantile[Prometheus] The quantile for the time taken to perform a single round of failure detection on a select Consul agent.gaugenode
consul.memberlist.probenode.sum[DogStatsD] [Prometheus] The sum for the time taken to perform a single round of failure detection on a select Consul agent.countnode
consul.memberlist.pushpullnode.95percentile[DogStatsD] The p95 for the number of Consul agents that have exchanged state with this agent.gaugenode
consul.memberlist.pushpullnode.avg[DogStatsD] The avg for the number of Consul agents that have exchanged state with this agent.gaugenode
consul.memberlist.pushpullnode.count[DogStatsD] [Prometheus] The number of samples of consul.memberlist.pushpullnodecount-
consul.memberlist.pushpullnode.max[DogStatsD] The max for the number of Consul agents that have exchanged state with this agent.gaugenode
consul.memberlist.pushpullnode.median[DogStatsD] The median for the number of Consul agents that have exchanged state with this agent.gaugenode
consul.memberlist.pushpullnode.quantile[Prometheus] The quantile for the number of Consul agents that have exchanged state with this agent.gauge-
consul.memberlist.pushpullnode.sum[DogStatsD] [Prometheus] The sum for the number of Consul agents that have exchanged state with this agent.count-
consul.memberlist.tcp.accept[DogStatsD] [Prometheus] This metric counts the number of times a Consul agent has accepted an incoming TCP stream connection.countconnection
consul.memberlist.tcp.connect[DogStatsD] [Prometheus] This metric counts the number of times a Consul agent has initiated a push/pull sync with an other agent.countconnection
consul.memberlist.tcp.sent[DogStatsD] [Prometheus] This metric measures the total number of bytes sent by a Consul agent through the TCP protocolcountbyte
consul.memberlist.udp.received[DogStatsD] [Prometheus] This metric measures the total number of bytes sent/received by a Consul agent through the UDP protocol.countbyte
consul.memberlist.udp.sent[DogStatsD] [Prometheus] This metric measures the total number of bytes sent/received by a Consul agent through the UDP protocol.countbyte
consul.net.node.latency.max[Integration] Maximum latency from this node to all othersgaugemillisecond
consul.net.node.latency.median[Integration] Median latency from this node to all othersgaugemillisecond
consul.net.node.latency.min[Integration] Minimum latency from this node to all othersgaugemillisecond
consul.net.node.latency.p25[Integration] P25 latency from this node to all othersgaugemillisecond
consul.net.node.latency.p75[Integration] P75 latency from this node to all othersgaugemillisecond
consul.net.node.latency.p90[Integration] P90 latency from this node to all othersgaugemillisecond
consul.net.node.latency.p95[Integration] P95 latency from this node to all othersgaugemillisecond
consul.net.node.latency.p99[Integration] P99 latency from this node to all othersgaugemillisecond
consul.peers[Integration] The number of peers in the peer setgauge-
consul.raft.apply[DogStatsD] [Prometheus] The number of raft transactions occurringcounttransaction
consul.raft.commitTime.95percentile[DogStatsD] The p95 time it takes to commit a new entry to the raft log on the leadergaugemillisecond
consul.raft.commitTime.avg[DogStatsD] The average time it takes to commit a new entry to the raft log on the leadergaugemillisecond
consul.raft.commitTime.count[DogStatsD] [Prometheus] The number of samples of raft.commitTimecount-
consul.raft.commitTime.max[DogStatsD] The max time it takes to commit a new entry to the raft log on the leadergaugemillisecond
consul.raft.commitTime.median[DogStatsD] The median time it takes to commit a new entry to the raft log on the leadergaugemillisecond
consul.raft.commitTime.quantile[Prometheus] The quantile time it takes to commit a new entry to the raft log on the leadergaugemillisecond
consul.raft.commitTime.sum[DogStatsD] [Prometheus] The sum of the time it takes to commit a new entry to the raft log on the leadercountmillisecond
consul.raft.leader.dispatchLog.95percentile[DogStatsD] The p95 time it takes for the leader to write log entries to diskgaugemillisecond
consul.raft.leader.dispatchLog.avg[DogStatsD] The average time it takes for the leader to write log entries to diskgaugemillisecond
consul.raft.leader.dispatchLog.count[DogStatsD] [Prometheus] The number of samples of raft.leader.dispatchLogcount-
consul.raft.leader.dispatchLog.max[DogStatsD] The max time it takes for the leader to write log entries to diskgaugemillisecond
consul.raft.leader.dispatchLog.median[DogStatsD] The median time it takes for the leader to write log entries to diskgaugemillisecond
consul.raft.leader.dispatchLog.quantile[Prometheus] The quantile time it takes for the leader to write log entries to diskgaugemillisecond
consul.raft.leader.dispatchLog.sum[DogStatsD] [Prometheus] The sum of the time it takes for the leader to write log entries to diskcountmillisecond
consul.raft.leader.lastContact.95percentile[DogStatsD] The p95 time elapsed since the leader was last able to check its lease with followersgaugemillisecond
consul.raft.leader.lastContact.avg[DogStatsD] The average time elapsed since the leader was last able to check its lease with followersgaugemillisecond
consul.raft.leader.lastContact.count[DogStatsD] [Prometheus] The number of samples of raft.leader.lastContactcount-
consul.raft.leader.lastContact.max[DogStatsD] The max time elapsed since the leader was last able to check its lease with followersgaugemillisecond
consul.raft.leader.lastContact.median[DogStatsD] The median time elapsed since the leader was last able to check its lease with followersgaugemillisecond
consul.raft.leader.lastContact.quantile[Prometheus] The quantile time elapsed since the leader was last able to check its lease with followersgaugemillisecond
consul.raft.leader.lastContact.sum[DogStatsD] [Prometheus] The sum of the time elapsed since the leader was last able to check its lease with followerscountmillisecond
consul.raft.replication.appendEntries.logs[DogStatsD] [Prometheus] Measures the number of logs replicated to an agent, to bring it up to speed with the leader's logs.countentry
consul.raft.replication.appendEntries.rpc.count[DogStatsD] [Prometheus] The count the time taken by the append entries RFC to replicate the log entries of a leader agent onto its follower agent(s)countmillisecond
consul.raft.replication.appendEntries.rpc.quantile[Prometheus] The quantile of the time taken by the append entries RFC to replicate the log entries of a leader agent onto its follower agent(s)gaugemillisecond
consul.raft.replication.appendEntries.rpc.sum[DogStatsD] [Prometheus] The sum the time taken by the append entries RFC to replicate the log entries of a leader agent onto its follower agent(s)countmillisecond
consul.raft.replication.heartbeat.count[DogStatsD] [Prometheus] The count the time taken to invoke appendEntries on a peer.countmillisecond
consul.raft.replication.heartbeat.quantile[Prometheus] The quantile of the time taken to invoke appendEntries on a peer.gaugemillisecond
consul.raft.replication.heartbeat.sum[DogStatsD] [Prometheus] The sum of the time taken to invoke appendEntries on a peer.countmillisecond
consul.raft.state.candidate[DogStatsD] [Prometheus]The number of initiated leader electionscountevent
consul.raft.state.leader[DogStatsD] [Prometheus] The number of completed leader electionscountevent
consul.runtime.gc_pause_ns.95percentile[DogStatsD] The p95 for the number of nanoseconds consumed by stop-the-world garbage collection (GC) pauses since Consul started.gaugenanosecond
consul.runtime.gc_pause_ns.avg[DogStatsD] The avg for the number of nanoseconds consumed by stop-the-world garbage collection (GC) pauses since Consul started.gaugenanosecond
consul.runtime.gc_pause_ns.count[DogStatsD] [Prometheus] The number of samples of consul.runtime.gc_pause_nscount-
consul.runtime.gc_pause_ns.max[DogStatsD] The max for the number of nanoseconds consumed by stop-the-world garbage collection (GC) pauses since Consul started.gaugenanosecond
consul.runtime.gc_pause_ns.median[DogStatsD] The median for the number of nanoseconds consumed by stop-the-world garbage collection (GC) pauses since Consul started.gaugenanosecond
consul.runtime.gc_pause_ns.quantile[Prometheus] The quantile of nanoseconds consumed by stop-the-world garbage collection (GC) pauses since Consul started.gaugenanosecond
consul.runtime.gc_pause_ns.sum[DogStatsD] [Prometheus] The sum of nanoseconds consumed by stop-the-world garbage collection (GC) pauses since Consul started.countnanosecond
consul.serf.coordinate.adjustment_ms.95percentile[DogStatsD] The p95 in milliseconds for the node coordinate adjustmentgaugemillisecond
consul.serf.coordinate.adjustment_ms.avg[DogStatsD] The avg in milliseconds for the node coordinate adjustmentgaugemillisecond
consul.serf.coordinate.adjustment_ms.count[DogStatsD] [Prometheus] The number of samples of consul.serf.coordinate.adjustment_mscount-
consul.serf.coordinate.adjustment_ms.max[DogStatsD] The max in milliseconds for the node coordinate adjustmentgaugemillisecond
consul.serf.coordinate.adjustment_ms.median[DogStatsD] The median in milliseconds for the node coordinate adjustmentgaugemillisecond
consul.serf.coordinate.adjustment_ms.quantile[Prometheus] The quantile in milliseconds for the node coordinate adjustmentgaugemillisecond
consul.serf.coordinate.adjustment_ms.sum[DogStatsD] [Prometheus] The sum in milliseconds for the node coordinate adjustmentcountmillisecond
consul.serf.events[DogStatsD] [Prometheus] This increments when a Consul agent processes a serf eventcountevent
consul.serf.member.failed[DogStatsD] [Prometheus] This increments when a Consul agent is marked dead. This can be an indicator of overloaded agents, network problems, or configuration errors where agents cannot connect to each other on the required ports.count-
consul.serf.member.flap[DogStatsD] [Prometheus] The number of times a Consul agent is marked dead and then quickly recoverscount-
consul.serf.member.join[DogStatsD] [Prometheus] This increments when a Consul agent processes a join eventcountevent
consul.serf.member.left[DogStatsD] [Prometheus] This increments when a Consul agent leaves the cluster.count-
consul.serf.member.update[DogStatsD] [Prometheus] This increments when a Consul agent updates.count-
consul.serf.msgs.received.95percentile[DogStatsD] The p95 for the number of serf messages receivedgaugemessage
consul.serf.msgs.received.avg[DogStatsD] The avg for the number of serf messages receivedgaugemessage
consul.serf.msgs.received.count[DogStatsD] [Prometheus] The count of serf messages receivedcount-
consul.serf.msgs.received.max[DogStatsD] The max for the number of serf messages receivedgaugemessage
consul.serf.msgs.received.median[DogStatsD] The median for the number of serf messages receivedgaugemessage
consul.serf.msgs.received.quantile[Prometheus] The quantile for the number of serf messages receivedgaugemessage
consul.serf.msgs.received.sum[DogStatsD] [Prometheus] The sum for the number of serf messages receivedcountmessage
consul.serf.msgs.sent.95percentile[DogStatsD] The p95 for the number of serf messages sentgaugemessage
consul.serf.msgs.sent.avg[DogStatsD] The avg for the number of serf messages sentgaugemessage
consul.serf.msgs.sent.count[DogStatsD] [Prometheus] The count of serf messages sentcount-
consul.serf.msgs.sent.max[DogStatsD] The max for the number of serf messages sentgaugemessage
consul.serf.msgs.sent.median[DogStatsD] The median for the number of serf messages sentgaugemessage
consul.serf.msgs.sent.quantile[Prometheus] The quantile for the number of serf messages sentgaugemessage
consul.serf.msgs.sent.sum[DogStatsD] [Prometheus] The sum of the number of serf messages sentcountmessage
consul.serf.queue.event.95percentile[DogStatsD] The p95 for the size of the serf event queuegauge-
consul.serf.queue.event.avg[DogStatsD] The avg size of the serf event queuegauge-
consul.serf.queue.event.count[DogStatsD] [Prometheus] The number of items in the serf event queuecount-
consul.serf.queue.event.max[DogStatsD] The max size of the serf event queuegauge-
consul.serf.queue.event.median[DogStatsD] The median size of the serf event queuegauge-
consul.serf.queue.event.quantile[Prometheus] The quantile for the size of the serf event queuegauge-
consul.serf.queue.intent.95percentile[DogStatsD] The p95 for the size of the serf intent queuegauge-
consul.serf.queue.intent.avg[DogStatsD] The avg size of the serf intent queuegauge-
consul.serf.queue.intent.count[DogStatsD] [Prometheus] The number of items in the serf intent queuecount-
consul.serf.queue.intent.max[DogStatsD] The max size of the serf intent queuegauge-
consul.serf.queue.intent.median[DogStatsD] The median size of the serf intent queuegauge-
consul.serf.queue.intent.quantile[Prometheus] The quantile for the size of the serf intent queuegauge-
consul.serf.queue.query.95percentile[DogStatsD] The p95 for the size of the serf query queuegauge-
consul.serf.queue.query.avg[DogStatsD] The avg size of the serf query queuegauge-
consul.serf.queue.query.count[DogStatsD] [Prometheus] The number of items in the serf query queuecount-
consul.serf.queue.query.max[DogStatsD] The max size of the serf query queuegauge-
consul.serf.queue.query.median[DogStatsD] The median size of the serf query queuegauge-
consul.serf.queue.query.quantile[Prometheus] The quantile for the size of the serf query queuegauge-
consul.serf.snapshot.appendline.95percentile[DogStatsD] The p95 of the time taken by the Consul agent to append an entry into the existing log.gaugemillisecond
consul.serf.snapshot.appendline.avg[DogStatsD] The avg of the time taken by the Consul agent to append an entry into the existing log.gaugemillisecond
consul.serf.snapshot.appendline.count[DogStatsD] [Prometheus] The number of samples of consul.serf.snapshot.appendlinecount-
consul.serf.snapshot.appendline.max[DogStatsD] The max of the time taken by the Consul agent to append an entry into the existing log.gaugemillisecond
consul.serf.snapshot.appendline.median[DogStatsD] The median of the time taken by the Consul agent to append an entry into the existing log.gaugemillisecond
consul.serf.snapshot.appendline.quantile[Prometheus] The quantile of the time taken by the Consul agent to append an entry into the existing log.gaugemillisecond
consul.serf.snapshot.compact.95percentile[DogStatsD] The p95 of the time taken by the Consul agent to compact a log. This operation occurs only when the snapshot becomes large enough to justify the compaction .gaugemillisecond
consul.serf.snapshot.compact.avg[DogStatsD] The avg of the time taken by the Consul agent to compact a log. This operation occurs only when the snapshot becomes large enough to justify the compaction .gaugemillisecond
consul.serf.snapshot.compact.count[DogStatsD] [Prometheus] The number of samples of consul.serf.snapshot.compactcount-
consul.serf.snapshot.compact.max[DogStatsD] The max of the time taken by the Consul agent to compact a log. This operation occurs only when the snapshot becomes large enough to justify the compaction .gaugemillisecond
consul.serf.snapshot.compact.median[DogStatsD] The median of the time taken by the Consul agent to compact a log. This operation occurs only when the snapshot becomes large enough to justify the compaction .gaugemillisecond
consul.serf.snapshot.compact.quantile[Prometheus] The quantile of the time taken by the Consul agent to compact a log. This operation occurs only when the snapshot becomes large enough to justify the compaction .gaugemillisecond

Official documentation

Official documentation for the Consul integration

Metric names and descriptions are the official Datadog integration definitions (Copyright Datadog, Inc., BSD-3-Clause), reproduced unedited. The full license terms are on the About page.