01 / 11

The Art of
Log Sampling

Optimiser l'ingestion de logs pour une observabilité intelligente

OBSERVABILITÉ · BEST PRACTICES · 2026

02 / 11

Le Problème

95%
des logs sont du bruit
+47%
croissance annuelle du volume de logs
Ingestion brute = impossible à écheller sans stratégie de sampling
03 / 11

Pourquoi le Sampling?

💰

Coût

Réduire le volume ingéré sans perdre les données critiques = réduction directe des coûts infrastructure

Performance

Moins de logs = ingestion plus rapide, requêtes plus réactives, dashboards fluides

🎯

Signal-to-Noise

Maximiser la détection d'incidents en priorisant les logs pertinents

Le sampling n'est pas un compromis — c'est un multiplicateur d'efficacité
04 / 11

Méthodes de Sampling

Méthode Principe Forces Faiblesses
Random Échantillon aléatoire uniforme (ex: 10%) Simple, prévisible, faible overhead Perd les erreurs rares
Priority-Based Logs critiques toujours conservés Garantit la couverture des incidents Configuration manuelle requise
Adaptive Ratio dynamique selon le contexte Optimisé automatiquement, x100 couverture erreurs Complexité de mise en œuvre
Head/Tail Échantillonner début ou fin de requête Préserve le contexte de trace Pas adapté aux logs distribués
05 / 11

Adaptive Sampling en Détail

✅ 99.9% → OK
1% sampled
Logs normaux fortement échantillonnés
❌ 0.1% → ERROR
100% sampled
Toutes les erreurs capturées intégralement
⚠️ Timeout / Retry
50% sampled
Contexte intermédiaire préservé
Ingestion 1M logs/s
Sampler Decision Node
OK → 1% = 10K/s ERROR → 100% = 1K/s WARN → 50% = 500/s
Sortie ~11K/s (vs 1M = 99%↓)
x100 de couverture des erreurs pour x10 de coût en moins
06 / 11

Best Practices — Stratégie

01
Erreurs à 100%
Toujours conserver tous les logs ERROR, FATAL, EXCEPTION — jamais les échantillonner
02
Classifier par criticité
Définir des niveaux: CRITICAL → ALWAYS, HIGH → 50%, MEDIUM → 10%, LOW → 1%
03
Échantillonnage hiérarchique
Trace → Span → Log: garder la corrélation à chaque niveau du pipeline
04
Always Include Rules
Erreurs, timeouts, événements de sécurité, logs avec trace_id non-null
05
Always Drop Rules
Health checks, heartbeats, logs de debug en production, requêtes statiques
06
Écarter par environnement
Prod: sampling agressif. Dev/Staging: ratio plus élevé pour le debug
07 / 11

Best Practices — Implémentation

Fluent Bit — sampling config
[FILTER]
    Name              sampler
    Match             *.
    # Adaptive sampling
    Sampling          adaptive
    # Ratio par défaut
    Default_Rate      0.01
    # Boost sur erreurs
    Error_Rate        1.0
    # Buffer anti-spike
    Buffer_Size       5000
    Buffer_Flush      60
    # Trace correlation
    Preserve_Trace    true
    Trace_Sampling    0.1
Ratio dynamique par environnement (prod ≠ dev)
Trace-correlated sampling (garde le lien trace ID)
Buffering pour éviter le drop en spike
Monitoring du taux de sampling en temps réel
08 / 11

Métriques de Validation

Coverage Rate
99.7%
% d'erreurs capturées par le sampler
Cost per Event
$0.0004
$/million de logs ingérés (vs $4.20 avant)
False Negative Rate
0.03%
Erreurs manquées (objectif < 0.1%)
Retention par Niveau
FATAL:100% · ERR:100% · WARN:50%
Distribution du taux de conservation
09 / 11

Anti-Patterns à Éviter

Sampling aléatoire sans priorisation
Tu perds les erreurs rares — le sampling uniforme est le pire choix pour l'observabilité
Drop des health checks sans filtre
Tout drop aveugle crée du bruit — filtrer par pattern, pas par volume
Même ratio partout (prod ≠ dev)
La prod a besoin d'agressivité, le dev a besoin de visibilité — adapte par environnement
Sampling sans trace correlation
Sans trace ID, le debugging distribué devient impossible — garde toujours le lien
Ignorer les piques de trafic
Drop agressif au pire moment = tu rates les erreurs pendant les incidents
10 / 11

Chiffres & ROI

Avant Sampling
$42,000/mois
1.2M logs/s ingérés · 100% retention
Après Sampling Adaptatif
$4,200/mois
11K logs/s ingérés · 100% erreurs · 99%↓ coût
ROI: 10x d'économie avec 100% de couverture des erreurs — le sampling paye pour lui-même
11 / 11

Récapitulatif

📋 5 Règles d'Or

1 Erreurs toujours à 100% — jamais d'échantillonnage
2 Classifier par criticité: CRITICAL → LOW
3 Adaptive sampling = meilleur rapport coût/qualité
4 Toujours garder la trace correlation
5 Adapter par environnement (prod ≠ dev)

🚀 Prochaines Étapes

Auditer le taux de sampling actuel par environnement
Implémenter l'adaptive sampling sur le pipeline principal
Mettre en place les KPIs de monitoring
A/B test: ratio actuel vs adaptive sur 2 semaines
Review des coûts avant/après + ajustement

Le sampling intelligent transforme l'observabilité d'un coût en un multiplicateur de valeur

The Art of Log Sampling · 2026