微服务应用性能如何?APM监控工具让你一览无余( 二 )

  • 使用如下命令启动APM Server即可 , 启动成功APM Server将在8200端口运行;
  • apm-sever -e
    • 在Kibana中检测APM Server是否启动成功 , 访问地址:http://localhost:5601/app/kibana#/home/tutorial/apm

    微服务应用性能如何?APM监控工具让你一览无余文章插图
    SpringBoot集成APM AgentJava应用集成APM Agent的方式有三种 , 我们使用最简单的方式 , 直接在应用中集成 。
    • 在pom.xml中添加相关依赖;
    co.elastic.apmapm-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

    微服务应用性能如何?APM监控工具让你一览无余文章插图
    查看性能监控信息
    • 打开监控面板以后 , 可以发现我们的mall-tiny-apm服务已经存在了;

    微服务应用性能如何?APM监控工具让你一览无余文章插图
    • 多次调用应用接口 , 即可查看到应用性能信息;

    微服务应用性能如何?APM监控工具让你一览无余文章插图
    • 打开某个Transaction查看详情 , 我们可以看到连SQL执行耗时信息都给我们统计好了;

    微服务应用性能如何?APM监控工具让你一览无余文章插图
    • 不仅如此 , 打开执行查询的Span查看详情 , 连SQL语句都给我们收集好了;

    微服务应用性能如何?APM监控工具让你一览无余文章插图
    • 在项目中添加一个有远程调用接口 , 看看能不能收集到请求调用链路;
    /** * 品牌管理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来做微服务的请求链路跟踪了;