Envoy

Supported OS Linux Mac OS Windows

Intégration2.1.0

Présentation

Ce check recueille les métriques d’observation système distribuées d’Envoy.

Configuration

Installation

Le check Envoy est inclus avec le package de l’Agent Datadog : vous n’avez donc rien d’autre à installer sur votre serveur.

Istio

Si vous utilisez Envoy avec Istio, configurez l’intégration Envoy afin de recueillir des métriques à partir de l’endpoint de métriques proxy Istio.

instances:
  - openmetrics_endpoint: localhost:15090/stats/prometheus

Standard

Il existe deux façons de configurer l’endpoint /stats :

Endpoint stats non sécurisé

Voici un exemple de configuration de l’interface d’administration Envoy :

admin:
  access_log_path: "/dev/null"
  address:
    socket_address:
      address: 0.0.0.0
      port_value: 8001
Endpoint stats sécurisé

Créez un écouteur/vhost qui redirige vers l’endpoint administrateur (Envoy se connecte à lui-même), mais qui ne comporte qu’une route pour /stats ; les autres routes génèrent une réponse statique ou une erreur. Cela permet également de réaliser une intégration adéquate aux filtres L3 pour l’authentification, par exemple.

L’exemple de configuration suivant provient de envoy_secured_stats_config.json :

admin:
  access_log_path: /dev/null
  address:
    socket_address:
      protocol: TCP
      address: 127.0.0.1
      port_value: 8081
static_resources:
  listeners:
    - address:
        socket_address:
          protocol: TCP
          address: 0.0.0.0
          port_value: 80
      filter_chains:
        - filters:
            - name: envoy.http_connection_manager
              config:
                codec_type: AUTO
                stat_prefix: ingress_http
                route_config:
                  virtual_hosts:
                    - name: backend
                      domains:
                        - "*"
                      routes:
                        - match:
                            prefix: /stats
                          route:
                            cluster: service_stats
                http_filters:
                  - name: envoy.router
                    config:
  clusters:
    - name: service_stats
      connect_timeout: 0.250s
      type: LOGICAL_DNS
      lb_policy: ROUND_ROBIN
      hosts:
        - socket_address:
            protocol: TCP
            address: 127.0.0.1
            port_value: 8001

Procédure à suivre

Host

Pour configurer ce check lorsque l’Agent est exécuté sur un host :

Collecte de métriques
  1. Modifiez le fichier envoy.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent pour commencer à recueillir vos données de performance Envoy. Consultez le fichier d’exemple envoy.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

    init_config:
    
    instances:
        ## @param openmetrics_endpoint - string - required
        ## The URL exposing metrics in the OpenMetrics format.
        #
      - openmetrics_endpoint: http://localhost:8001/stats/prometheus
    
  2. Vérifiez si l’Agent Datadog peut accéder à l’endpoint admin d’Envoy.

  3. Redémarrez l’Agent.

Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

  1. La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans datadog.yaml :

    logs_enabled: true
    
  2. Modifiez ensuite envoy.d/conf.yaml en supprimant la mise en commentaire des lignes logs en bas du fichier. Mettez à jour la ligne path en indiquant le bon chemin vers vos fichiers de log Envoy.

    logs:
      - type: file
        path: /var/log/envoy.log
        source: envoy
        service: envoy
    
  3. Redémarrez l’Agent.

Environnement conteneurisé

Consultez la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer les paramètres ci-dessous à un environnement conteneurisé.

Collecte de métriques
ParamètreValeur
<NOM_INTÉGRATION>envoy
<CONFIG_INIT>vide ou {}
<CONFIG_INSTANCE>{"openmetrics_endpoint": "http://%%host%%:80/stats/prometheus"}
Remarque : la version actuelle du check (1.26.0+) utilise OpenMetrics pour la collecte de métriques, ce qui nécessite Python 3. Pour les hosts ne pouvant pas utiliser Python 3, ou si vous souhaitez utiliser une ancienne version de ce check, consultez cette configuration.
Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

La collecte des logs est désactivée par défaut dans l’Agent Datadog. Pour l’activer, consultez la section Collecte de logs Kubernetes.

ParamètreValeur
<CONFIG_LOG>{"source": "envoy", "service": "<NOM_SERVICE>"}

Validation

Lancez la sous-commande status de l’Agent et cherchez envoy dans la section Checks.

Données collectées

Métriques

Consultez metrics.py pour y découvrir la liste des tags envoyés par chaque métrique.

Événements

Le check Envoy n’inclut aucun événement.

Checks de service

Dépannage

Problèmes courants

Impossible d’atteindre l’endpoint /server_info

  • Si l’endpoint n’est pas disponible dans votre environnement Envoy, désactivez l’option collect_server_info dans votre configuration Envoy afin de réduire le volume des logs d’erreur.

Remarque : aucune donnée sur la version d’Envoy n’est recueillie.

Besoin d’aide ? Contactez l’assistance Datadog.

PREVIEWING: may/embedded-workflows