RousselTMLEARNING

Observabilité

Métriques et tags dans Datadog : tagging unifié, DogStatsD et cardinalité

Exploiter les métriques Datadog : tagging unifié (env, service, version), requêtes et agrégations, métriques personnalisées avec DogStatsD, et maîtrise de la cardinalité et du coût.

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émentRô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 8125
from 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 tag user_id ou order_id peut 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).

Articles liés

Architecture de la plateforme Datadog : sites, organisations, clés et modèle de données

Comprendre l'architecture de Datadog : sources de données (agent, intégrations cloud, SDK, OpenTelemetry), si…

Datadog sur Kubernetes : Operator, Cluster Agent et Autodiscovery

Superviser Kubernetes avec Datadog : Datadog Operator et ressource DatadogAgent, Cluster Agent, Autodiscovery…

Dashboards et notebooks Datadog : widgets, template variables et bonnes pratiques

Concevoir des dashboards Datadog utiles : types de widgets, template variables, groupes, Powerpacks, formules…

Pour aller plus loin

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !