$30 off During Our Annual Pro Sale. View Details »

Comment OpenTelemetry peut transformer votre monitoring en unifiant vos logs/metrics/traces

Comment OpenTelemetry peut transformer votre monitoring en unifiant vos logs/metrics/traces

Vincent Behar

April 22, 2022
Tweet

Other Decks in Technology

Transcript

  1. Comment OpenTelemetry peut transformer votre monitoring en unifiant vos logs/metrics/traces

    Vincent Behar
  2. 2 Senior Engineer Vincent Behar https://twitter.com/vbehar Twitter French video game

    company Ubisoft https://github.com/vbehar GitHub ABOUT ME
  3. 3 AGENDA 1. Le problème 2. OpenTelemetry 3. OpenTelemetry @Ubisoft

    4. Génération automatique de metrics/logs 5. Stratégies de déploiement
  4. 4 Evènements « brut » LOGS • Plusieurs librairies ?

    • Sortie ? Stdout / fichier / … • Format ? JSON / texte • Logs structurés ? • Noms des labels ? • ELK / EFK
  5. 5 Aggrégations METRICS • Nommage ? • Unités ? •

    Labels ? • Relation avec les logs ? • Prometheus / Grafana
  6. 6 Visibilité en profondeur TRACES • Hiérarchie de spans •

    Durée, attributs, logs, … • Environment distribué • Services graph • Noms des attributs ? • Relation avec les logs et metrics ? • Jaeger
  7. 7 Les 3 pilliers… LE PROBLEME Silos • 1 source

    (application) • Plusieurs chemins • Plusieurs destinations • Pas de vision unifiée • Duplication • Connaissances & compétences • Temps d’intervention • …
  8. 8 NOTRE OBJECTIF Vision unifiée • Une seule UI •

    Correlation • Evolutive
  9. 9 DEMO

  10. 10 OPENTELEMETRY Open source • 2019 • OpenTracing • OpenCensus

    • CNCF Contributeurs • Amazon, Google, Microsoft, RedHat, … • Lightstep, Splunk, Dynatrace, Grafana, Honeycomb, New Relic, Datadog, Elastic, …
  11. 11 CONTRIBUTIONS AUX PROJETS CNCF EN 2021

  12. 12 Specifications • Traces: stable • Metrics: stable • Logs:

    stable • Semantic Conventions • Propagation • Protocol (OTLP) • … Implementations • APIs • SDKs • Support de librairies • 11 languages • Instrumentation automatique en Java et Python Collecteur • Interopérabilité • Ecrit in Go • OpenCensus Service • « killer feature » OPENTELEMETRY
  13. 13 Composants • 50+ récepteurs • 40+ exporteurs • 20+

    processeurs • 10+ extensions • Comp. personnalisés • Distributions Collecte, traitement et publication – de manière intéropérable OPENTELEMETRY COLLECTOR Pipelines • 1 ou plusieurs par type
  14. 14 Entrées / Sorties OPENTELEMETRY COLLECTOR @ UBISOFT

  15. 15 INSTRUMENTATION Triple instrumentation: logs, metrics & traces

  16. 16 INSTRUMENTATION Instrumentation avec correlation manuelle

  17. 17 Metric requetes{path=/toto} 42 Log { "timestamp": "…", "msg": "requête",

    "utilisateur": "alain", "path": "/toto", "code": "200" } Span • Operation: « requête » • Heure début / fin • Attributs • Utilisateur: alain • Path: /toto • Code: 200 • Logs • Heure • Message • Attributs RESULTAT DE L’INSTRUMENTATION
  18. 18 Et si on générait les logs et metrics à

    partir des traces ?
  19. 19 DEMO

  20. 20 OPENTELEMETRY COLLECTOR – PIPELINES @ UBISOFT

  21. 21 LOGS, METRICS OU TRACES ?

  22. 22 Quand ? • Compléter des metrics/logs manquant • Requêtes

    HTTP • Interactions entre services – client & serveur • Applications tierces Comment ? • Processeur OpenTelemetry Collector • Histogram basé sur les spans Avantages ? • Simplification de l’instrumentation du code • Correlation automatique (exemplars) • Rétention des metrics • Vues différentes GENERATION AUTOMATIQUE DE METRICS / LOGS
  23. 23 Agent • Kubernetes DaemonSet • Collecte de logs par

    nœud • Collecte de metrics Prometheus par nœud • Collecte d’informations du kubelet (par nœud) • Collecte d’informations de la machine • Réception de spans à travers un service kubenetes STRATEGIES DE DEPLOIEMENT DU COLLECTEUR
  24. 24 Standalone • Kubernetes Deployment • Collecte d’informations du cluster

    Kubernetes • Collecte de metrics Prometheus au niveau des services kubernetes • (réception de spans à travers un service kubenetes) • … STRATEGIES DE DEPLOIEMENT DU COLLECTEUR
  25. 25 Sidecar • Kubernetes Container • Interopérabilité entre l’app et

    l’environment • Collecte des traces • Facilité de mise en place • Otelcol Operator – injection automatique dans les pods Kubernetes STRATEGIES DE DEPLOIEMENT DU COLLECTEUR
  26. 26 POC / Demo • Instrumentation automatique en Java et

    Python • Collecteur • Plateforme unifiée • Grafana • SaaS ? Code existant • Interopérabilité • Comblez les trous – avec des traces ? • Sidecar Nouveau code • Uniquement des traces? • Limiter au maximum la duplication • Conventions de nommage Workshop CNCF Paris – OpenTelemetry, jeudi 12 mai à Ubisoft https://meetup.com/Cloud-Native-Computing-Paris/ PAR OU COMMENCER ?
  27. 27 OpenTelemetry Collector • Encore plus d’unification entre les logs/metrics/traces

    • « Control Plane »: contrôle de la configuration à distance Instrumentation automatique • eBPF • Pixie Continuous Profiling • Nouveaux outils inspirés de Prometheus: Parca, Pyroscope • Intégration entre Pyroscope et les traces d’OpenTelemetry • Metrics -> Trace -> Profile ET ENSUITE ?
  28. 28 DEMO

  29. 29 Prise de conscience • Combien de temps pour trouver

    la « root cause » ? • Combien d’outils différents ? • Quel effort d’instrumentation ? Commencer par les traces • Comblez les trous • Génération de metrics / logs automatique • Convention de nommage • Intéropérabilité Plateforme unifiée • SaaS ou on-premise ? • Correlation • Experience unifiée • Root-cause analysis CONCLUSION
  30. Merci !