实操讲解:微服务全链路调用监控(一)|学习笔记

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,182元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 快速学习实操讲解:微服务全链路调用监控(一)

开发者学堂课程【Elasticsearch 实战进阶营实操讲解:微服务全链路调用监控(一)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/899/detail/14318


实操讲解:微服务全链路调用监控(一)


目录

一、微服务全链路概念

二、微服务全链路背景

三、微服务全链路性能优化

四、微服务全链路优势和覆盖范围

五、APM 架构体系介绍

六、Serve 实战配置和启动

七、Agent 实战配置和启动

 

一、微服务全链路监控概要介绍

image.png

1. 概念

在微服务架构下,分布式系统变得日趋复杂,越来越多的组件开始走向分布式化,如微服务、分布式数据库、分布式缓存等,使得后台服务构成了一种复杂的分布式网络,这样一个场景下,对于用户的每一次请求调用,后端执行了多少组件间的调用无法知晓,由于分布式的调用,增加了程序调用异常的错误率,在这样的应用场景下,新的架构技术带来了新的问题。

APM 主要通过从客户端和服务端进行数据采集。其中客户端数据采集方式主要分为主动式探测(俗称“拨测”)和被动式监测。相比主动式的模拟监测,真实用户体验监测可以提供全样本监测数据,避免样本偏差。服务端的数据采集都是被动方式,主要两大技术路径分别是 NPM (网络性能管理)和探针部署。NPM 属于非侵入式的技术,不会对应用性能造成影响,然而不能提供代码及的问题定位;探针部署则反之。 

2. 背景

随着软件开发技术架构的不断演进,采用诸如 TSF 微服务框架开发微服务已经成为一种趋势,然而随着客户业务流量的不断提升,微服务也会遇到性能上的瓶颈,对于系统如果做到高效、稳定保障系统平稳支撑业务增长,是我们需要面对的技术难题。

3.性能优化

(1)降低业务成本。

(2)提升系统的稳定性。

(3)提升用户的体验。

4.优势

(1)背后是 elasticsearch 集群,可承载 PB 级数据,并且大部分的企业都会部署 es 集群,技术和资源共享

(2)elasticsearch 作为最常用的开源日志分析工具,APM 可与日志分析相结合

(3)目前是免费的。属于 elastic basic license 中的基本功能

支持多种语言,监控客户端包括

java/go/python/ruby/nodejs/rail 等

(4)社区还算活跃,版本升级比较快 

5.覆盖范围

(1)终端用户体验

(2)应用架构映射

(3)应用事务的分析

(4)深度应用诊断

(5)数据分析

 

二、APM:微服务全链路实时监控

1.Elastic APM 架构体系

 image.png

APM agent 是一系列开源库,使用与服务器端相同的语言编写,目前支持 node、python、ruby、js,java 和 golang。可以像安装任何其他库一样将它们安装到服务器端中。apm agent 会检测代码并在运行时收集性能数据和错误。此数据可 缓冲一小段时间并发送到 APM 服务器。基于 Java 采集数据,把数据经过组装合并,传到 APM Server 中

APM Server 是一个用 Go 编写的开源应用程序,通常在专用服务器上运行。

它默认侦听端口8200,并通过 JSON HTTP API 从代理接收数据。然后,它根据该数据创建文档并将其存储在 Elasticsearch 中。

Elasticsearch 是一个高度可扩展的开源全文搜索和分析引擎。它允许你快速,近实时地存储,搜索和分析大量数据。Elasticsearch 用于存储APM性能指标并利用其聚合。

Kibana 是一个开源分析和可视化平台,旨在与 Elasticsearch 协同工作。

可使用 Kibana 搜索,查看 Elasticsearch 中存储的数据并与之进行交互。

还可以使用 Kibana 中的专用 APM UI 或可以通过 APM Kibana UI 直接加载的预构建的开源 Kibana dashboard 来可视化 APM 数据。(basic license 就授权了 APM 功能)

 

