Información general

El check de TCP RTT informa sobre los tiempos de ida y vuelta entre el host del Agent y cualquier host con el que se esté comunicando. Este check es pasivo y sólo informa sobre los tiempos RTT de los paquetes que se envían y reciben desde fuera del check. El propio check no envía ningún paquete.

Este check sólo se entrega con los paquetes DEB y RPM de 64 bits del Datadog Agent v5. Para otras versiones del Agent, consulta el uso de Datadog/go-metro para obtener instrucciones sobre cómo compilar el binario go-metro.

Configuración

Instalación

El check utiliza las marcas de tiempo proporcionadas por la biblioteca PCAP para calcular el tiempo transcurrido entre cualquier paquete saliente y el acuse de recibo TCP correspondiente. La biblioteca PCAP debe estar instalada y configurada.

Los sistemas basados en Debian deben utilizar una de las siguientes opciones:

$ sudo apt-get install libcap
$ sudo apt-get install libcap2-bin

Los sistemas basados en Redhat deben utilizar una de las siguientes opciones:

$ sudo yum install libcap
$ sudo yum install compat-libcap1

Por último, configura PCAP:

$ sudo setcap cap_net_raw+ep /opt/datadog-agent/bin/go-metro

Configuración

Edita el archivo go-metro.d/conf.yaml, que se encuentra en la carpeta conf.d/ en la raíz del directorio de configuración de tu Agent. Para conocer todas las opciones de configuración disponibles, consulta el go-metro.d/conf.yaml de ejemplo:

El siguiente ejemplo recupera los tiempos RTT TCP para app.datadoghq.com y 192.168.0.22:

init_config:
    snaplen: 512
    idle_ttl: 300
    exp_ttl: 60
    statsd_ip: 127.0.0.1
    statsd_port: 8125
    log_to_file: true
    log_level: info

instances:
    - interface: eth0
      tags:
          - env:prod
      ips:
          - 45.33.125.153
      hosts:
          - app.datadoghq.com

Validación

Para confirmar que el check se está ejecutando correctamente, deberías ver métricassystem.net.tcp.rtt en la interfaz de Datadog. Además, si ejecutas sudo /etc/init.d/datadog-agent status, deberías ver algo similar a lo siguiente:

datadog-agent.service - "Datadog Agent"
  Loaded: loaded (/lib/...datadog-agent.service; enabled; vendor preset: enabled)
  Active: active (running) since Thu 2016-03-31 20:35:27 UTC; 42min ago
 Process: 10016 ExecStop=/opt/.../supervisorctl -c /etc/dd-....conf shutdown (code=exited, status=0/SUCCESS)
 Process: 10021 ExecStart=/opt/.../start_agent.sh (code=exited, status=0/SUCCESS)
Main PID: 10025 (supervisord)
  CGroup: /system.slice/datadog-agent.service
          ├─10025 /opt/datadog-...python /opt/datadog-agent/bin/supervisord -c /etc/dd-agent/supervisor.conf
          ├─10043 /opt/datadog-...python /opt/datadog-agent/agent/dogstatsd.py --use-local-forwarder
          ├─10044 /opt/datadog-agent/bin/go-metro -cfg=/etc/dd-agent/conf.d/go-metro.yaml
          ├─10046 /opt/datadog-.../python /opt/datadog-agent/agent/ddagent.py
          └─10047 /opt/datadog-.../python /opt/datadog-agent/agent/agent.py foreground --use-local-forwarder

Si el check de TCP RTT se ha iniciado, deberías ver algo similar a la línea go-metro anterior.

Se trata de un check pasivo, por lo que no se informan métricas, a menos que se envíen paquetes activamente a los hosts mencionados en el archivo yaml.

Datos recopilados

Métricas

system.net.tcp.rtt
(gauge)
The TCP round trip time.
Shown as millisecond
system.net.tcp.rtt.avg
(gauge)
The average TCP round trip time as typically computed by the TCP stack.
Shown as millisecond
system.net.tcp.rtt.jitter
(gauge)
The TCP round trip time jitter.
Shown as millisecond