端到端观测分析:从前端负载均衡到后端服务

前言

我们在做系统运维保障的时候,关注从前端负载均衡到后端服务的流量情况是很有必要的,可以了解每个后端服务实例接收的流量大小,这有助于确定资源分配是否合理,能够帮助找出后端服务中的性能瓶颈。同时,当系统出现故障时,如部分用户无法正常访问服务,分析负载均衡到后端服务的流量可以快速确定是负载均衡器的问题还是后端服务的问题(例如:如果负载均衡器到某个后端服务的流量突然中断或者异常下降,而其他后端服务正常,就可以重点排查这个出现问题的后端服务)。

下面我们通过一个实际的例子,来看下我们可以如何通过观测云来进行从前端到后端的问题分析和排查。

观测云

观测云( www.guance.com )是一个统一实时监测平台,它提供全面的系统可观测性解决方案,帮助用户快速实现对云平台、云原生、应用及业务的监控需求。观测云的核心功能包括:基础设施监测,日志采集和分析,用户访问监测(RUM),应用性能监测(APM),服务可用性监测(拨测),安全巡检,智能监控等等。

在这个实际案例中,客户是使用的某专有云的负载均衡,后端配置了云主机做为实例。通过观测云,可以从这几个维度来进行可观测的建设:

  • 通过观测云的 Func 工具( func.guance.com )接入云平台的负载均衡指标,包括实例、监听器、后端服务实例和端口等维度。Func 提供自定义函数功能,允许用户通过编写代码来实现特定的数据处理、转换和接入操作。通过 Func 可以灵活地将外部数据引入观测云的监控体系,例如云平台监控 API。不同的云平台都有自己的监控 API,这些 API 提供了获取云资源监控数据的接口,例如获取服务器的 CPU 使用率、网络流量、存储使用情况等数据。
  • 通过观测云的统一数据采集器 DataKit,安装在云主机环境中,提供如下维度的可观测数据:
    • 多种系统资源的性能指标,如 CPU 使用率、内存占用、磁盘 I/O、网络流量等,还能整合日志、事件等数据,为系统监控提供全面数据支持
    • eBPF 网络数据,能够采集四层、七层网络数据,可监控网络连接、流量、延迟、丢包等指标,分析网络性能问题,还能识别网络中的异常流量和潜在安全威胁
    • 应用性能数据采集,接收链路数据,采集应用程序的性能指标,如响应时间、吞吐量、错误率等,以及分布式链路追踪信息,帮助用户全面了解应用性能状况

分析步骤

有了以上数据之后,我们来看一下如何联动分析和下钻:

1、通过仪表盘做为入口,可以及时了解云平台中负载均衡的流量情况,也包括流量较大的负载均衡的详细信息(负载均衡的 ID、VIP、端口以及后端云主机实例的 IP 和端口信息)。不过需要注意的是,由于云平台的 API 一般有读取限制,因此通过这种方式拉取监控指标,有一定的时间间隔。

2、如果发现有流量较大或者异常的情况,可以直接点击仪表盘的视图,进行跳转,查看详细的 eBPF 网络数据。

观测云支持图表内置关联链接和自定义关联链接,可以实现从当前图表跳转至目标页面,同时也支持自定义,通过模板变量中对应的变量值传送数据信息,实现数据联动。图表链接 - 观测云文档

3、定位到相关的云主机,流量确实不小,接下来进一步分析了该主机相关的应用服务情况,发现有很多报错也就是状态是 error 的链路,并且持续时间都很长。点开某条链路,能够看到相关的 span 调用有上万条,造成了网络的频繁访问。这时候就可以直接把相关的数据转发给研发同学来进一步分析和优化了。

相关推荐
子兮曰3 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰3 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万3 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝3 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
三十而立洋3 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁3 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
AI职业加油站3 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏3 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
汉堡大王95273 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端