三、Serve 实战

APM 分为两部分,Agent 和 Server

1.下载及配置

 image.png

(1) 官方下载并且解压 apm serve

#下载

curlhttps://artifacts.elastic.co/downloads/apm-server/apm-server-7.12.0-darwin-x86_64.tar.gz 

#解压

tar xzvf apm-server-7.12.0-darwin-x86_64.tar.gz

#进入

cd apm-server-7.12.0-darwin-x86_64/

(2) Apm-server host:”ip+端口”

(3) 搜索 output.elasticsearch

vim apm-server.yml

output.elasticsearch: hosts: [""]

(4) 配置好用户名和密码

username: "elastic" password: "xxx"

(5) 配置 montioring 监控

#默认式 flase

Montioring.enable:true

2.启动

(1)CMD 进入 bos 窗口 Windows+r 输入 cmd

(2)进入 apm 安装目录下,执行 Apm-server.exe

(3)管理后台监控页面


相关实践学习
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
本场景将自定义告警信息同时分发至多个通知渠道的需求,例如短信、电子邮件及钉钉群组等。通过采用轻量消息队列(原 MNS)的主题模型的HTTP订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
相关文章
|
编译器 开发工具 C++
Qt5.6.3+VS2013环境搭建教程(最后支持XP系统的Qt版本)
Qt5.6.3+VS2013环境搭建教程(最后支持XP系统的Qt版本)
2041 0
Qt5.6.3+VS2013环境搭建教程(最后支持XP系统的Qt版本)
shiro学习之错误 No realms have been configured! One or more realms must be present to execute an authori
shiro学习之错误 No realms have been configured! One or more realms must be present to execute an authori
|
9月前
|
前端开发 JavaScript 开发者
前端项目代码规范工具 (ESLint. Prettier. Stylelint. TypeScript)
前端项目代码规范工具 (ESLint. Prettier. Stylelint. TypeScript)
523 4
|
9月前
|
缓存 NoSQL Java
高并发场景秒杀抢购超卖Bug实战重现
在电商平台的秒杀活动中,高并发场景下的抢购超卖Bug是一个常见且棘手的问题。一旦处理不当,不仅会引发用户投诉,还会对商家的信誉和利益造成严重损害。本文将详细介绍秒杀抢购超卖Bug的背景历史、业务场景、底层原理以及Java代码实现,旨在帮助开发者更好地理解和解决这一问题。
286 12
|
存储 NoSQL 关系型数据库
redis.conf 7.0 配置和原理全解,生产王者必备
redis.conf 7.0 配置和原理全解,生产王者必备
428 0
|
机器学习/深度学习 传感器 数据采集
基于Zernike矩实现亚像素边缘检测附matlab代码
基于Zernike矩实现亚像素边缘检测附matlab代码
|
Java 测试技术 数据安全/隐私保护
华为OD:敏感字段加密
华为OD:敏感字段加密
251 0
|
JavaScript 前端开发
JS javascript 点击鼠标 鼠标事件 获取元素 获取元素Xpath
JS javascript 点击鼠标 鼠标事件 获取元素 获取元素Xpath
317 0
[Linux命令]十五个常用的对文件目录操作的Linux 命令(上)
[Linux命令]十五个常用的对文件目录操作的Linux 命令
|
存储 算法 定位技术
一篇文章带你彻底理解运用栈和队列,超详细千字总结对比!
栈和队列 本章主要介绍并用cpp代码从零实现了栈和队列两个数据结构,同时引出了递归以及栈帧(函数调用)的介绍,以及对栈和队列的相关经典问题的解决,如运算符优先数法、地图四染色、子集划分问题等。 可以转载,但请声明源链接:文章源链接justin3go.com(有些latex公式某些平台不能渲染可查看这个网站)
259 0
一篇文章带你彻底理解运用栈和队列,超详细千字总结对比!