Go-Metro

Supported OS Linux

Présentation

Le check TCP RTT transmet les durées d’aller-retour entre le host sur lequel l’Agent s’exécute et tout host avec lequel il communique. Ce check est passif et ne transmet que les durées RTT pour les paquets envoyés et reçus à l’extérieur du check. Le check n’envoie aucun paquet.

Ce check est uniquement fourni avec les packages 64 bits DEB et RPM de l’Agent v5 de Datadog. Il n’est pas disponible pour l’Agent v6 de Datadog.

Configuration

Suivez les instructions ci-dessous pour installer et configurer ce check lorsque l’Agent est exécuté sur un host. Consultez la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer ces instructions à un environnement conteneurisé.

Installation

Le check TCP RTT, également désigné par le terme go-metro, est fourni avec l’Agent, mais nécessite des bibliothèques système supplémentaires. Le check utilise les timestamps fournis par la bibliothèque PCAP pour calculer l’intervalle de temps entre tout paquet sortant et l’accusé de réception TCP correspondant. De ce fait, PCAP doit être installé et configuré.

Les systèmes basés sur Debian doivent utiliser l’une des commandes suivantes :

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

Les systèmes basés sur Redhat doivent utiliser l’une des commandes suivantes :

sudo yum install libcap
sudo yum install compat-libcap1

Enfin, configurez PCAP :

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

Configuration

Modifiez le fichier go-metro.yaml dans le répertoire conf.d de votre Agent. Consultez le fichier d’exemple go-metro.yaml pour découvrir toutes les options de configuration disponibles. Voici un exemple de fichier qui affiche les durées TCP RTT pour app.datadoghq.com et 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

Remarque : pour que go-metro s’exécute sans privilèges, vous devez définir les capacités CAP_NET_RAW sur le binaire.

# Installer les bibliothèques requises
$ sudo apt-get install libcap  # debian
$ sudo apt-get install libcap2-bin  # autre bibliothèque debian
$ sudo yum install libcap  # redhat
$ sudo yum install compat-libcap1  # autre bibliothèque redhat

# Définir les capacités
$ sudo setcap cap_net_raw+ep /opt/datadog-agent/bin/go-metro

Étant donné que les noms des packages varient selon les distributions, si les instructions ci-dessus ne fonctionnent pas dans votre environnement, exécutez apt-cache search libcap ou yum search libcap pour afficher une sélection des packages qui fournissent le binaire. Contactez l’assistance Datadog si vous avez besoin d’aide.

Remarque : go-metro enregistre ses entrées dans son propre fichier de log, qui se trouve à l’emplacement /var/log/datadog/go-metro.log. De plus, go-metro s’exécute indépendamment. Il ne s’affiche donc pas sur la page d’informations de l’Agent.

Enfin, puisque le binaire go-metro est seulement inclus avec les distributions RPM et DEB 64 bits de l’Agent Datadog, il est uniquement disponible pour ces versions, et non pour les versions installées depuis les sources ou les packages 32 bits.

Validation

Pour vérifier que le check fonctionne correctement, assurez-vous que les métriques system.net.tcp.rtt s’affichent dans l’interface Datadog. En outre, si vous lancez la sous-commande status de l’Agent, vous devriez obtenir une sortie similaire à ce qui suit :

 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 le check TCP RTT a démarré, une ligne go-metro similaire à celle ci-dessus doit s’afficher :

Il s’agit d’un check passif. Ainsi, les métriques sont uniquement transmises si des paquets sont activement envoyés aux hosts mentionnés dans le fichier yaml.

Données collectées

Métriques

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

Événements

Le check Go-metro n’inclut aucun événement.

Checks de service

Le check Go-metro n’inclut aucun check de service.

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.