带你读《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订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
相关文章
|
10月前
|
人工智能 自然语言处理 搜索推荐
2025金融行业Agent案例全场景盘点:银行证券保险实战案例+落地解析(含实在Agent标杆实践)
本文系统梳理银行、证券、保险三大领域金融Agent标杆案例,整合实在智能等头部厂商实战经验,覆盖应用场景、技术路径与落地成效,全面解析从运营提效到智能决策的完整解决方案,助力金融机构实现可落地的智能化升级。
4170 156
|
Java Linux 测试技术
JMeter 介绍与安装
Apache JMeter 是一款基于Java的开源性能和负载测试工具,常用于测试Web应用、Web服务、数据库及其他网络服务的性能。它具备跨平台特性,支持Windows、Mac及Linux系统,并可通过插件进行扩展。JMeter不仅能模拟大量用户访问以测试服务器承压能力,还适用于接口测试,支持分布式部署与UI及命令行操作模式。
|
数据采集 搜索推荐 算法
使用Java编写高效的搜索引擎算法
使用Java编写高效的搜索引擎算法
|
人工智能
写歌词的技巧和方法:打造完美歌词结构,妙笔生词AI智能写歌词软件
写歌词的技巧包括:开头吸引人,主体逻辑清晰,结尾画龙点睛。使用《妙笔生词智能写歌词软件》的AI功能,如智能写词、押韵优化等,可助你克服创作瓶颈,打造完美歌词结构,适用于民谣、摇滚、流行等多种风格。
WK
|
机器学习/深度学习 算法
神经网络的反向传播是什么
反向传播(Backpropagation)是用于训练神经网络的一种关键算法,其目标是通过计算损失函数关于网络参数的梯度来优化这些参数,从而提升网络性能。该算法包括前向传播和反向传播两个阶段:前者计算预测结果与损失值,后者利用链式法则逐层计算梯度以更新权重和偏置。作为深度学习中最常用的优化方法之一,反向传播广泛应用于多种神经网络模型中,通过不断迭代改进模型的预测准确性和泛化能力。
WK
1126 5
|
人工智能 算法 搜索推荐
AI技术在医疗行业的应用与未来展望
传统医疗模式难以满足日益增长的医疗需求,而人工智能技术的快速发展为医疗行业带来了新的希望。本文将探讨人工智能在医疗行业的应用现状及未来展望,分析了AI技术在医疗诊断、药物研发、病例分析等方面的重要作用,并展望了AI技术在医疗行业未来的发展趋势。
475 26
|
存储 监控 安全
在自动化测试环境中,如何确保测试数据的安全性和隐私性
在自动化测试环境中,如何确保测试数据的安全性和隐私性
740 0
|
移动开发 前端开发 Java
前后端分离架构模式讨论:要前后端分离,不要前后端分裂
前后端分离架构模式讨论:要前后端分离,不要前后端分裂
900 11
|
算法 Java
Java将16进制的字符串转换为10进制数的方法
【6月更文挑战第27天】Java将16进制的字符串转换为10进制数的方法
3276 0
|
PHP Python
基于Python中docx与docxcompose批量合并多个Word文档文件并逐一添加分页符
基于Python中docx与docxcompose批量合并多个Word文档文件并逐一添加分页符
879 1

热门文章

最新文章