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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 快速学习实操讲解:微服务全链路调用监控(一)

开发者学堂课程【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)管理后台监控页面


相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
相关文章
|
3月前
|
Kubernetes 监控 API
微服务从代码到k8s部署应有尽有系列(十二、链路追踪)
微服务从代码到k8s部署应有尽有系列(十二、链路追踪)
|
3月前
|
消息中间件 Kubernetes Kafka
微服务从代码到k8s部署应有尽有系列(十一、日志收集)
微服务从代码到k8s部署应有尽有系列(十一、日志收集)
|
消息中间件 分布式计算 搜索推荐
【KafkaStream】微服务学习笔记十一:流式计算概述&KafkaStream入门
【KafkaStream】微服务学习笔记十一:流式计算概述&KafkaStream入门
444 0
【KafkaStream】微服务学习笔记十一:流式计算概述&KafkaStream入门
|
存储 缓存 移动开发
别催更啦!手淘全链路性能优化下篇--容器极速之路
历时1年,上百万行代码!首次揭秘手淘全链路性能优化(上)我们重点介绍了手淘在性能优化中的一些实践和思路,主要集中在原生的代码的优化,这次,我们将继续分享在手淘容器化页面如 H5 及 Weex 相关的优化实践。
别催更啦!手淘全链路性能优化下篇--容器极速之路
|
弹性计算 运维 监控
【最佳实践】《微服务架构日志采集运维管理》手把手实操步骤与常见问题
根据阿里云《微服务架构日志采集运维管理》最佳实践文档实践步骤复现应用搭建的过程,同时总结归纳部分在应用搭载过程中遇见的问题与解决方案。
|
消息中间件 运维 监控
实操讲解:微服务运行状态监测(一)|学习笔记
快速学习实操讲解:微服务运行状态监测(一)
568 0
实操讲解:微服务运行状态监测(一)|学习笔记
|
消息中间件 运维 监控
微服务全生命周期稳定性实践(二)| 学习笔记
快速学习微服务全生命周期稳定性实践。
267 0
微服务全生命周期稳定性实践(二)| 学习笔记
|
消息中间件 弹性计算 运维
微服务全生命周期稳定性实践(一)| 学习笔记
快速学习微服务全生命周期稳定性实践。
240 0
微服务全生命周期稳定性实践(一)| 学习笔记
|
SQL 监控 Java
实操讲解:微服务全链路调用监控(二)|学习笔记
快速学习实操讲解:微服务全链路调用监控(二)
238 0
实操讲解:微服务全链路调用监控(二)|学习笔记
|
监控 网络协议 安全
微服务架构的常见问题和解决思路|学习笔记
快速学习微服务架构的常见问题和解决思路
300 0
微服务架构的常见问题和解决思路|学习笔记