这个监控工具厉害了!微服务应用的性能在它面前一览无余

  • 修改配置文件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(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。

蚂蚁金服三面直击面试官的Redis三连,Redis面试复习大纲在手,不慌

Mybatis面试专题

蚂蚁金服三面直击面试官的Redis三连,Redis面试复习大纲在手,不慌

MySQL面试专题

蚂蚁金服三面直击面试官的Redis三连,Redis面试复习大纲在手,不慌

并发编程面试专题

、21年的面试题,把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。

[外链图片转存中…(img-qOhw0c1C-1714807383475)]

Mybatis面试专题

[外链图片转存中…(img-t6uqbG0R-1714807383475)]

MySQL面试专题

[外链图片转存中…(img-pWOPgP4G-1714807383476)]

并发编程面试专题

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 29
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值