1. Le tagging unifié #
Trois tags pour tout relier.
env, service, version #
Datadog relie métriques, traces, logs et profils d'un même service grâce à trois tags réservés : env, service et version. On les pose une fois, à la source :
# Conteneur Docker
docker run -e DD_ENV=prod -e DD_SERVICE=checkout -e DD_VERSION=2.4.1 \
-l com.datadoghq.tags.env=prod -l com.datadoghq.tags.service=checkout -l com.datadoghq.tags.version=2.4.1 ...
# Pod Kubernetes
metadata:
labels:
tags.datadoghq.com/env: prod
tags.datadoghq.com/service: checkout
tags.datadoghq.com/version: "2.4.1"Bonne Pratique : Avec version, la page d'un service compare automatiquement les déploiements (latence, erreurs) : c'est le suivi des déploiements sans effort.2. Interroger les métriques #
La syntaxe des requêtes.
Requêtes #
avg:system.cpu.user{env:prod,service:checkout} by {host}
sum:trace.http.request.errors{service:checkout}.as_count() / sum:trace.http.request.hits{service:checkout}.as_count()
top(avg:kubernetes.cpu.usage.total{kube_namespace:boutique} by {pod_name}, 10, 'mean', 'desc')
anomalies(avg:aws.elb.latency{env:prod}, 'agile', 2)| Élément | Rôle |
|---|---|
avg:, sum:, max: | Agrégation spatiale (entre séries) |
{...} | Filtre par tags |
by {...} | Regroupement |
.as_count(), .as_rate() | Interprétation des compteurs |
.rollup(avg, 300) | Agrégation temporelle |
3. Métriques personnalisées et coût #
DogStatsD et cardinalité.
DogStatsD #
# Envoyer une métrique en UDP (port 8125 de l'agent)
echo -n "boutique.commandes:1|c|#env:prod,service:checkout,moyen_paiement:carte" | nc -u -w1 localhost 8125
echo -n "boutique.panier.montant:129.9|d|#env:prod,service:checkout" | nc -u -w1 localhost 8125from datadog import initialize, statsd
initialize(statsd_host="localhost", statsd_port=8125)
statsd.increment("boutique.commandes", tags=["moyen_paiement:carte"])
statsd.distribution("boutique.panier.montant", 129.9)Erreur Courante : Chaque combinaison unique de nom et de tags est une métrique personnalisée facturée. Un taguser_idouorder_idpeut créer des centaines de milliers de séries et multiplier la facture.
Maîtriser le coût #
- Lister les métriques personnalisées les plus volumineuses (page Metrics Summary, Usage).
- Utiliser Metrics without Limits pour ne conserver que les tags réellement requêtés.
- Préférer les distributions aux jauges multiples pour les percentiles.
- Ne pas reproduire dans Datadog les métriques Prometheus inutiles (filtrer à la collecte).
