APM agent 参数
-Delastic.apm.service_name=my-test-service
-Delastic.apm.application_packages=com.yiz
-Delastic.apm.server_url=http://localhost:8200
-Delastic.apm.logging.log_level=DEBUG
-Delastic.apm.active=true
-Delastic.apm.logging.log_file=/home/pengx/APM/apm-agent.log
其中,service_name、application_packages和server_url是必须项。
手动加在启动命令行后面,或者放在与apm-agent.jar相同的目录,命名 elasticapm.properties ,不过写成配置文件没有生效
SpringBoot的启动,使用 elasticapm.properties 配置文件的方式:
java -javaagent:/path/to/elastic-apm-agent-<version>.jar -jar my-spring-boot-application.jar
也可以把配置写到命令行中,实际书写的时候把回车给去掉。
java -javaagent:/path/to/elastic-apm-agent-<version>.jar
-Delastic.apm.service_name=my-test-service
-Delastic.apm.application_packages=com.yiz
-Delastic.apm.server_url=http://localhost:8200
-Delastic.apm.logging.log_level=DEBUG
-Delastic.apm.active=true
-Delastic.apm.logging.log_file=/home/pengx/APM/apm-agent.log
-jar my-spring-boot-application.jar
Tomcat的项目启动:
创建 $CATALINA_BASE/bin/setenv.sh
加入这个:
export CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/elastic-apm-agent-<version>.jar"
问题排查点:
配置文件问题:
a、配置写得不对
b、配置文件未生效(未被读取或其他原因,可查看相关日志)
c、配置文件的权限问题
配置文件列表:
1、elasticapm.properties
2、apm-server.yml
端口被占用或冲突
环境变量的缺失:$CATALINA_BASE 、 $CATALINA_OPTS
ip地址写成 localhost 与写成 192.168.50.6 的区别
日志排查点:
1、agent的日志:APM/apm-agent.log
2、apm-server的日志:apm-server/bin/log.txt
3、Elastic的日志:elasticsearch/bin/log.txt
Jar包或War包的问题
连通性排查:agent——>server——>elastic——>kibana
apm-agent-log记录的WARN日志:
2018-08-22 11:32:40.055 [main] INFO co.elastic.apm.configuration.StartupInfo - Starting Elastic APM 0.6.0 on Java 1.8.0_161 (Oracle Corporation) Linux 4.15.0-32-generic
2018-08-22 11:32:40.056 [main] DEBUG co.elastic.apm.configuration.StartupInfo - service_name: 'my-test-service' (source: Java System Properties)
2018-08-22 11:32:40.056 [main] DEBUG co.elastic.apm.configuration.StartupInfo - server_url: 'http://192.168.50.6:8200' (source: Java System Properties)
2018-08-22 11:32:40.056 [main] DEBUG co.elastic.apm.configuration.StartupInfo - application_packages: 'com.yiz' (source: Java System Properties)
2018-08-22 11:32:40.056 [main] DEBUG co.elastic.apm.configuration.StartupInfo - logging.log_level: 'DEBUG' (source: Java System Properties)
2018-08-22 11:32:40.056 [main] DEBUG co.elastic.apm.configuration.StartupInfo - logging.log_file: '/home/pengx/APM/apm-agent.log' (source: Java System Properties)
2018-08-22 11:32:40.063 [apm-server-healthcheck] WARN co.elastic.apm.report.ApmServerHttpPayloadSender - Elastic APM server is not available (Failed to connect to /192.168.50.6:8200)
2018-08-22 11:32:40.167 [main] DEBUG co.elastic.apm.bci.ElasticApmAgent - Applying advice co.elastic.apm.plugin.api.ElasticApmApiInstrumentation$StartTransactionInstrumentation
1、apm.server_url的ip是本机IP,用localhost,不能用192.168.50.6
2、SpringBoot的jar包使用绝对路径
3、apm-agent的jar包可能也必须得使用全路径
java -javaagent:/home/pengx/APM/apm-agent-0.6.0/elastic-apm-agent-0.6.0.jar
-Delastic.apm.service_name=my-test-service
-Delastic.apm.application_packages=com.yiz
-Delastic.apm.logging.log_level=DEBUG
-Delastic.apm.server_url=http://localhost:8200
-Delastic.apm.active=true
-Delastic.apm.logging.log_file=/home/pengx/APM/apm-agent.log
-jar /home/pengx/APM/SpringBootTest-0.0.2/SpringBootTest-0.0.1-SNAPSHOT.jar
启动成功的SpringBoot的Demo,apm-agent.log日志部分信息:
2018-08-22 14:12:21.609 [main] DEBUG co.elastic.apm.bci.ElasticApmAgent - Applying advice co.elastic.apm.opentracing.impl.ApmSpanInstrumentation$BaggageItemsInstrumentation
2018-08-22 14:12:21.610 [main] DEBUG co.elastic.apm.bci.ElasticApmAgent - Applying advice co.elastic.apm.opentracing.impl.ApmSpanBuilderInstrumentation$StartApmSpanInstrumentation
2018-08-22 14:12:21.611 [main] DEBUG co.elastic.apm.bci.ElasticApmAgent - Applying advice co.elastic.apm.opentracing.impl.ApmSpanBuilderInstrumentation$CreateTransactionInstrumentation
2018-08-22 14:12:21.612 [main] DEBUG co.elastic.apm.bci.ElasticApmAgent - Applying advice co.elastic.apm.opentracing.impl.ApmSpanBuilderInstrumentation$CreateSpanInstrumentation
2018-08-22 14:12:21.614 [main] DEBUG co.elastic.apm.bci.ElasticApmAgent - Applying advice co.elastic.apm.opentracing.impl.ScopeManagerInstrumentation$ActivateInstrumentation
2018-08-22 14:12:21.614 [main] DEBUG co.elastic.apm.bci.ElasticApmAgent - Applying advice co.elastic.apm.opentracing.impl.ScopeManagerInstrumentation$CurrentTransactionInstrumentation
2018-08-22 14:12:21.615 [main] DEBUG co.elastic.apm.bci.ElasticApmAgent - Applying advice co.elastic.apm.opentracing.impl.ScopeManagerInstrumentation$CurrentSpanInstrumentation
2018-08-22 14:12:21.616 [main] DEBUG co.elastic.apm.bci.ElasticApmAgent - Applying advice co.elastic.apm.opentracing.impl.ApmScopeInstrumentation
2018-08-22 14:12:21.616 [main] DEBUG co.elastic.apm.bci.ElasticApmAgent - Applying advice co.elastic.apm.servlet.ServletInstrumentation
2018-08-22 14:12:21.618 [main] DEBUG co.elastic.apm.bci.ElasticApmAgent - Applying advice co.elastic.apm.servlet.FilterChainInstrumentation
2018-08-22 14:12:21.619 [main] DEBUG co.elastic.apm.bci.ElasticApmAgent - Applying advice co.elastic.apm.spring.webmvc.SpringTransactionNameInstrumentation
2018-08-22 14:12:21.619 [main] DEBUG co.elastic.apm.bci.ElasticApmAgent - Applied 31 advices
2018-08-22 14:12:21.450 [main] INFO co.elastic.apm.configuration.StartupInfo - Starting Elastic APM 0.6.0 on Java 1.8.0_161 (Oracle Corporation) Linux 4.15.0-32-generic
2018-08-22 14:12:21.451 [main] DEBUG co.elastic.apm.configuration.StartupInfo - service_name: 'my-test-service' (source: Java System Properties)
2018-08-22 14:12:21.451 [main] DEBUG co.elastic.apm.configuration.StartupInfo - application_packages: 'com.yiz' (source: Java System Properties)
2018-08-22 14:12:21.452 [main] DEBUG co.elastic.apm.configuration.StartupInfo - logging.log_level: 'DEBUG' (source: Java System Properties)
2018-08-22 14:12:21.452 [main] DEBUG co.elastic.apm.configuration.StartupInfo - logging.log_file: '/home/pengx/APM/apm-agent.log' (source: Java System Properties)
SpringBoot的启动日志:
2018-08-22 14:12:26.805 INFO 7859 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '/springbootTest'
这个 context path 即是 http://192.168.50.6:8080/springbootTest/welcome 中间的 context path
去掉elasticapm.properties,然后启动tomca, tomcat/logs/catalina.out日志记录:
2018-08-22 16:30:04.153 [main] WARN co.elastic.apm.impl.ElasticApmTracerBuilder - Missing required value for configuration option service_name
2018-08-22 16:30:04.916 [main] INFO co.elastic.apm.configuration.StartupInfo - Starting Elastic APM 0.6.0 on Java 1.8.0_161 (Oracle Corporation) Linux 4.15.0-32-generic
22-Aug-2018 16:30:05.825 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.5.32
22-Aug-2018 16:30:05.827 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Jun 20 2018 19:50:35 UTC
22-Aug-2018 16:30:05.828 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 8.5.32.0
22-Aug-2018 16:30:05.831 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
22-Aug-2018 16:30:05.831 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 4.15.0-32-generic
22-Aug-2018 16:30:05.831 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
22-Aug-2018 16:30:05.832 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/lib/jvm/java-8-oracle/jre
22-Aug-2018 16:30:05.832 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_161-b12
22-Aug-2018 16:30:05.832 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
22-Aug-2018 16:30:05.832 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /home/pengx/apache-tomcat-8.5.32
22-Aug-2018 16:30:05.832 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /home/pengx/apache-tomcat-8.5.32
22-Aug-2018 16:30:05.832 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/home/pengx/apache-tomcat-8.5.32/conf/logging.properties
22-Aug-2018 16:30:05.832 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
22-Aug-2018 16:30:05.833 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
22-Aug-2018 16:30:05.833 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
22-Aug-2018 16:30:05.833 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
22-Aug-2018 16:30:05.833 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -javaagent:/home/pengx/APM/apm-agent-0.6.0/elastic-apm-agent-0.6.0.jar
22-Aug-2018 16:30:05.833 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
22-Aug-2018 16:30:05.833 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/home/pengx/apache-tomcat-8.5.32
22-Aug-2018 16:30:05.833 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/home/pengx/apache-tomcat-8.5.32
22-Aug-2018 16:30:05.833 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/home/pengx/apache-tomcat-8.5.32/temp
22-Aug-2018 16:30:05.834 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]