使用 -javaagent 标志手动设置
编辑使用 -javaagent
标志手动设置编辑
使用 -javaagent
选项是在 JVM 上设置 Java 代理的最常见方法,它具有以下属性
- 不需要更改应用程序代码。
- 需要更改 JVM 参数,这意味着需要重新启动整个 JVM。
- 对于应用程序服务器,修改 JVM 参数需要更改应用程序服务器配置
- 代理工件是需要与 JVM 或应用程序服务器一起管理的额外二进制文件。
- 确保应用程序在启动之前完全被检测到。
获取 Java 代理编辑
开始使用 Elastic APM Java 代理的第一步是获取代理 jar 的副本。
Java 代理版本发布到 Maven 中央仓库,为了获取副本,您可以
此外,我们还发布了 Java 代理的专用版本,该版本附带最新 log4j2 版本,因此需要至少 Java 8。此版本也可以在 Maven 中央仓库 中找到。
Java 代理版本通过 docker.elastic.co
仓库以 Docker 镜像的形式发布。
latest
标签允许在构建镜像时使用最新的版本。
在 Dockerfile
中添加以下语句将代理 jar 复制到 /elastic-apm-agent.jar
。
COPY --from=docker.elastic.co/observability/apm-agent-java:latest /usr/agent/elastic-apm-agent.jar /elastic-apm-agent.jar
代理不像常规的应用程序依赖项。不要在应用程序中声明对代理的依赖项。
添加 -javaagent
标志编辑
启动应用程序时,添加 JVM 标志 -javaagent:/path/to/elastic-apm-agent-<version>.jar
使用应用程序服务器设置代理编辑
不同的应用程序服务器设置 -javaagent
标志和系统属性的方式不同。
请注意,系统属性只是配置代理的一种方式,但在每种情况下都需要设置 -javaagent
标志。请参阅 配置,了解如何使用配置文件或环境变量配置代理。
通用设置编辑
启动您的应用程序(例如 Spring Boot 应用程序或其他嵌入式服务器),并添加 -javaagent
JVM 标志。使用 -D
前缀使用系统属性配置代理。
java -javaagent:/path/to/elastic-apm-agent-<version>.jar -Delastic.apm.service_name=my-cool-service -Delastic.apm.application_packages=org.example,org.another.example -Delastic.apm.server_url=http://127.0.0.1:8200 -jar my-application.jar
Apache Tomcat编辑
Unix编辑
创建 bin/setenv.sh
(如果文件已存在,则修改它)。确保使文件可执行,例如 chmod +x bin/setenv.sh
添加以下行
setenv.sh。
export CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/elastic-apm-agent-<version>.jar" export CATALINA_OPTS="$CATALINA_OPTS -Delastic.apm.service_name=my-cool-service" export CATALINA_OPTS="$CATALINA_OPTS -Delastic.apm.application_packages=org.example,org.another.example" export CATALINA_OPTS="$CATALINA_OPTS -Delastic.apm.server_url=http://127.0.0.1:8200"
Windows编辑
创建 bin\setenv.bat
(如果文件已存在,则修改它)。
setenv.bat。
set CATALINA_OPTS=%CATALINA_OPTS% -javaagent:C:/path/to/elastic-apm-agent-<version>.jar set CATALINA_OPTS=%CATALINA_OPTS% -Delastic.apm.service_name=my-cool-service set CATALINA_OPTS=%CATALINA_OPTS% -Delastic.apm.application_packages=org.example,org.another.example set CATALINA_OPTS=%CATALINA_OPTS% -Delastic.apm.server_url=http://127.0.0.1:8200
Jetty编辑
选项 1:编辑 jetty.sh
jetty.sh。
export JAVA_OPTIONS="${JAVA_OPTIONS} -javaagent:/path/to/elastic-apm-agent-<version>.jar" export JAVA_OPTIONS="${JAVA_OPTIONS} -Delastic.apm.service_name=my-cool-service" export JAVA_OPTIONS="${JAVA_OPTIONS} -Delastic.apm.application_packages=org.example,org.another.example" export JAVA_OPTIONS="${JAVA_OPTIONS} -Delastic.apm.server_url=http://127.0.0.1:8200"
选项 2:编辑 start.ini
start.ini。
--exec -javaagent:/path/to/elastic-apm-agent-<version>.jar -Delastic.apm.service_name=my-cool-service -Delastic.apm.application_packages=org.example,org.another.example -Delastic.apm.server_url=http://127.0.0.1:8200
选项 3:如果您使用的是嵌入式 Jetty,请参阅 通用设置。
JBoss EAP/WildFly编辑
独立模式编辑
在 standalone.conf
文件的底部添加代理配置
Unix
bin/standalone.conf。
export JAVA_OPTS="$JAVA_OPTS -javaagent:/path/to/elastic-apm-agent-<version>.jar" export JAVA_OPTS="$JAVA_OPTS -Delastic.apm.service_name=my-cool-service" export JAVA_OPTS="$JAVA_OPTS -Delastic.apm.application_packages=org.example,org.another.example" export JAVA_OPTS="$JAVA_OPTS -Delastic.apm.server_url=http://127.0.0.1:8200"
Windows
bin/standalone.conf.bat。
set JAVA_OPTS=%JAVA_OPTS% -javaagent:C:/path/to/elastic-apm-agent-<version>.jar set JAVA_OPTS=%JAVA_OPTS% -Delastic.apm.service_name=my-cool-service set JAVA_OPTS=%JAVA_OPTS% -Delastic.apm.application_packages=org.example,org.another.example set JAVA_OPTS=%JAVA_OPTS% -Delastic.apm.server_url=http://127.0.0.1:8200
域模式编辑
编辑 domain.xml
文件(通常位于 domain/configuration
下),并为 -javaagent
标志添加 JVM 选项,以及一些用于配置的系统属性。
domain/configuration/domain.xml。
... <server-group> <jvm> <jvm-options> ... <option value="-javaagent:/path/to/elastic-apm-agent-<version>.jar"/> ... </jvm-options> </jvm> </server-group> ... <system-properties> <property name="elastic.apm.service_name" value="my-cool-service"/> <property name="elastic.apm.application_packages" value="org.example,org.another.example"/> <property name="elastic.apm.server_url" value="http://127.0.0.1:8200"/> </system-properties> ...
WebSphere Liberty编辑
将以下行添加到 jvm.options
文件中。
jvm.options。
Payara编辑
更新 domain.xml
文件以添加 -javaagent
标志和系统属性。
glassfish/domains/domain1/config/domain.xml。
<java-config> ... <jvm-options>-javaagent:/path/to/elastic-apm-agent-<version>.jar</jvm-options> <jvm-options>-Delastic.apm.service_name=my-cool-service</jvm-options> <jvm-options>-Delastic.apm.application_packages=org.example,org.another.example</jvm-options> <jvm-options>-Delastic.apm.server_url=http://127.0.0.1:8200</jvm-options> </java-config>
Oracle WebLogic编辑
Unix编辑
编辑 startWebLogic.sh
文件,并在 setDomainEnv.sh
调用之后添加以下行
$DOMAIN_HOME/bin/startWebLogic.sh。
export JAVA_OPTIONS="$JAVA_OPTIONS -javaagent:/path/to/elastic-apm-agent-<version>.jar" export JAVA_OPTIONS="$JAVA_OPTIONS -Delastic.apm.service_name=my-cool-service" export JAVA_OPTIONS="$JAVA_OPTIONS -Delastic.apm.application_packages=org.example,org.another.example" export JAVA_OPTIONS="$JAVA_OPTIONS -Delastic.apm.server_url=http://127.0.0.1:8200"
Windows编辑
编辑 startWebLogic.cmd
文件,并在 setDomainEnv.cmd
调用之后添加以下行
%DOMAIN_HOME%\bin\startWebLogic.cmd。
set JAVA_OPTIONS=%JAVA_OPTIONS% -javaagent:C:/path/to/elastic-apm-agent-<version>.jar set JAVA_OPTIONS=%JAVA_OPTIONS% -Delastic.apm.service_name=my-cool-service set JAVA_OPTIONS=%JAVA_OPTIONS% -Delastic.apm.application_packages=org.example,org.another.example set JAVA_OPTIONS=%JAVA_OPTIONS% -Delastic.apm.server_url=http://127.0.0.1:8200
Cloud Foundry编辑
从 版本 v4.19 开始,Elastic Java APM Agent 框架已成为 Cloud Foundry Java Buildpack 的一部分。
用户提供的 Elastic APM 服务必须具有包含 elastic-apm
的名称或标签,以便 Elastic APM Agent 框架自动配置应用程序以使用该服务。
创建用户提供的服务
cf cups my-elastic-apm-service -p '{"server_url":"my-apm-server-url","secret_token":"my-apm-server-secret-token"}'
my-apm-server-url
和 my-apm-server-secret-token
分别是 Elasticsearch 服务器服务密钥中的 server_url
和 secret_token
。
将应用程序绑定到服务
cf bind-service my-application my-elastic-apm-service
并重新暂存应用程序或在应用程序清单文件中使用 services
块。
有关 Cloud Foundry 的 Elastic Java APM Agent 框架的更多详细信息,请参阅 此处。
manifest.yml。
applications: - name: my-application memory: 1G path: ./target/my-application.jar services: - my-elastic-apm-service