You need to enable JavaScript to run this app.
导航
全栈观测概述
最近更新时间:2024.07.19 11:13:17首次发布时间:2024.07.19 11:13:17

云原生全栈观测使用应用零侵入技术,高性能采集应用层、网络层、内核层的性能指标、接口调用和内核事件等观测数据用于业务的故障排查。本文介绍全栈观测的架构、优势以及适用场景。

说明

该功能目前 免费公测 中,欢迎试用。

云原生全栈观测介绍

云原生全栈观测基于 eBPF 实现的高性能、无侵入、全栈化的数据采集,全面支持内核级别的深度观测能力,并配合高性能的应用协议解析模块,自动解析 HTTP(S)、DNS、gRPC Unary/Streaming 等应用协议,集合 Kubernetes 的元数据,实现资源层、网络层、应用层代码零侵入的全栈观测体验。同时基于 eBPF 的数据采集,构建拓扑串联打通可观测性的孤岛,建立以拓扑为核心的交互体验,纵向以 Kubernetes 原生资源为索引关联 Metrics、Logs、Events、Tracing 等可观测数据,横向通过流量串联打通各个可观测性数据孤岛。

云原生全栈观测具备以下特点:

  1. 基于 eBPF 实现高性能、无侵入、全栈化数据采集: 云原生全栈观测基于 eBPF 实现零代码侵入的全栈式数据采集,全面支持内核级别的深度可观测能力,并配合高性能的应用层协议解析模块,自动解析 HTTP(S)、DNS、gRPC Unary/Streaming、Redis、PG、MySQL 等应用层协议 ,实现资源层、网络层、应用层代码零侵入的全栈观测体验。

  2. 基于拓扑串联打通可观测性数据孤岛: 云原生全栈观测在传统监控、可观测性观测模型之上,构建了以拓扑为核心的交互体验,纵向以 Kubernetes 原生资源为索引下钻串联 Metrics、Logs、Events、Tracing、Profiling 等可观测数据,横向通过流量(Flow)、Trace 串联打通各个可观测性数据孤岛。

云原生全栈观测架构

云原生全栈观测在传统容器基础观测能力之上,基于 eBPF 实现全栈式采集能力增强,深入内核采集运行时、存储层、网络层、应用层等观测数据,并结合高性能的应用层协议解析模型,实现自顶向下的观测能力全面覆盖,并将可观测数据自动与 Kubernetes 元数据进行关联,以标准化语义打通流量与资源之间的串联关系。

Microscope Agent 是云原生全栈观测的核心数据面组件,支持 Collection 插件拓展机制,以插件化的方式拓展采集能力,自顶向下,全面覆盖用户态框架及系统库、网络层、存储层、运行时等。

典型应用场景

服务响应慢

服务响应慢的问题在云原生环境中很常见,导致该问题的原因很多,在排障过程中,一般先排查是应用还是网络问题,确定问题域后,在通过日志/事件或内核分析来确定根因。

  • 定位发现服务响应时间长的资源: 收到告警或报障、或者通过资源列表查看排序时,发现某资源(Deployment、StatefulSet、Pod)的服务响应时间高。
  • 查看资源详情中该资源的接口性能: 查看资源服务的接口的应用性能,将问题范围缩小到具体接口。
  • 查看指标,定位问题域 查看服务请求、错误与异常、服务延迟、网络通信等各类指标,梳理各指标的关联,确定问题域(应用 or 网络)。
  • 查看单次调用记录: 在资源详情或拓扑详情中,查看客户端视角和服务端视角的单次调用记录,查看调用的 request/response Header、Body 以及其他元数据,结合内核调用进一步确认问题域。
  • 查看日志/事件,确定根因: 在容器服务的日志中心和事件中心查看对应资源和问题域的日志/事件,定位根因,排除故障。

服务拓扑感知

随着当下技术架构、部署架构越来越复杂,除了发生问题后的定位棘手外,影响面分析也面临很大的挑战,有时一张拓扑图就非常必要。

  • 服务关系感知: 在异常定位的过程中,需要了解流量入口在哪里,有哪些工作负载,每个工作负载的运行状态如何,是否有内外部组件依赖等,才能了解故障影响范围,采取对应的排障动作,可见有一张服务拓扑对异常定位有很大的推动作用。
  • 依赖分析和影响面分析: 异常定位中常见的一种情况是问题出现在下游依赖,当这些依赖没有足够的可观测性时会导致无法进一步分析下去,所以从服务拓扑中进行上下游依赖分析就非常重要。通过应用调用和网络通信的性能指标将上下游用调用关系关联起来,形成调用图,并能够查看任意上下游之间的依赖和指标变化,就能够快速分析上下游依赖是否存在问题。