由于公司已经使用了EFK一整套之后,就没有再使用skywalking,直接使用Elastic APM的追踪,但是Elastic APM 有些框架不支持分布式追踪需要自己埋点。
埋点的方式有三种
1. 扩展 apm-agent 好处 代码无入侵,版本随意更新
2. 结合spring切面+注解方式 好处 代码不耦合,但是要注意版本升级
3.直接代码埋点 代码入侵
官网文档API:
Public API | APM Java Agent Reference [1.x] | Elastic
我这边的例子先用3的方式,这样子比较直观。实际项目中使用,可以扩展APM的agent 或者用切面+注解都可以
引入maven依赖
<dependency>
<groupId>co.elastic.apm</groupId>
<artifactId>apm-agent-api</artifactId>
<version>1.30.1</version>
</dependency>
代码埋点 例子是使用了 Reactor的方式,这种方式APM agent方式不支持 需要自己扩展。
常用的框架其实APM都支持 只要启动的时候添加参数打开就行
-Delastic.apm.enable_e