微服务应用性能如何?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来做微服务的请求链路跟踪了;
推荐阅读
- 搭载骁龙888处理器+120W超充 横屏性能旗舰iQOO 7正式发布
- 不单性能一骑绝尘 iQOO 7的这些亮点也值得一提
- 骁龙888领衔 iQOO 7搭载新一代性能“铁三角”
- “性能旗舰”iQOO 7正式发布:感受全感操控3798元起
- 亚马逊终止托管服务:Parler网站下线
- AI战疫、真5G来了,十大最热门科技应用演绎速度与温度
- Git服务器配置错误导致日产汽车源码在网上泄露
- 用户|元旦当天苹果应用消费额超过5.4亿美元 刷新单日消费记录
- 虾米音乐,下个月正式停止服务
- 虾米音乐播放器将于2月5日停止服务,今开启用户资产处理通道