Versión de la integración4.0.0

El Datadog Agent recopila muchas métricas de nodos de Consul, incluidas las de:
- Total de pares de Consul
- Estado del servicio: para un servicio determinado, ¿cuántos de sus nodos están activos, en transmisión, en advertencia o en estado crítico?
- Estado del nodo: para un nodo determinado, ¿cuántos de sus servicios están activos, en transmisión, en advertencia o en estado crítico?
- Coordenadas de red: latencias entre centros de datos y dentro de ellos
El Consul Agent puede proporcionar métricas adicionales con DogStatsD. Estas métricas están más relacionadas con el estado interno de Consul en sí, no con los servicios que dependen de Consul. Hay métricas para:
- Eventos serf y flaps de miembros
- Protocolo Raft
- Rendimiento del DNS
Y mucho más.
Por último, además de las métricas, el Datadog Agent también envía un check de servicio para cada uno de los checks de estado de Consul y un evento después de cada nueva elección de líder.
Configuración
Instalación
El check de Consul está incluido en el paquete del Datadog Agent, por lo que no necesitas instalar nada más en tus nodos de Consul.
Configuración
Host
Para configurar este check para un Agent que se ejecuta en un host:
Recopilación de métricas
Edita el archivo consul.d/conf.yaml
en la carpeta conf.d/
en la raíz del directorio de configuración de tu Agent para empezar a recopilar tus métricas de Consul. Para ver todas las opciones disponibles de configuración, consulta el ejemplo consul.d/conf.yaml.
init_config:
instances:
## @param url - string - required
## Where your Consul HTTP server lives,
## point the URL at the leader to get metrics about your Consul cluster.
## Use HTTPS instead of HTTP if your Consul setup is configured to do so.
#
- url: http://localhost:8500
Reinicia el Agent.
OpenMetrics
Opcionalmente, puedes habilitar la opción de configuración use_prometheus_endpoint
para obtener un conjunto adicional de métricas del endpoint de Prometheus para Consul.
Nota: Utiliza el método DogStatsD o Prometheus; no habilites ambos para la misma instancia.
Configura Consul para exponer métricas al endpoint de Prometheus. Establece prometheus_retention_time
anidado bajo la clave telemetry
de nivel superior del archivo de configuración principal de Consul:
{
...
"telemetry": {
"prometheus_retention_time": "360h"
},
...
}
Edita el archivo consul.d/conf.yaml
, en la carpeta conf.d/
en la raíz de tu directorio de configuración del Agent para empezar a usar el endpoint de Prometheus.
instances:
- url: <EXAMPLE>
use_prometheus_endpoint: true
Reinicia el Agent.
DogStatsD
En lugar de utilizar el endpoint de Prometheus, puedes configurar Consul para enviar el mismo conjunto de métricas adicionales al Agent a través de DogStatsD.
Configura Consul para enviar métricas de DogStatsD añadiendo dogstatsd_addr
anidado bajo la clave telemetry
de nivel superior en el archivo de configuración principal de Consul:
{
...
"telemetry": {
"dogstatsd_addr": "127.0.0.1:8125"
},
...
}
Actualiza el archivo de configuración principal del Datadog Agent datadog.yaml
añadiendo las siguientes configuraciones para garantizar que las métricas estén etiquetadas correctamente:
# dogstatsd_mapper_cache_size: 1000 # default to 1000
dogstatsd_mapper_profiles:
- name: consul
prefix: "consul."
mappings:
- match: 'consul\.http\.([a-zA-Z]+)\.(.*)'
match_type: "regex"
name: "consul.http.request"
tags:
method: "$1"
path: "$2"
- match: 'consul\.raft\.replication\.appendEntries\.logs\.([0-9a-f-]+)'
match_type: "regex"
name: "consul.raft.replication.appendEntries.logs"
tags:
peer_id: "$1"
- match: 'consul\.raft\.replication\.appendEntries\.rpc\.([0-9a-f-]+)'
match_type: "regex"
name: "consul.raft.replication.appendEntries.rpc"
tags:
peer_id: "$1"
- match: 'consul\.raft\.replication\.heartbeat\.([0-9a-f-]+)'
match_type: "regex"
name: "consul.raft.replication.heartbeat"
tags:
peer_id: "$1"
Reinicia el Agent.
Recopilación de logs
Disponible para la versión 6.0 o posteriores del Agent
La recopilación de logs se encuentra deshabilitada de manera predeterminada en el Datadog Agent. Habilítala en tu archivo datadog.yaml
con:
Edita este bloque de configuración en tu archivo consul.yaml
para recopilar logs de Consul:
logs:
- type: file
path: /var/log/consul_server.log
source: consul
service: myservice
Cambia los valores de los parámetros path
y service
y configúralos para tu entorno.
Para conocer todas las opciones de configuración disponibles, consulta el consul.d/conf.yaml de ejemplo.
Reinicia el Agent.
Contenedores
Para entornos en contenedores, consulta las plantillas de integración de Autodiscovery para obtener orientación sobre la aplicación de los parámetros que se indican a continuación.
Recopilación de métricas
Parámetro | Valor |
---|
<INTEGRATION_NAME> | consul |
<INIT_CONFIG> | en blanco o {} |
<INSTANCE_CONFIG> | {"url": "https://%%host%%:8500"} |
Recopilación de logs
Disponible para la versión 6.0 o posteriores del Agent
La recopilación de logs se encuentra deshabilitada de manera predeterminada en el Datadog Agent. Para habilitarla, consulta Recopilación de logs de Kubernetes.
Parámetro | Valor |
---|
<LOG_CONFIG> | {"source": "consul", "service": "<SERVICE_NAME>"} |
Validación
Ejecuta el subcomando de estado del Agent y busca consul
en la sección Checks.
Nota: Si tus nodos de Consul tienen habilitado el registro de depuración, el sondeo regular del Datadog Agent se muestra en el log de Consul:
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/status/leader (59.344us) from=127.0.0.1:53768
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/status/peers (62.678us) from=127.0.0.1:53770
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/health/state/any (106.725us) from=127.0.0.1:53772
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/catalog/services (79.657us) from=127.0.0.1:53774
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/health/service/consul (153.917us) from=127.0.0.1:53776
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/coordinate/datacenters (71.778us) from=127.0.0.1:53778
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/coordinate/nodes (84.95us) from=127.0.0.1:53780
Consul Agent a DogStatsD
Usa netstat
para verificar que Consul también esté enviando sus métricas:
$ sudo netstat -nup | grep "127.0.0.1:8125.*ESTABLISHED"
udp 0 0 127.0.0.1:53874 127.0.0.1:8125 ESTABLISHED 23176/consul
Datos recopilados
Métricas
Consulta el documento de telemetría del Consul para obtener una descripción de las métricas que el Consul Agent envía a DogStatsD.
Consulta el documento de coordenadas de red de Consul para obtener detalles sobre cómo se calculan las métricas de latencia de red.
Eventos
consul.new_leader:
El Datadog Agent emite un evento cuando el clúster de Consul elige un nuevo líder y lo etiqueta con prev_consul_leader
, curr_consul_leader
y consul_datacenter
.
Checks de servicio
Solucionar problemas
¿Necesitas ayuda? Ponte en contacto con el soporte de Datadog.
Referencias adicionales
Más enlaces, artículos y documentación útiles: