RousselTMLEARNING

Observabilité

Logs dans Datadog : collecte, pipelines, index et maîtrise du volume

Collecter les logs avec l'agent, les structurer avec pipelines et processeurs (grok), utiliser facettes et requêtes, et maîtriser coûts et rétention avec index, filtres d'exclusion, archives et réhydratation.

1. Collecter #

Agent et sources.

Configuration #

# datadog.yaml
logs_enabled: true

# conf.d/app.d/conf.yaml
logs:
  - type: file
    path: /var/log/app/*.log
    service: checkout
    source: python
    log_processing_rules:
      - type: mask_sequences
        name: masquer_cartes
        pattern: '\b\d{4}[ -]?\d{4}[ -]?\d{4}[ -]?\d{4}\b'
        replace_placeholder: "[CARTE MASQUÉE]"
      - type: exclude_at_match
        name: sans_healthcheck
        pattern: GET /health
Bonne Pratique : Masquer et filtrer dans l'agent évite d'envoyer (et de payer) des données inutiles ou sensibles.

2. Structurer #

Pipelines et facettes.

Pipelines #

Parcours d'un log
Les logs non indexés restent utilisables pour générer des métriques et peuvent être archivés.

Les pipelines transforment les logs à l'ingestion : un grok parser extrait des attributs, des remappers désignent la date, le statut et le service, d'autres processeurs enrichissent (géolocalisation IP, user-agent, tables de correspondance). Les logs de sources connues (nginx, postgres...) ont des pipelines d'intégration prêts.

regle_acces %{ip:network.client.ip} - - \[%{date("dd/MMM/yyyy:HH:mm:ss Z"):date}\] "%{word:http.method} %{notSpace:http.url} HTTP/%{number:http.version}" %{integer:http.status_code} %{integer:network.bytes_written}

Un attribut devient une facette (ou une mesure, pour les nombres) pour être filtré et agrégé dans l'explorateur :

service:checkout status:error @http.status_code:>=500 -@http.url:"/health"
@network.client.ip:10.0.* @duration:>2000000000

3. Maîtriser le volume #

Logging without Limits.

Ingestion, index, archives #

ÉtapeCoûtUsage
IngestionPar GoTous les logs passent par les pipelines
Métriques généréesFaibleCompter erreurs et latences sans indexer
IndexationPar million d'événements, selon la rétentionRecherche rapide
ArchivesStockage objet (le vôtre)Conservation longue, réhydratation à la demande
  • Filtres d'exclusion par index (par exemple : n'indexer que 10 % des logs status:info).
  • Plusieurs index avec des rétentions différentes (erreurs 30 jours, debug 3 jours).
  • Quota journalier par index pour éviter les surprises.
Erreur Courante : Un log exclu de l'index n'est pas perdu s'il est archivé, mais il n'est plus consultable sans réhydratation. Décidez avec les équipes ce qui doit rester cherchable immédiatement.

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