开始使用 • 参与其中 • 取得联系
贡献 • 范围
该项目提供了一个 Java 代理 JAR,可以附加到任何 Java 8+ 应用程序,并动态注入字节码以从许多流行的库和框架捕获遥测数据。您可以以多种格式导出遥测数据。您还可以通过命令行参数或环境变量配置代理和导出器。最终结果是无需更改代码即可从 Java 应用程序收集遥测数据。
该存储库还为多个库(以及不断增长的库)发布了独立工具,如果您更喜欢使用这些库而不是使用 Java 代理,则可以使用这些工具。请参阅支持的库上的独立库检测列。如果您正在寻找有关使用它们的文档。
下载最新版本。
该软件包包括仪器代理以及所有支持的库和所有可用数据导出器的仪器。该软件包提供了完全自动化、开箱即用的体验。
注意:有 2.x 版本和 1.x 版本。 2.0 版本包含重大的重大更改,详细信息可以在发行说明中找到。建议使用最新的 2.x 版本,它将具有最新的功能和改进。 1.x 将在有限时间内收到安全补丁,并且不包括其他错误修复和增强功能。
使用 JVM 的-javaagent
标志启用检测代理。
java -javaagent:path/to/opentelemetry-javaagent.jar
-jar myapp.jar
默认情况下,OpenTelemetry Java 代理使用配置为将数据发送到位于http://localhost:4318
OpenTelemetry 收集器的 OTLP 导出器。
配置参数作为 Java 系统属性( -D
标志)或环境变量传递。有关配置项的完整列表,请参阅配置文档。例如:
java -javaagent:path/to/opentelemetry-javaagent.jar
-Dotel.resource.attributes=service.name=your-service-name
-Dotel.traces.exporter=zipkin
-jar myapp.jar
该代理是高度可配置的!可以根据您的需求配置代理行为的许多方面,例如导出器选择、导出器配置(如数据发送位置)、跟踪上下文传播标头等等。
有关代理配置选项的详细列表,请参阅代理配置文档。
有关其他 SDK 配置环境变量和系统属性的详细列表,请参阅 SDK 配置文档。
注意:配置参数名称很可能会随着时间的推移而改变,因此请在尝试新版本时返回此处!请报告您发现的任何错误或意外行为。
我们支持数量惊人的库和框架以及大多数最受欢迎的应用程序服务器......开箱即用!单击此处查看完整列表并了解有关禁用检测以及如何抑制不需要的检测的更多信息。
扩展可以向代理添加新的特性和功能,而无需创建单独的发行版或分叉此存储库。例如,您可以创建自定义采样器或跨度导出器,设置新的默认值,并将其全部嵌入代理中以获得单个 jar 文件。
对于大多数用户来说,开箱即用的仪器就完全足够了,不需要做更多的事情。然而,有时,用户希望将属性添加到其他自动跨度中,或者他们可能希望为自己的自定义代码手动创建跨度。
有关详细说明,请参阅手动检测。
可以将跟踪 ID 和跨度 ID 等跟踪信息注入自定义应用程序日志中。有关详细信息,请参阅 Logger MDC 自动检测。
要打开代理的内部调试日志记录:
-Dotel.javaagent.debug=true
注意:这些日志非常详细。仅在需要时启用调试日志记录。调试日志记录会对应用程序的性能产生负面影响。
请参阅 CONTRIBUTING.md。
分类器(@open-telemetry/java-instrumentation-triagers):
批准者(@open-telemetry/java-instrumentation-approvers):
维护者(@open-telemetry/java-instrumentation-maintainers):
荣誉维护者:
了解有关社区存储库中的角色的更多信息。
感谢所有已经做出贡献的人!