基于Prometheus构建⼀体化监控平台的探索与实践 刘恺 阿⾥云云原⽣可观测团队⾼级研发⼯程师 PART1/PART2/PART3/ 云原⽣技术演进带来的痛点 阿⾥云可观测体系介绍 阿⾥云⼀站式监控平台的实践 PART1 云原⽣技术演进带来的痛点 云原⽣发展带来的指标可观测挑战与痛点 •观测对象种类多,覆盖与打通成难题 •观测对象动态化,实时监控困难 •故障响应缓慢,运维协同敏捷要求⾼ •可观测系统搭建/维护成本⾼ 指标、链路、⽇志可观测数据融合 业务层 应⽤层 中间件层 系统层 PART2 阿⾥云可观测体系介绍 阿⾥云托管版Prometheus Prometheus已经成为指标观测的事实标准,助业务快速发现和定位问题,减轻故障给业务带来的影响 •数据孤岛 多维数据之间难以有效关联 •存在观测盲区 数据的采集集中在中间件层和系统层,业务层⽆有效观测⽅式 •稳定性受限 内存、CPU消耗⾼,复杂查询场景频繁崩溃 •可维护性较差 原⽣适合单⼀K8s集群,多云、⾃建IDC场景难以统⼀接⼊ 阿⾥云托管Prometheus完全兼容指标观测的事实标准Prometheus,结合托管版Grafana、智能告警等⼦产品提供⼀站式指标观测平台 •强⼤的数据关联能⼒✅ 通过标签、元数据等信息⽀持各层数据之间的关联,通过Trace/Log/Metrics之间的转换能⼒,⽀持多维数据之间的串联,消除数据孤岛 •全栈覆盖的观测能⼒✅ 结合应⽤监控、链路追踪、业务监控等⼦产品,在各层均提供了观测⽅案 •稳定性全⾯增强✅ 引⼊InfluxDB,并通过DAG执⾏优化、算⼦下推、Downsample、Downseries,提升复杂、⼤时间跨度查询的性能 •0运维成本✅ 查询存储组件中⼼化部署;Agent部署在⽤户侧,对K8s、ECS等环境都提供了接⼊⽅案 阿⾥云⼀站式可观测平台:ACOS PART3 阿⾥云⼀站式监控平台的实践 阿⾥云⼀站式可观测平台:产品架构 业务层 应⽤层 中间件层 系统层 •业务监控 •⽇志监控 •前端监控 •应⽤监控 •eBPF监控 •Opentelemetry等 •容器监控 •云服务监控 •Exporters 业务层观测 Push Pull Streaming Consume Consume •⽀持指标⾃定义 •⽀持⾃定义Trace/Log/Metrics的转化 •业务⽆侵⼊ •⽀持关联基础设施监控 MetricsTracesLogs Application 应⽤性能观测:总览 应⽤:微服务架构、多语⾔、多协议 挑战1:微服务间调⽤次数指数增⻓,性能问题难以定位 Kubernetes 容器 操作系统、⽹络、硬件 挑战2:基础设施能⼒下沉,应⽤层和运⾏时环境⽆法⾃顶向下形成关联 挑战3:多种观测⼯具⽆法有效融合 应⽤性能观测:APM产品集成 ApplicationCode JaegerSDK ApplicationCode ARMSAgent PrometheusGateway •⽀持代码级别的根因定位 •开箱即⽤的Grafana⼤盘 •⽀持线程剖析、⽅法栈采集、智能诊断等能⼒ •⽀持Opentelemetry、Jaeger、Zipkin等多种开源协议 •⽀持Tracing、ContinuousProfiling ApplicationCode OTelSDK eBPF介绍 应⽤性能观测:eBPF⽆侵⼊观测⽅案 extendedBerkeleyPacketFilter,运⾏在Linux内核中的虚拟机,可以加载到指定的HOOK点并获取运⾏时的上下⽂。 •⽆侵⼊:成本低,业务⽆需修改代码 •动态可编程:⽆需重启应⽤,动态下发采集脚本 •⾼性能:JIT编译成机器码执⾏ •⾼安全性:内核级别的验证器 编译、加载eBPF程序 监听内核事件 识别⽹络协议 聚合指标 应⽤性能观测:eBPF⽆侵⼊观测⽅案 远端存储 MetricsTrace 聚合模块元数据关联 进程指标应⽤层指标⽹络指标 ⽤户态内核态 探针侧 ⾃定义指标 eBPF模块 Events connectcloseacceptreadwritetcp_drop ControlEvents DataEvents StateEvents ConnTrackerConnTracker RequestDataBuffers ConnTracker RequestDataBuffers eDataBuffe rs Respons eDataBuffe rs RInesgpreosnssDataStream Egress DataStream ParseProtocols ParsePacket FindBoundary RequestData MatchReqResp… ResponseData BPFBPFBPF tcp_retransmit 应⽤性能观测:eBPF⽆侵⼊观测⽅案 •通过⽹络流量分析应⽤层协议,提供多语⾔的统⼀监控 •架构感知,提供⾃动服务发现能⼒,⽹络拓扑能⼒ •内核协议栈全覆盖,补⻬APM的盲点 •基于eBPF技术,零代码开销,低性能损耗 Contexts Application JVM VolumeManager BlockDevice userspacekernelspace UserDatasRuntimes SystemLibraries SharedLibraries UserLibraries/SDKs ClassBytecode VFS FileSystems 仅eBPF⽀持 SystemCallInterface SocketTCP/UDP 仅APM⽀持 Scheduler IP Ethernet DeviceDrivers eBPF&APM均⽀持 Virtual Memory 中间件层观测:⼀安装Exporters •⽀持20+开源主流中间件Exporters •⽀持⼀键安装并⾃动配置抓取规则 •⽀持⾃动配置告警规则 •⽀持⾃动同步Grafana⼤盘 中间件层观测:云服务集成 •⽆需占⽤客⽤资源额外部署Exporter •显著提升指标的⼴度和深度 •⽀持主流20+云服务的接⼊ •⽀持⾃动配置告警规则 •⽀持⾃动同步Grafana⼤盘 基础设施层观测:多云ECS/线下IDC应⽤组件 应⽤场景:业务突发异常场景下的可观测能⼒实践 告警 ⻚⾯打开缓慢 业务监控⼤盘 成交率下降 应⽤监控⼤盘 应⽤⽇志&Trace关联 中间件监控⼤盘 根因定位 Thanks