??? Jaeger v2 arrive ! Lisez le billet de blog et essayez-le.
graphique TD
SDK["OpenTelemetry SDK"] --> |HTTP ou gRPC| COLLECTIONNEUR
COLLECTEUR["Jaeger Collector"] --> MAGASIN[Stockage]
COLLECTEUR --> |gRPC| PLUGIN[Plugin de stockage]
COLLECTEUR --> |gRPC/échantillonnage| SDK
PLUGIN --> MAGASIN
REQUÊTE[Service de requête Jaeger] --> MAGASIN
REQUÊTE --> |gRPC| PLUGIN
Interface utilisateur[Interface utilisateur Jaeger] --> |HTTP| REQUÊTE
Hôte d'application de sous-graphe
Application utilisateur de sous-graphe
SDK
fin
fin
Jaeger, inspiré de Dapper et OpenZipkin, est une plateforme de traçage distribuée créée par Uber Technologies et offerte à la Cloud Native Computing Foundation. Il peut être utilisé pour surveiller les systèmes distribués basés sur des microservices :
Voir aussi :
Jaeger est hébergé par la Cloud Native Computing Foundation (CNCF) en tant que 7ème projet de haut niveau (diplômé en octobre 2019). Si vous êtes une entreprise qui souhaite contribuer à façonner l’évolution des technologies conditionnées en conteneurs, planifiées dynamiquement et orientées microservices, envisagez de rejoindre la CNCF. Pour plus de détails sur les personnes impliquées et comment Jaeger joue un rôle, lisez l'annonce d'incubation de la CNCF Jaeger et l'annonce de remise des diplômes de Jaeger.
Jaeger est un projet open source avec une gouvernance ouverte. Nous apprécions les contributions de la communauté et nous serions ravis de votre aide pour améliorer et étendre le projet. Voici quelques idées pour vous impliquer. Beaucoup d’entre eux ne nécessitent même aucun codage.
Le backend de Jaeger est conçu pour ne présenter aucun point de défaillance unique et s'adapter aux besoins de l'entreprise. Par exemple, toute installation Jaeger chez Uber traite généralement plusieurs milliards de spans par jour.
Les projets Jaeger et OpenTelemetry ont des objectifs différents. OpenTelemetry vise à fournir des API et des SDK dans plusieurs langages pour permettre aux applications d'exporter diverses données de télémétrie en dehors du processus, vers un nombre illimité de métriques et de backends de traçage. Le projet Jaeger est principalement le backend de traçage qui reçoit les données de télémétrie de traçage et assure le traitement, l'agrégation, l'exploration de données et la visualisation de ces données. Pour plus d'informations, veuillez vous référer à un article de blog Jaeger et OpenTelemetry.
Jaeger a été initialement conçu pour prendre en charge le standard OpenTracing. La terminologie est toujours utilisée dans l'interface utilisateur de Jaeger, mais les concepts sont directement mappés au modèle de données de traces OpenTelemetry.
Capacité | Concept OpenTracing | Concept OpenTélémétrie |
---|---|---|
Représenter les traces sous forme de graphiques acycliques dirigés (pas seulement des arbres) | références de travée | liens étendus |
Attributs d'étendue fortement typés | balises d'étendue | attributs d'étendue |
Événements/journaux fortement typés | journaux de travée | événements de durée |
Le projet Jaeger recommande les SDK OpenTelemetry pour l'instrumentation, au lieu des SDK Jaeger, désormais obsolètes.
Jaeger peut être utilisé avec un nombre croissant de backends de stockage :
Jaeger Web UI est implémenté en Javascript à l'aide de frameworks open source populaires comme React. Plusieurs améliorations de performances ont été publiées dans la version 1.0 pour permettre à l'interface utilisateur de traiter efficacement de gros volumes de données et d'afficher des traces avec des dizaines de milliers d'étendues (par exemple, nous avons essayé une trace avec 80 000 étendues).
Le backend Jaeger est distribué sous la forme d’une collection d’images Docker. Les binaires prennent en charge diverses méthodes de configuration, notamment les options de ligne de commande, les variables d'environnement et les fichiers de configuration dans plusieurs formats (yaml, toml, etc.).
La méthode recommandée pour déployer Jaeger dans un cluster Kubernetes de production consiste à utiliser l'opérateur Jaeger.
L'opérateur Jaeger fournit une CLI pour générer des manifestes Kubernetes à partir du Jaeger CR. Cela peut être considéré comme une source alternative aux fichiers manifestes Kubernetes simples.
L'écosystème Jaeger fournit également une carte Helm comme moyen alternatif de déployer Jaeger.
Tous les composants backend de Jaeger exposent les métriques Prometheus par défaut (d'autres backends de métriques sont également pris en charge). Les journaux sont écrits sur la sortie standard à l'aide de la bibliothèque de journalisation structurée zap.
Des audits de sécurité tiers de Jaeger sont disponibles sur https://github.com/jaegertracing/security-audits. Veuillez consulter le numéro 1718 pour le résumé des mécanismes de sécurité disponibles dans Jaeger.
Bien que nous recommandons d'instrumenter les applications avec OpenTelemetry, si votre organisation a déjà investi dans l'instrumentation à l'aide des bibliothèques Zipkin, vous n'avez pas besoin de réécrire tout ce code. Jaeger offre une compatibilité descendante avec Zipkin en acceptant les spans aux formats Zipkin (Thrift ou JSON v1/v2) sur HTTP. Passer du backend Zipkin consiste simplement à acheminer le trafic des bibliothèques Zipkin vers le backend Jaeger.
Parfois, les indicateurs CLI peuvent être obsolètes en raison, par exemple, d'améliorations de la convivialité ou de nouvelles fonctionnalités. Dans de telles situations, les développeurs introduisant la dépréciation sont tenus de suivre ces directives.
En bref, pour un indicateur CLI obsolète, vous devez vous attendre à voir le message suivant dans la documentation --help
:
(deprecated, will be removed after yyyy-mm-dd or in release vX.Y.Z, whichever is later)
Une période de grâce d'au moins 3 mois ou deux changements de version mineurs (selon la date la plus tardive) à partir de la première version contenant l'avis de dépréciation sera accordé avant que l'indicateur CLI obsolète puisse être supprimé.
Par exemple, considérons un scénario dans lequel la version 1.28.0 est publiée le 1er juin 2021 et contient un avis de dépréciation pour un indicateur CLI. Cet indicateur restera dans un état obsolète jusqu'au 1er septembre 2021 ou à la version 1.30.0, au plus tard, où il pourra être supprimé pendant ou après l'un de ces événements. Il peut rester obsolète plus longtemps que le délai de grâce susmentionné.
Le projet Jaeger tente de suivre les versions de Go actuellement prises en charge, telles que définies par l'équipe Go. La suppression de la prise en charge d’une version Go non prise en charge n’est pas considérée comme une modification radicale.
À partir de la sortie de Go 1.21, la prise en charge des versions Go sera mise à jour comme suit :
N
, des mises à jour seront apportées aux étapes de construction et de tests pour s'adapter à la dernière version mineure de Go.N
, la prise en charge de la version Go N-2
sera supprimée et la version N-1
deviendra la version minimale requise. Le projet Jaeger recommande les SDK OpenTelemetry pour l'instrumentation, au lieu des SDK natifs de Jaeger qui sont désormais obsolètes.
Voir CONTRIBUTION.
Voir CONTRIBUTION.
Merci à toutes les personnes qui ont déjà contribué !
Les règles pour devenir mainteneur sont définies dans le document GOUVERNANCE. Vous trouverez ci-dessous les responsables officiels du projet Jaeger. Veuillez utiliser @jaegertracing/jaeger-maintainers
pour les identifier sur les problèmes/PR.
Certains référentiels sous jaegertracing org ont des responsables supplémentaires.
Nous remercions nos anciens responsables pour leurs contributions au projet Jaeger.
Les mainteneurs et contributeurs de Jaeger se réunissent régulièrement lors d'un appel vidéo. Tout le monde est invité à nous rejoindre, y compris les utilisateurs finaux. Pour les détails de la réunion, voir https://www.jaegertracing.io/get-in-touch/.
Voir https://www.jaegertracing.io/docs/roadmap/
Vous avez des questions, des suggestions, des rapports de bugs ? Contactez la communauté du projet via ces canaux :
#jaeger
(besoin de rejoindre CNCF Slack pour la première fois)jaeger-tracing
Jaeger en tant que produit se compose de plusieurs composants. Nous souhaitons prendre en charge différents types d'utilisateurs, qu'ils utilisent uniquement nos bibliothèques d'instruments ou l'installation complète de Jaeger de bout en bout, qu'elle s'exécute en production ou que vous l'utilisiez pour résoudre des problèmes de développement.
Veuillez consulter ADOPTERS.md pour certaines des organisations qui utilisent Jaeger aujourd'hui. Si vous souhaitez ajouter votre organisation à la liste, veuillez commenter notre problème d'enquête.
Copyright (c) Les auteurs Jaeger. Licence Apache 2.0.