0

我想在 OpenShift 集群上部署一个 Spring Boot 应用程序,我想使用 elastic-apm 进行监控因此使用 elastic-apm-agent。

我设法在一个项目中部署了一个 Elasticsearch 实例、一个Kibana实例和一个 apm-server。

除此之外,我还设法部署了我的 Spring Boot 应用程序。为此,我使用了 Web 控制台。我从GitLab导入了我的项目,并选择了 Java 8 图像生成器。但是,使用这种方法,我没有找到通过关联 java-agent elastic-apm-agent 来启动我的应用程序的方法。

在本地,我运行这个命令来启动我的应用程序:

mvn package && java -javaagent:elastic-apm-agent/elastic-apm-agent-1.26.0.jar \
-Delastic.apm.service_name=ms-salarie \
-Delastic.apm.server_urls=http://localhost:8200 \
-Delastic.apm.secret_token= \
-Delastic.apm.environment=development \
-Delastic.apm.application_packages=com.leanerp.salarie \
-Delastic.apm.config_file=elastic-apm-agent/elasticapm.properties \
-jar target/salarie-1.1.3-SNAPSHOT.jar

有没有办法覆盖我的应用程序容器启动的命令?还是其他允许我使用 elastic-apm-agent 的解决方案?

我是 OpenShift 的新手,所以我并不完全理解所有的概念。

4

2 回答 2

1

好的,所以答案是添加这个环境变量:

JAVA_OPTS_APPEND=-javaagent:{{path_to_elastic_apm_agent}}

此命令允许您使用选项启动 Java 应用程序。

于 2021-12-02T10:50:27.017 回答
1

Java 代理允许多种方式对其进行配置,其中之一是命令行系统属性。其他包括打包elasticapm.properties资源文件或设置环境变量。

查看文档。小摘录:

  • 属性文件:该elasticapm.properties文件与代理 jar 位于同一文件夹中,或通过config_file选项提供。动态配置

  • 环境变量:所有配置键都是大写的,前缀为ELASTIC_APM_.

不同的选项源具有不同的优先级和优先级。

要将代理附加到正在运行的 JVM 进程(从您的应用程序中),您可以使用API 进行自我附加

于 2021-11-03T16:35:47.193 回答