Pour commencer • S'impliquer • Prendre contact
Contribuer • Portée
Ce projet fournit un JAR d'agent Java qui peut être attaché à n'importe quelle application Java 8+ et injecte dynamiquement du bytecode pour capturer la télémétrie d'un certain nombre de bibliothèques et de frameworks populaires. Vous pouvez exporter les données de télémétrie dans différents formats. Vous pouvez également configurer l'agent et l'exportateur via des arguments de ligne de commande ou des variables d'environnement. Le résultat net est la possibilité de collecter des données de télémétrie à partir d'une application Java sans modification du code.
Ce référentiel publie également une instrumentation autonome pour plusieurs bibliothèques (et en croissance) qui peuvent être utilisées si vous préférez cela plutôt que d'utiliser l'agent Java. Veuillez consulter la colonne d'instrumentation de bibliothèque autonome sur les bibliothèques prises en charge. Si vous recherchez de la documentation sur leur utilisation.
Téléchargez la dernière version.
Ce package comprend l'agent d'instrumentation ainsi que les instrumentations pour toutes les bibliothèques prises en charge et tous les exportateurs de données disponibles. Le package offre une expérience entièrement automatique et prête à l’emploi.
Remarque : Il existe des versions 2.x et 1.x. La version 2.0 comprenait des modifications importantes, dont les détails peuvent être trouvés dans les notes de version. Il est recommandé d'utiliser la dernière version 2.x qui disposera des dernières fonctionnalités et améliorations. 1.x recevra des correctifs de sécurité pour une durée limitée et n'inclura pas d'autres corrections de bogues ni améliorations.
Activez l'agent d'instrumentation à l'aide de l'indicateur -javaagent
sur la JVM.
java -javaagent:path/to/opentelemetry-javaagent.jar
-jar myapp.jar
Par défaut, l'agent Java OpenTelemetry utilise l'exportateur OTLP configuré pour envoyer des données à un collecteur OpenTelemetry à http://localhost:4318
.
Les paramètres de configuration sont transmis en tant que propriétés système Java (indicateurs -D
) ou en tant que variables d'environnement. Consultez la documentation de configuration pour la liste complète des éléments de configuration. Par exemple:
java -javaagent:path/to/opentelemetry-javaagent.jar
-Dotel.resource.attributes=service.name=your-service-name
-Dotel.traces.exporter=zipkin
-jar myapp.jar
L'agent est hautement configurable ! De nombreux aspects du comportement de l'agent peuvent être configurés selon vos besoins, tels que le choix de l'exportateur, la configuration de l'exportateur (comme l'endroit où les données sont envoyées), les en-têtes de propagation du contexte de trace, et bien plus encore.
Pour une liste détaillée des options de configuration de l'agent, consultez la documentation sur la configuration de l'agent.
Pour une liste détaillée des variables d'environnement de configuration du SDK supplémentaires et des propriétés système, consultez la documentation de configuration du SDK.
Remarque : les noms des paramètres de configuration sont très susceptibles de changer avec le temps, alors revenez ici lorsque vous essayez une nouvelle version ! Veuillez signaler tout bug ou comportement inattendu que vous trouvez.
Nous prenons en charge un nombre impressionnant de bibliothèques et de frameworks et la majorité des serveurs d'applications les plus populaires... dès la sortie de la boîte ! Cliquez ici pour voir la liste complète et pour en savoir plus sur l’instrumentation désactivée et sur la façon de supprimer l’instrumentation indésirable.
Les extensions ajoutent de nouvelles fonctionnalités et capacités à l'agent sans avoir à créer une distribution distincte ou à bifurquer de ce référentiel. Par exemple, vous pouvez créer des échantillonneurs personnalisés ou des exportateurs étendus, définir de nouvelles valeurs par défaut et intégrer le tout dans l'agent pour obtenir un seul fichier jar.
Pour la plupart des utilisateurs, l’instrumentation prête à l’emploi est tout à fait suffisante et il n’y a rien d’autre à faire. Parfois, cependant, les utilisateurs souhaitent ajouter des attributs aux étendues autrement automatiques, ou ils peuvent souhaiter créer manuellement des étendues pour leur propre code personnalisé.
Pour des instructions détaillées, voir Instrumentation manuelle.
Il est possible d'injecter des informations de trace telles que des ID de trace et des ID d'étendue dans vos journaux d'application personnalisés. Pour plus de détails, voir Auto-instrumentation Logger MDC.
Pour activer la journalisation de débogage interne de l'agent :
-Dotel.javaagent.debug=true
Remarque : Ces journaux sont extrêmement détaillés. Activez la journalisation du débogage uniquement lorsque cela est nécessaire. La journalisation du débogage a un impact négatif sur les performances de votre application.
Voir CONTRIBUTION.md.
Trieurs (@open-telemetry/java-instrumentation-triagers) :
Approbateurs (@open-telemetry/java-instrumentation-approvers) :
Mainteneurs (@open-telemetry/java-instrumentation-maintainers) :
Mainteneurs émérites :
En savoir plus sur les rôles dans le référentiel communautaire.
Merci à toutes les personnes qui ont déjà contribué !