consul_exporter

Exporter for Consul metrics

Github星跟蹤圖

Consul Exporter

CircleCI
Docker Repository on Quay
Docker Pulls

Export Consul service health to Prometheus.

To run it:

make
./consul_exporter [flags]

Exported Metrics, Metric, Meaning, Labels, ------, -------, ------, consul_up, Was the last query of Consul successful, consul_raft_peers, How many peers (servers) are in the Raft cluster, consul_serf_lan_members, How many members are in the cluster, consul_serf_lan_member_status, Status of member in the cluster. 1=Alive, 2=Leaving, 3=Left, 4=Failed., member, consul_catalog_services, How many services are in the cluster, consul_catalog_service_node_healthy, Is this service healthy on this node, service, node, consul_health_node_status, Status of health checks associated with a node, check, node, status, consul_health_service_status, Status of health checks associated with a service, check, node, service, status, consul_catalog_kv, The values for selected keys in Consul's key/value catalog. Keys with non-numeric values are omitted, key, ### Flags

./consul_exporter --help
  • consul.allow_stale: Allows any Consul server (non-leader) to service
    a read.
  • consul.ca-file: File path to a PEM-encoded certificate authority used to
    validate the authenticity of a server certificate.
  • consul.cert-file: File path to a PEM-encoded certificate used with the
    private key to verify the exporter's authenticity.
  • consul.health-summary: Collects information about each registered
    service and exports consul_catalog_service_node_healthy. This requires n+1
    Consul API queries to gather all information about each service. Health check
    information are available via consul_health_service_status as well, but
    only for services which have a health check configured. Defaults to true.
  • consul.key-file: File path to a PEM-encoded private key used with the
    certificate to verify the exporter's authenticity.
  • consul.require_consistent: Forces the read to be fully consistent.
  • consul.server: Address (host and port) of the Consul instance we should
    connect to. This could be a local agent (localhost:8500, for instance), or
    the address of a Consul server.
  • consul.server-name: When provided, this overrides the hostname for the
    TLS certificate. It can be used to ensure that the certificate name matches
    the hostname we declare.
  • consul.timeout: Timeout on HTTP requests to consul.
  • log.format: Set the log target and format. Example: logger:syslog?appname=bob&local=7
    or logger:stdout?json=true
  • log.level: Logging level. info by default.
  • version: Show application version.
  • web.listen-address: Address to listen on for web interface and telemetry.
  • web.telemetry-path: Path under which to expose metrics.

Key/Value Checks

This exporter supports grabbing key/value pairs from Consul's KV store and
exposing them to Prometheus. This can be useful, for instance, if you use
Consul KV to store your intended cluster size, and want to graph that value
against the actual value found via monitoring.

  • kv.filter: Only store keys that match this regex pattern.
  • kv.prefix: Prefix under which to look for KV pairs.

A prefix must be supplied to activate this feature. Pass / if you want to
search the entire keyspace.

Environment variables

The consul_exporter supports all environment variables provided by the official
consul/api package,
including CONSUL_HTTP_TOKEN to set the ACL token.

Useful Queries

Are my services healthy?

min(consul_catalog_service_node_healthy) by (service_name)

Values of 1 mean that all nodes for the service are passing. Values of 0 mean at least one node for the service is not passing.

What service nodes are failing?

sum by (node, service_name)(consul_catalog_service_node_healthy == 0)

What service checks are critical?

consul_health_service_status{status="critical"} == 1

You can query for the following health check states: "maintenance", "critical", "warning" or "passing"

Using Docker

You can deploy this exporter using the prom/consul-exporter Docker image.

For example:

docker pull prom/consul-exporter

docker run -d -p 9107:9107 prom/consul-exporter --consul.server=172.17.0.1:8500

Keep in mind that your container needs to be able to communicate with the Consul server or agent. Use an IP accessible from the container or set the --dns and --dns-search options of the docker run command:

docker run -d -p 9107:9107 --dns=172.17.0.1 --dns-search=service.consul \
        prom/consul-exporter --consul.server=consul:8500

主要指標

概覽
名稱與所有者prometheus/consul_exporter
主編程語言Go
編程語言Makefile (語言數: 3)
平台
許可證Apache License 2.0
所有者活动
創建於2015-03-18 17:42:22
推送於2025-05-18 09:13:00
最后一次提交2025-05-18 11:11:28
發布數15
最新版本名稱v0.13.0 (發布於 2024-11-06 14:31:57)
第一版名稱0.1.0 (發布於 )
用户参与
星數451
關注者數21
派生數166
提交數354
已啟用問題?
問題數91
打開的問題數30
拉請求數187
打開的拉請求數5
關閉的拉請求數78
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?