调用链路上千条,如何观测 Nacos 的运行状态

本文涉及的产品
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: 随着近年来微服务体系发展,微服务上下游链路的越来越复杂,在阿里云的线上实践场景中,我们发现使用微服务架构的公司的业务动辄会出现上千条调用链路,排查问题代价巨大。在这种背景下,阿里云微服务引擎(MSE)推出了 Nacos 托管产品,大幅提升可观测性,降低排查问题成本,本文将全面介绍 Nacos 可观测性体系。

背景


随着近年来微服务体系发展,微服务上下游链路的越来越复杂,在阿里云的线上实践场景中,我们发现使用微服务架构的公司的业务动辄会出现上千条调用链路,排查问题代价巨大。

在这种背景下,阿里云微服务引擎(MSE)推出了 Nacos 托管产品,大幅提升可观测性,降低排查问题成本,本文将全面介绍 Nacos 可观测性体系

image.png

图:微服务上下游错综复杂的调用关系


Nacos可观测能力概述


可观测性(Observability)是帮助微服务稳健运行的重要一环,是指系统可以由其外部输出推断其内部状态的程度。“我们的微服务系统是否还是正常的?”,“微服务上下游调用的体验是否符合预期?”,“我们如何提前主动发现微服务系统的风险?”。

如下图所示,让用户对微服务有更强把控力,我们在设计Nacos可观测性的时候,着重考虑了如下两点:

  • 监控内容方面:我们将服务发现系统、配置管理系统、底层的JVM、操作系统等个核心系统的各项指标进行了提炼和展示;
  • 交互设计方面:我们采用了业界主流的Grafana大盘作为默认的可观测性展示方案,并且支持了用户将我们提供的大盘链接嵌入自定义的运维平台、以及获取各项指标的详细数据的需求。

image.png

图:Nacos的可观测性的设计思路


在临近双十一之际,我们已将上述Nacos的增强可观测性体系全面上线


可观测性能力详情


在Nacos的增强观测能力建设中,我们构建了7个表现力丰富的大盘,并且建设了相关的告警系统。另外,为了让用户能够方便地将微服务的大盘嵌入业务方的业务平台,我们还为用户们透出了可嵌入的url和详细采集数据。

7个大盘分别为业务概览大盘、注册中心大盘、配置中心大盘、推送轨迹大盘、连接数大盘、jvm监控大盘、资源大盘,它们的详细信息分别如下:


业务概览

为了让用户快速看到当前业务的核心指标,我们将阿里巴巴集团客户和云上客户们最关注的指标进行整理和设计,统一抽象成为了"概览"大盘。

在该大盘中,用户可以查看到如下信息:

  • 概览区域,可查看引擎的节点数、配置数、服务提供者数、每秒查询数、每秒操作数和连接数等信息;
  • 当某项指标达到或者超出一般水位之后,相关的指标颜色会变成红色,以提醒用户尽快进行扩容或业务发布处理。
  • 使用量水位区域,用户可以查看到相应指标的使用水位,超出阈值的指标也会变色提醒。

image.png


资源监控

资源监控页签中,我们将注册与配置中心周边的各种资源使用情况全面而准确地展示给用户。我们主要选取了注册配置中心的入口流量、出口流量、内存使用率、CPU使用率、磁盘使用百分比、磁盘读写量、节点个数和Load指标等数据。

在出现业务异常的时候,用户可以方便地定位到该注册与配置中心的系统内部的各种资源使用情况,找到是哪个指标导致了当前业务异常的产生。

image.png


JVM 监控

除此之外,用户可以单击 JVM 监控页签,查看Young GC时间和次数、Full GC时间和次数以及堆内存使用率等数据。方便快速进行GC分析和问题定位。

image.png


注册中心监控

对于注册中心,MSE Nacos也提供了专门的监控页面,主要监测指标包括:

  • 服务发现业务指标:服务数、服务提供者数、服务订阅者数;
  • 服务发现访问量指标:注册中心TPS、QPS、写RT、读RT等数据。

用户可以方便地通过该监控进行各项指标的核对,例如当服务发现业务上出现推送或查询延迟,可以通过RT数据快速定位当前注册中心的相应时间;

在压测场景下,用户也可以通过该大盘进行服务发现压测量级的实时观测。

image.png


配置中心监控

对于配置中心,MSE Nacos同样提供了专门的监控页面,主要监测指标包括:

  • 配置中心主要业务指标:配置数、配置监听者数;
  • 配置中心访问量指标:配置中心TPS、QPS、写RT、读RT等。

在这个大盘下,用户可以进行各项配置管理核心指标的校验,例如当配置管理业务上出现推送配置不及时时,可以通过读写RT指标快速定位当前配置中心的相应时间;

另外,在压测场景下,用户也可以通过该大盘进行配置数、配置监听者数、TPS等指标的实时观测。

image.png


推送监控

推送监控页中,用户可以查看服务推送成功率、服务推送耗时、服务推送TPS和服务推空比例等数据;在出现推送失败问题时,可以快速通过该页面查看到当前注册中心的推送情况。

image.png


连接数

随着越来越多客户选择支持长连接的Nacos-client版本,客户端版本和长连接数量也成为注册与配置中心的重要观测指标。

用户单击连接数监控页签,可以方便地查看到客户端版本数量和长连接数量等数据。

