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
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
Vérifiez si l’Agent Datadog peut accéder à l’endpoint admin d’Envoy.
Redémarrez l’Agent.
Collecte de logs
Disponible à partir des versions > 6.0 de l’Agent
La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans datadog.yaml
:
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
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ètre | Valeur |
---|
<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ètre | Valeur |
---|
<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.