【问题标题】:Passing Java APM Agent settings in Docker在 Docker 中传递 Java APM 代理设置
【发布时间】:2020-12-20 14:34:07
【问题描述】:

我使用 Elastic APM 代理监控我的 jar,我手动运行这些命令:

java -javaagent:../infrastructure/agent/apm-agent.jar \
     -Delastic.apm.service_name=server \
     -Delastic.apm.server_urls=http://${APM_HOST}:8200 \
     -Delastic.apm.application_packages=package.coù \
     -jar ./target/server-0.0.1-SNAPSHOT.jar &

现在,我想使用 docker run 传递这些参数,我创建图像并尝试使用此命令传递这些设置,但应用程序没有启动

docker run --name app -e CATALINA_OPTS='-Dspring.config.location=/usr/local/tomcat/application-recette.properties,/usr/local/tomcat/application.yml' 
-e CATALINA_OPTS='-Delastic.apm.service_name=server' 
-e CATALINA_OPTS='-Delastic.apm.server_urls=http://10.128.0.4:8200' 
-e CATALINA_OPTS='-Delastic.apm.application_packages=package.com' 
-d -p 9000:8080 image:v1

有什么办法解决这个问题吗?

谢谢

【问题讨论】:

    标签: spring-boot docker apm


    【解决方案1】:

    实际上,您的应用程序无法启动的原因有很多,具体取决于您设置和配置 ELK 堆栈的方式,但对我来说,我做了以下操作并且运行良好:

    1. 通过 Dockerfile 运送 application.jarapm-agent.jar 并在容器中运行它们:
    FROM openjdk:8-jre-alpine COPY javaProjects/test-apm/target/test-apm-0.0.1-SNAPSHOT.jar /app.jar COPY elastic-apm-agent-1.19.0.jar /apm-agent.jar CMD ["/usr/bin/java","-javaagent:/apm-agent.jar", "-Delastic.apm.service_name=my-cool-service -Delastic.apm.application_packages=main.java -Delastic.apm.server_urls=http://localhost:8200","-jar", "/app.jar"]
    1. 从此 Dockerfile 创建映像:

      docker build -t test-apm:latest ./
    2. 运行创建的镜像:

      docker run  --network host -p 8080:8080 test-apm:latest
    • 注意我的 apm-serverELK-stack 正在我的主机上运行, 我认为,如果您也这样做并对您的环境进行少量更改,它应该可以正常工作,

    【讨论】:

    • 对于环境变量,我如何传递它们?
    • 在运行我已替换的容器期间传递环境变量:codeCMD ["/usr/bin/java" ......] code 与:codeENTRYPOINT exec /usr/bin/java $JAVA_OPTS -jar /app.jar code 然后运行命令是这样的:code docker run -e JAVA_OPTS='-javaagent:/apm-agent.jar \ -elastic.apm。 service_name=my-cool-service \ -elastic.apm.application_packages=main.java \ -elastic.apm.server_urls=localhost:8200' --network host -p 8080:8080 test-apm:latestcode
    • 像魅力一样工作; Jazak Allahu Khayran
    • w -eiakom ,很高兴听到这对你有用。
    猜你喜欢
    • 2021-10-23
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多