摘要
当微服务系统越来越庞大,各个服务间的调用关系也变得越来越复杂,需要一个工具来帮忙理清请求调用的服务链路。之前在《Spring Cloud Sleuth:分布式请求链路跟踪》一文中使用的是Sleuth+Zipkin的解决方案,最近发现应用性能监控(Application Performance Monitoring,APM)也可以很好地解决该问题。对比SkyWalking和Elastic APM之后,发现Elastic APM更胜一筹,今天我们来一波Elastic APM的使用实践!
福利 福利 福利 免费领取Java架构技能地图 注意了是免费送
、
免费领取 要的+V 领取
Elastic APM 简介
Elastic APM是基于Elastic Stack构建的应用性能监控(APM)系统。它主要有如下用途:
- 用来实时监控应用性能信息,包括HTTP请求调用时长、数据库查询信息、缓存调用信息和外部的HTTP请求调用信息。有助于我们快速找出并解决性能问题。
- 自动收集应用中未处理的错误和异常,显示异常的堆栈信息,有助于快速定位异常和了解出现频率。
- 度量指标是调试生产系统时的另一个重要信息来源。Elastic APM Agent 会自动收集主机级别的度量指标(比如Java JVM和Go Runtime的指标)。
- 支持分布式请求链路追踪,使你能够在一个视图中分析整个服务架构的性能问题。
相关组件
Elastic APM 包括四大组件: APM Agent, APM Server, Elasticsearch, Kibana。
- APM Agent:以应用程序库的形式提供,负责收集应用运行时的性能监控数据和错误数据,短时间缓存后发送APM Server。
- APM Server:一个独立的组件,负责接收APM Agent中发送