image.png


支持用户侧将大盘嵌入自定义运维平台


为了满足用户们自建微服务运维平台、及时按照组织架构层级反馈底层组件运行情况的需求,我们在此次可观测性升级中,也支持了用户侧将大盘嵌入自定义运维平台。

用户可以点击下图中红框处:

image.png

将会转到其大盘对应的链接

https://g.console.aliyun.com/d/{user_id}-{monitor_id}-n-overview-v1/mse-nacos-overview?refresh=15s&kiosk=tv1&var-clusterId={cluster_id}&orgId={orgId}

其中,该url中{user_id}为用户的阿里云账号id,{monitor_id}为该监控大盘的id,{cluster_id}为该集群的id

用户可以轻松地将此链接嵌入自定义的业务管控系统之中。


用户自行获取指标历史数据功能


用户可以通过点击图中所示的Data按钮,来校验各项指标的历史数据。

image.png

image.png

也可以将历史数据下载至本地进行数据分析。


对注册配置中心可观测性的未来规划


未来 MSE Nacos 将持续更多高阶监控指标配置、服务的变更次数、配置频繁变更次数统计、服务订阅/变更消息队列大小等,便于业务快速定位解决微服务中的问题。

image.png

图:变更最频繁的TopN个配置

image.png

图:变更最频繁的TopN个服务及服务订阅/变更消息队列大小监控

相关文章
|
SQL 存储 数据挖掘
【虚拟机数据恢复】VMware虚拟机文件被误删除的数据恢复案例
虚拟机数据恢复环境: 某品牌R710服务器+MD3200存储,上层是ESXI虚拟机和虚拟机文件,虚拟机中存放有SQL Server数据库。 虚拟机故障: 机房非正常断电导致虚拟机无法启动。服务器管理员检查后发现虚拟机配置文件丢失,所幸xxx-flat.vmdk磁盘文件和xxx-000001-delta.vmdk快照文件还在。服务器管理员在尝试恢复虚拟机的过程中,将原虚拟机内的xxx-flat.vmdk删除后新建了一个虚拟机,并分配了精简模式的虚拟机磁盘和快照数据盘,但原虚拟机内的数据并没有恢复。
【虚拟机数据恢复】VMware虚拟机文件被误删除的数据恢复案例
|
开发框架 .NET Python
分享69个ASP信息管理源码,总有一款适合您
分享69个ASP信息管理源码,总有一款适合您
698 5
|
Web App开发 域名解析 缓存
如何在 Ubuntu 20.04 上安装 Node.js 和 npm
本文我们主要为大家介绍在 Ubuntu 20.04 上安装 Node.js 和 npm 的三种不同的方式。
164295 7
如何在 Ubuntu 20.04 上安装 Node.js 和 npm
Element UI - el-scrollbar 如何隐藏横向滚动条?
Element UI - el-scrollbar 如何隐藏横向滚动条?
928 0
|
Kubernetes Ubuntu Docker
从0开始搞K8S:使用Ubuntu进行安装(环境安装)
通过上述步骤,你已经在Ubuntu上成功搭建了一个基本的Kubernetes单节点集群。这只是开始,Kubernetes的世界广阔且深邃,接下来你可以尝试部署应用、了解Kubernetes的高级概念如Services、Deployments、Ingress等,以及探索如何利用Helm等工具进行应用管理,逐步提升你的Kubernetes技能树。记住,实践是最好的老师,不断实验与学习,你将逐渐掌握这一强大的容器编排技术。
2178 1
|
存储 Kubernetes Cloud Native
云原生|kubernetes|etcd集群详细介绍+安装部署+调优
云原生|kubernetes|etcd集群详细介绍+安装部署+调优
3211 1
|
自然语言处理 并行计算 数据可视化
免费开源法律文档比对工具:技术解析与应用
这款免费开源的法律文档比对工具,利用先进的文本分析和自然语言处理技术,实现高效、精准的文档比对。核心功能包括文本差异检测、多格式支持、语义分析、批量处理及用户友好的可视化界面,广泛适用于法律行业的各类场景。
575 1
|
机器学习/深度学习 人工智能 自然语言处理
LLMs 入门实战系列大全:LLMs应用、领域大模型介绍、大模型常见面经汇总
LLMs 入门实战系列大全:LLMs应用、领域大模型介绍、大模型常见面经汇总
LLMs 入门实战系列大全:LLMs应用、领域大模型介绍、大模型常见面经汇总
|
缓存 监控 算法
Python性能优化面试:代码级、架构级与系统级优化
【4月更文挑战第19天】本文探讨了Python性能优化面试的重点,包括代码级、架构级和系统级优化。代码级优化涉及时间复杂度、空间复杂度分析,使用内置数据结构和性能分析工具。易错点包括过度优化和滥用全局变量。架构级优化关注异步编程、缓存策略和分布式系统,强调合理利用异步和缓存。系统级优化则涵盖操作系统原理、Python虚拟机优化和服务器调优,需注意监控系统资源和使用编译器加速。面试者应全面理解这些层面,以提高程序性能和面试竞争力。
230 1
Python性能优化面试:代码级、架构级与系统级优化
|
消息中间件 测试技术 领域建模
DDD - 一文读懂DDD领域驱动设计
DDD - 一文读懂DDD领域驱动设计
44108 6

热门文章

最新文章