Java 自动检测使用可以附加到任何 Java 8+ 应用程序的 Java 代理 JAR,它动态注入字节码以从许多流行的库和框架中捕获遥测数据,它可用于在应用程序或服务的“边缘”捕获遥测数据,例如入站请求、出站 HTTP 调用、数据库调用等。要了解如何手动检测您的服务或应用程序代码,请参阅手动检测。
安装
-
从 opentelemetry-java-instrumentation 代码库的发行版下载opentelemetry-javaagent.jar,并将 JAR 放在您的首选目录中。
-
将 -javaagent:path/to/opentelemetry-javaagent.jar 和其他配置添加到您的 JVM 启动参数并启动您的应用程序:
-
直接加在启动命令上:
java -javaagent:path/to/opentelemetry-javaagent.jar -Dotel.service.name=your-service-name -jar myapp.jar
-
通过 JAVA_TOOL_OPTIONS 和其他环境变量:
export JAVA_TOOL_OPTIONS="-javaagent:path/to/opentelemetry-javaagent.jar" export OTEL_SERVICE_NAME="your-service-name" java -jar myapp.jar
-
配置代理
代理是高度可配置的。一种选择是通过 -D 标志传递配置属性,在此示例中,配置了用于跟踪的服务名称和 Zipkin 导出器:
java -javaagent:path/to/opentelemetry-javaagent.jar \
-Dotel.service.name=your-service-name \
-Dotel.traces.exporter=zipkin \
-jar myapp.jar
您还可以使用环境变量来配置代理:
OTEL_SERVICE_NAME=your-service-name \
OTEL_TRACES_EXPORTER=zipkin \
java -javaagent:path/to/opentelemetry-javaagent.jar \
-jar myapp.jar
您还可以提供一个 Java 属性文件并从那里加载配置值:
java -javaagent:path/to/opentelemetry-javaagent.jar \
-Dotel.javaagent.configuration-file=path/to/properties/file.properties \
-jar myapp.jar
或者
OTEL_JAVAAGENT_CONFIGURATION_FILE=path/to/properties/file.properties \
java -javaagent:path/to/opentelemetry-javaagent.jar \
-jar myapp.jar
要查看全部配置选项,请参阅代理配置。
支持的库、框架、应用程序服务和 JVM
Java 代理附带了许多流行组件的检测库。有关完整列表,请参阅支持的库、框架、应用程序服务和 JVM。
故障排除
您可以将 -Dotel.javaagent.debug=true 参数传递给代理以查看调试日志,请注意,这些非常冗长。
下一步
在为您的应用程序或服务配置自动检测后,您可能想要注解选定的方法或添加手动检测以收集自定义遥测数据。
将检测注解与 Java 代理一起使用。
扩展为代理添加功能,而无需创建单独的发布。