指标|爱奇艺微服务监控的探索与实践 选型宝精选阅读( 二 )
我们使用公司服务云提供的日志收集组件Venus(如前所述)和链路跟踪组件Rover(基于Skywalking+Brave)实现该功能 。 实现方案如下图所示 。
本文插图
其中 , 接入固定成本表示为引入相应监控而产生的一次性固定投入 , 包括学习调研 , 二次开发 , 集成适配等成本 。 接入边际成本表示每新增一个微服务或一个监控指标 , 新产生的开发配置成本 。 几种监控方案对比和适用场景如下表所示 。
演进&实践
如上所述 , 我们在微服务监控建设初期尝试了多种监控方案 , 实现了不同场景下的监控需求 , 也遇到了新的问题 。 概括起来 , 有以下几个:
? 缺少对监控项的统一认知和定义
? 重复性埋点配置工作 , 监控成本高
? 各种监控方案简单组合 , 可视化分散 , 报警不统一
? 日志监控 , 报警时效性无保障
比如 , 每新增一个监控指标 , 需要把接入 , 埋点 , 可视化 , 报警 , 从头来一遍 , 随着微服务和指标增加 , 这种重复性工作严重制约了监控体系的推广落地 。 特别是metrics监控 , 指标繁杂 , 维度多变 , 应用广泛 。
为此 , 建设一套监控模型统一 , 接入成本低 , 可视化集中管理 , 报警时效性高 , 监控指标全面的微服务监控体系势在必行 。 下面着重介绍信息流监控系统针对metrics监控的实践 。
本文插图
信息流Metrics监控在Prometheus基础上 , 以构建简单易用的监控系统为目标 , 对Spring Cloud框架进行适配整合和定制开发 。 整体结构如上图 , 我们主要做了以下工作 。
监控模型
监控指标是监控系统的基本对象 , 监控哪些指标 , 如何定义描述这些指标 , 是首要解决的问题 。 我们通过引入指标-维度-数值多维度数据模型 , 对常用监控指标和维度进行梳理和定义 , 形成对监控对象的统一描述和共识 , 为后续实现维度灵活聚合、定义统一的可视化模板和报警模板奠定基础 。
通用指标定义:
通用维度定义:
定制扩展
自动接入&埋点
前期我们尝试了多种监控方案 , 发现能够顺利推广落地的 , 都有一个共同点 , 就是服务接入监控的成本很低 。 最好是不要求应用做任何改动 , 就可以自动接入 , 享受监控系统带来的便利 。 为此我们做了以下工作:
? 每个服务引入sdk自动完成通用指标(Http请求 , JVM指标等)采集 , 并暴露指标拉取端点
? 每个服务自动注册到Eureka注册中心
? Eureka增加Adapter , 提供监控系统可识别的接口方法
? 监控系统从注册中心 , 自动发现要监控的服务实例列表
? 监控系统定期从服务指标端点拉取监控数据
本文插图
声明式方法监控
很多情况下 , 需要对某些业务方法耗时进行监控 , 传统的埋点方式是在方法入口和出口添加监控代码 , 业务代码侵入高 , 开发成本高 。
本文插图
PUSH模式扩展
如前所述 , Prometheus是用PULL模式获取应用埋点数据 , 但是有的场景下PULL模式并不适用(比如短生命周期的任务) , 因此我们基于Prometheus提供的Pushgateway组件 , 实现PUSH模式获取监控埋点数据 。
一种应用场景是 , 实时收集各个服务日志流中的异常信息 。 我们监听日志采集的Kafka消息 , Flink实时解析出服务异常名称 , 将各个服务产生的异常实时推送到监控系统 , 并在Grafana上集中展示 。 基于Pushgateway的异常监控方案及效果图如下 。
推荐阅读
- 爱奇艺|靠综艺内容挣钱,或许还得看芒果TV出招
- 智通财经网|360数科二季度跑赢行业的风险指标隐藏了哪些领先的风控奥秘?
- 天眼|爱奇艺成立海南新公司,注册资本3000万
- 奇艺|爱奇艺投资成立海南超级爱豆文化传媒,注册资本3000万
- 注册|爱奇艺成立海南新公司,注册资本3000万
- 股票|百度在美遭集体诉讼,称篡改爱奇艺财务状况
- 互联网|“封杀”爱奇艺、腾讯,台当局这番操作是怕啥?
- 爱奇艺|爱奇艺十岁之际神经紧绷:亏损减小“秀肌肉” “营收天花板”僵局待解
- 台湾|台湾OTT新规或影响爱奇艺、腾讯视频在台运营
- 爱奇艺|爱奇艺Q2财报:坚持原创内容高品质核心,营收持续增长,亏损收窄