3.5.10.APM
创作人:胡征南
审稿人:杨振涛
Elastic APM
应用程序性能管理(Application Performance Management)简称 APM。主要功能为监控和管理软件应用程序性能和可用性。
Elastic APM 是一款基于Elastic 技术栈的免费及开放的性能监控系统。用于实时监控软件服务和应用程序的各项性能指标,如:请求访问的各项指标、访问耗时、数据库查询、缓存调用、外部 HTTP 请求等。便于开发人员快速排查和修复各种性能问题。
Elastic APM 也会自动采集各种系统异常。开发人员可以通过追踪异常的程序栈,识别系统异常发生的时间和次数。
自动采集的系统指标也是 Elastic APM 一个非常重要的数据源。采集维度主要包括,宿主机级别和服务代理(Agent)级别,如:使用 Java 语言系统编写的应用程序的 JVM 指标,Go 语言运行环境的运行指标等。
Elastic APM 由4个组件组成:APM 代理、APM 服务端、Elasticsearch 和 Kibana。
APM Agent
APM Agent 为通过与应用服务相同的语言编写的开源类库。通过按照其他应用程序服务一样安装代理。安装完成之后,即可通过代理收集各项应用程序指标和运行时异常。收集的数据将在
本地缓存较短时间后发送至 APM Server。
支持的语言主要包括:Go、Java、.NET、Node.js、Python、Ruby、JavaScript。
APM Server
APM Server 是一款收集 APM Agent 数据、可独立部署的开源应用程序。APM Server 使得代理变得轻量级、防范安全风险、并提高了 Elastic 技术栈的跨语言能力。APM Server 将通过
APM Agent 收集的数据进行验证、处理后存入对应的 Elasticsearch 索引。经过几秒种后,就可以通过 Kibana APM 应用观测到可视化后的应用程序性能数据了。
Elasticsearch
Elasticsearch 是一款高度可伸缩的全文检索和分析引擎。用于近实时存储、搜索和分析大量数据。在 Elastic APM 中,Elasticsearch 用于存储和聚合性能监控指标。
Kibana
Kibana 是一款将 Elasticsearch 数据进行分析和可视化的免费及开放的数据分析平台。用于对检索、展示、操作 Elasticsearch 中存储的数据。
APM术语
Service
在 APM agent 配置中进行设置,以将特定的 APM agent 组标识为单个服务,这是一种逻辑上标识一组事务的方法。
Transaction
组成一个服务的请求和响应,例如登录 API 调用,每个调用由单独的 span 组成。
Span
事务中的单个事件,例如方法调用,数据库查询或缓存插入或检索,即需要花费时间才能完成的任何事件。
Erorrs
具有匹配的异常或日志消息的异常组。
Trace
代表请求的整个过程 。
它们之间的关系可以用如下的图来表示:
分布式 Tracing
当请求从一个微服务流向另一个微服务时,追踪器添加逻辑以创建唯一的追踪识别代码, 跨度id
《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.10.APM (中) https://developer.aliyun.com/article/1228391