微服务应用性能如何?APM监控工具让你一览无余( 二 )
apm-sever -e
- 在Kibana中检测APM Server是否启动成功 , 访问地址:http://localhost:5601/app/kibana#/home/tutorial/apm
文章插图
SpringBoot集成APM AgentJava应用集成APM Agent的方式有三种 , 我们使用最简单的方式 , 直接在应用中集成 。
- 在pom.xml中添加相关依赖;
co.elastic.apm apm-agent-attach1.17.0
- 在应用启动类的main方法中添加Elastic APM的Attach API;
@SpringBootApplicationpublic 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 = "http://kandian.youth.cn/remoteListAll", method = RequestMethod.GET)@ResponseBodypublic CommonResult remoteListAll() {//模拟耗时操作ThreadUtil.sleep(1, TimeUnit.SECONDS);//远程调用获取数据String response = HttpUtil.get("http://localhost:8088/brand/listAll");JSONObject jsonObject = new JSONObject(response);JSONArray data = http://kandian.youth.cn/index/jsonObject.getJSONArray("data");List brandList = data.toList(PmsBrand.class);return CommonResult.success(brandList);}}
- 发现完全可以 , Elastic APM完全可以取代Sleuth+Zipkin来做微服务的请求链路跟踪了;
- 无边界办公——WebDAV文件共享服务构建
- 好用的5部5G中端机,荣耀X10上榜,低价高性能太给力
- 苹果服务业务也赚钱:第四季度仍将保持两位数增速
- Nginx服务器屏蔽与禁止屏蔽网络爬虫的方法
- 阿里云数智服务创新挑战赛落幕 南京大学夺冠
- 企业建站使用服务器好还是虚拟主机好?
- 买手机不能忽视售后,OPPO贴心打造“无忧式”服务
- 高性能需求用户首选,LMPDA双USB-C快充线评测
- 天上不会掉馅饼,马云开始“收网了”,此前免费服务如今开始收费
- 拉勾许单单:招聘的未来是从信息黄页模式到服务模式