带你读《Elastic Stack 实战手册》之51:——3.5.10.APM (上)

简介: 带你读《Elastic Stack 实战手册》之51:——3.5.10.APM (上)

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。

 

image.png


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

 

代表请求的整个过程 。

 

它们之间的关系可以用如下的图来表示:


image.png

分布式 Tracing

 

当请求从一个微服务流向另一个微服务时,追踪器添加逻辑以创建唯一的追踪识别代码, 跨度id

image.png

image.png

image.png



 

 

image.png


《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.10.APM (中) https://developer.aliyun.com/article/1228391

相关实践学习
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
本场景将自定义告警信息同时分发至多个通知渠道的需求,例如短信、电子邮件及钉钉群组等。通过采用轻量消息队列(原 MNS)的主题模型的HTTP订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
相关文章
|
5月前
|
人工智能 自然语言处理 搜索推荐
2025金融行业Agent案例全场景盘点:银行证券保险实战案例+落地解析(含实在Agent标杆实践)
本文系统梳理银行、证券、保险三大领域金融Agent标杆案例,整合实在智能等头部厂商实战经验,覆盖应用场景、技术路径与落地成效,全面解析从运营提效到智能决策的完整解决方案,助力金融机构实现可落地的智能化升级。
2277 156
|
数据采集 搜索推荐 算法
使用Java编写高效的搜索引擎算法
使用Java编写高效的搜索引擎算法
|
存储 关系型数据库 MySQL
MySQL bit类型增加索引后查询结果不正确案例浅析
【8月更文挑战第17天】在MySQL中,`BIT`类型字段在添加索引后可能出现查询结果异常。表现为查询结果与预期不符,如返回错误记录或遗漏部分数据。原因包括索引使用不当、数据存储及比较问题,以及索引创建时未充分考虑`BIT`特性。解决方法涉及正确运用索引、理解`BIT`的存储和比较机制,以及合理创建索引以覆盖各种查询条件。通过`EXPLAIN`分析执行计划可帮助诊断和优化查询。
342 1
Postman - 设置全局请求 header 信息
Postman - 设置全局请求 header 信息
4738 0
Postman - 设置全局请求 header 信息
|
存储 监控 安全
在自动化测试环境中,如何确保测试数据的安全性和隐私性
在自动化测试环境中,如何确保测试数据的安全性和隐私性
619 0
|
前端开发 JavaScript 数据管理
React Formik入门:简化表单处理的神器——全面掌握Formik在React表单开发中的高效应用与实战技巧
【8月更文挑战第31天】在React应用中,表单处理常常因繁琐而令人头疼。Formik作为一个开源库,专为简化React表单设计,减少冗余代码并提升处理效率。本文介绍Formik的使用方法及其优势,通过示例展示如何安装配置并创建基本表单,帮助开发者轻松应对各种表单需求。
452 0
|
开发工具 Android开发
技术经验分享:Android编译命令m、mm、mmm区别及工程搭建示例
技术经验分享:Android编译命令m、mm、mmm区别及工程搭建示例
1803 0
|
SQL 存储 缓存
hive metastore 3.0介绍
我们说到Hive 3.0.0版本开始,其单独提供了standalone metastore服务以作为像presto等处理引擎的元数据管理中心。
|
安全 Java 编译器
是时候来唠一唠synchronized关键字了,Java多线程的必问考点!
本文简要介绍了Java中的`synchronized`关键字,它是用于保证多线程环境下的同步,解决原子性、可见性和顺序性问题。从JDK1.6开始,synchronized进行了优化,性能得到提升,现在仍可在项目中使用。synchronized有三种用法:修饰实例方法、静态方法和代码块。文章还讨论了synchronized修饰代码块的锁对象、静态与非静态方法调用的互斥性,以及构造方法不能被同步修饰。此外,通过反汇编展示了`synchronized`在方法和代码块上的底层实现,涉及ObjectMonitor和monitorenter/monitorexit指令。
1995 0
|
PHP Python
基于Python中docx与docxcompose批量合并多个Word文档文件并逐一添加分页符
基于Python中docx与docxcompose批量合并多个Word文档文件并逐一添加分页符
664 1

热门文章

最新文章

下一篇
开通oss服务