- 修改配置文件
apm-server.yml
,修改下Elasticsearch的连接地址即可;
output.elasticsearch:
hosts: [“localhost:9200”]
- 使用如下命令启动APM Server即可,启动成功APM Server将在
8200
端口运行;
apm-sever -e
- 在Kibana中检测APM Server是否启动成功,访问地址:http://localhost:5601/app/kibana#/home/tutorial/apm
SpringBoot集成APM Agent
Java应用集成APM Agent的方式有三种,我们使用最简单的方式,直接在应用中集成。
- 在
pom.xml
中添加相关依赖;
co.elastic.apm
apm-agent-attach
1.17.0
- 在应用启动类的
main
方法中添加Elastic APM的Attach API;
@SpringBootApplication
public class MallTinyApplication {
public static void main(String[] args) {
ElasticApmAttacher.attach();
SpringApplication.run(MallTinyApplication.class, args);
}
}
- 在
resource
目录下添加Elastic APM的配置文件elasticapm.properties
;
配置服务名称
service_name=mall-tiny-apm
配置应用所在基础包
application_packages=com.macro.mall.tiny
配置APM Server的访问地址
server_urls=http://localhost:8200
- 在Kibana中检测APM Agent是否启动成功,访问地址:http://localhost:5601/app/kibana#/home/tutorial/apm
查看性能监控信息
- 打开监控面板以后,可以发现我们的
mall-tiny-apm
服务已经存在了;
- 多次调用应用接口,即可查看到应用性能信息;
- 打开某个
Transaction
查看详情,我们可以看到连SQL执行耗时信息都给我们统计好了;
- 不仅如此,打开执行查询的
Span
查看详情,连SQL语句都给我们收集好了;
- 在项目中添加一个有远程调用接口,看看能不能收集到请求调用链路;
/**
-
品牌管理Controller
-
Created by macro on 2019/4/19.
*/
@Api(tags = “PmsBrandController”, description = “商品品牌管理”)
@Controller
@RequestMapping(“/brand”)
public class PmsBrandController {
@ApiOperation(“远程调用获取所有品牌信息”)
@RequestMapping(value = “/remoteListAll”, method = RequestMethod.GET)
@ResponseBody
public CommonResult<List> remoteListAll() {
//模拟耗时操作
ThreadUtil.sleep(1, TimeUnit.SECONDS);
//远程调用获取数据
String response = HttpUtil.get(“http://localhost:8088/brand/listAll”);
JSONObject jsonObject = new JSONObject(response);
JSONArray data = jsonObject.getJSONArray(“data”);
List brandList = data.toList(PmsBrand.class);
return CommonResult.success(brandList);
}
}
- 发现完全可以,Elastic APM完全可以取代Sleuth+Zipkin来做微服务的请求链路跟踪了;
- 使用我们之前
springcloud-learning
中的微服务调用案例,也是可以进行请求链路跟踪的;
写在最后
学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!
最后再分享的一些BATJ等大厂20、21年的面试题,把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。
Mybatis面试专题
MySQL面试专题
并发编程面试专题
、21年的面试题,把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。
[外链图片转存中…(img-qOhw0c1C-1714807383475)]
Mybatis面试专题
[外链图片转存中…(img-t6uqbG0R-1714807383475)]
MySQL面试专题
[外链图片转存中…(img-pWOPgP4G-1714807383476)]
并发编程面试专题