 B站统⼀监控系统的设计,演进
与实践分享机房出⼝口质量量 • 交换设备 • http • tcp • ping 基础层 应⽤用层 • cache资源 • db资源 • mq资源 • lb资源 • es资源 • 分布式⽂文件 • 进程监控 业务层 • qps/tps • 耗时分布 • 饱和度 • 吞吐量量 • 依赖响应 • 缓存命中率 • 调⽤用链 • SLA • ⽇日志 播放质量量 • 返回码 • 响应时间 • 错误率 服务端监控 ⽤用户端监控 如何推进? 服务端监控 场景 分析监控场景对应监控⼿手段 类型 metric类型 ⽇日志类型 ⾃自定义类型 ⼿手段 时间序列列数据 ⽇日志处理理流 ⾃自研 ⽤用户端监控 apm ⾃自研 客户端 播放器器 如何推进? 服务端监控 场景 分析监控场景对应监控⼿手段 类型 • cncf基⾦金金会 metric • 40w+/s的指标采集 • 10k+ 监控⽬目标 • 10+ prometheus节点 现状: • 性能 • ⾼高可⽤用 • 分布式 • 使⽤用成本 问题: ? 性能问题 • 本地ssd prometheus Shard A prometheus Shard B prometheus Shard C targets0 码力 | 34 页 | 650.25 KB | 1 年前3 B站统⼀监控系统的设计,演进
与实践分享机房出⼝口质量量 • 交换设备 • http • tcp • ping 基础层 应⽤用层 • cache资源 • db资源 • mq资源 • lb资源 • es资源 • 分布式⽂文件 • 进程监控 业务层 • qps/tps • 耗时分布 • 饱和度 • 吞吐量量 • 依赖响应 • 缓存命中率 • 调⽤用链 • SLA • ⽇日志 播放质量量 • 返回码 • 响应时间 • 错误率 服务端监控 ⽤用户端监控 如何推进? 服务端监控 场景 分析监控场景对应监控⼿手段 类型 metric类型 ⽇日志类型 ⾃自定义类型 ⼿手段 时间序列列数据 ⽇日志处理理流 ⾃自研 ⽤用户端监控 apm ⾃自研 客户端 播放器器 如何推进? 服务端监控 场景 分析监控场景对应监控⼿手段 类型 • cncf基⾦金金会 metric • 40w+/s的指标采集 • 10k+ 监控⽬目标 • 10+ prometheus节点 现状: • 性能 • ⾼高可⽤用 • 分布式 • 使⽤用成本 问题: ? 性能问题 • 本地ssd prometheus Shard A prometheus Shard B prometheus Shard C targets0 码力 | 34 页 | 650.25 KB | 1 年前3
 告警OnCall事件中心建设方法白皮书
不可 靠,想用多个渠道同时发送的方式来保障告警触达率,这也属于告警规则配置不合理的范畴。 第四个原因是预期内的维护动作导致的。比如程序升级变更,如果进程重启时间过长,可能会导致关联的 服务告警,或者某个机器重启,忘记提前屏蔽了,也会产生一堆关联告警。 了解了常见原因,下面我们来看一下有哪些常见解法。 优化告警规则 类似 PagerDuty FlashDuty 这就需要制定运维准入规则,哪个系统要交给运维人员来运维,首先要提供一些信息。 ● 相关联系人,出了问题能够及时找到人,联系不上的话得能直接联系研发领导。 ● 服务相关信息,比如代码仓库、系统架构、依赖哪些服务、依赖哪些系统参数、哪些 JVM 参数、常 见问题还有处理办法等等。 然后进行准入评审及准入测试,如果系统架构有明显问题,就没办法通过准入要求,不接受运维,如果老 标签做收敛 除了时间维度,再加上某个标签作为收敛维度,比如机器标签,某个时间段内所有 A 机器的告警收敛成 一个故障,所有 B 机器的告警收敛成另一个故障。或者按照服务维度,某个时间段内所有 A 服务的告警 收敛成一个故障,所有 B 服务的告警收敛成另一个故障。看起来效果好多了,只是没办法和现实中的告 警和故障建立完美的对应关系,不过从降噪收敛角度来看,够用了。 3、根据时间 + 文本相似度做收敛0 码力 | 23 页 | 1.75 MB | 1 年前3 告警OnCall事件中心建设方法白皮书
不可 靠,想用多个渠道同时发送的方式来保障告警触达率,这也属于告警规则配置不合理的范畴。 第四个原因是预期内的维护动作导致的。比如程序升级变更,如果进程重启时间过长,可能会导致关联的 服务告警,或者某个机器重启,忘记提前屏蔽了,也会产生一堆关联告警。 了解了常见原因,下面我们来看一下有哪些常见解法。 优化告警规则 类似 PagerDuty FlashDuty 这就需要制定运维准入规则,哪个系统要交给运维人员来运维,首先要提供一些信息。 ● 相关联系人,出了问题能够及时找到人,联系不上的话得能直接联系研发领导。 ● 服务相关信息,比如代码仓库、系统架构、依赖哪些服务、依赖哪些系统参数、哪些 JVM 参数、常 见问题还有处理办法等等。 然后进行准入评审及准入测试,如果系统架构有明显问题,就没办法通过准入要求,不接受运维,如果老 标签做收敛 除了时间维度,再加上某个标签作为收敛维度,比如机器标签,某个时间段内所有 A 机器的告警收敛成 一个故障,所有 B 机器的告警收敛成另一个故障。或者按照服务维度,某个时间段内所有 A 服务的告警 收敛成一个故障,所有 B 服务的告警收敛成另一个故障。看起来效果好多了,只是没办法和现实中的告 警和故障建立完美的对应关系,不过从降噪收敛角度来看,够用了。 3、根据时间 + 文本相似度做收敛0 码力 | 23 页 | 1.75 MB | 1 年前3
 PromQL 从入门到精通前的值,就像执行 ifconfig 命令,每 10 秒执行 一次,每次都看到一个巨大的当前值,而且一次比一次大。如果采集器不做计算,把这个值原封 不动上报给监控服务端,那计算增量、计算速率这个需求,就要放到服务端来实现了,所以服务 端必须要能对这种类型的数据建模抽象,也就是所谓的 Counter 类型。 时序数据 PromQL 就是查询时序数据的一种 Query Language,要想对 offset 1d) 运算符 PromQL 支持基本的算术运算符和比较运算符,可以对不同的即时向量做运算,这为监控系统 带来了巨大的进步,算术运算符让很多计算不需要在采集端做了,可以轻易挪到服务端,而比较 运算符则为告警逻辑提供了支撑。 算术运算符  + (addition)  - (subtraction)  * (multiplication)  / (division) 所谓的summary,也是prometheus的一种埋点数据类型,summary也可以计算90分位、99 分位的值,但是这个值不是通过promql在服务端计算的,而是在应用的内存里,在SDK层面计 算的,即客户端把这个分位值算好,再上报给服务端,服务端就无需通过histogram_quantile 这么重的函数做计算了,而是直接查看就好。 但是,既然是在客户端SDK层面计算,就会产生局限,这些分位值只能是实例级别(或者说进程0 码力 | 16 页 | 2.77 MB | 1 年前3 PromQL 从入门到精通前的值,就像执行 ifconfig 命令,每 10 秒执行 一次,每次都看到一个巨大的当前值,而且一次比一次大。如果采集器不做计算,把这个值原封 不动上报给监控服务端,那计算增量、计算速率这个需求,就要放到服务端来实现了,所以服务 端必须要能对这种类型的数据建模抽象,也就是所谓的 Counter 类型。 时序数据 PromQL 就是查询时序数据的一种 Query Language,要想对 offset 1d) 运算符 PromQL 支持基本的算术运算符和比较运算符,可以对不同的即时向量做运算,这为监控系统 带来了巨大的进步,算术运算符让很多计算不需要在采集端做了,可以轻易挪到服务端,而比较 运算符则为告警逻辑提供了支撑。 算术运算符  + (addition)  - (subtraction)  * (multiplication)  / (division) 所谓的summary,也是prometheus的一种埋点数据类型,summary也可以计算90分位、99 分位的值,但是这个值不是通过promql在服务端计算的,而是在应用的内存里,在SDK层面计 算的,即客户端把这个分位值算好,再上报给服务端,服务端就无需通过histogram_quantile 这么重的函数做计算了,而是直接查看就好。 但是,既然是在客户端SDK层面计算,就会产生局限,这些分位值只能是实例级别(或者说进程0 码力 | 16 页 | 2.77 MB | 1 年前3
 1.6 利用夜莺扩展能力打造全方位监控系统过aws大规模宕机的情况,影响不 止是55万美元,直接影响大半个 互联网! 2018年有美国调研机构指出,如 果服务器宕机1分钟,银行会损失 27万美元,制造业会损失42万美 元 美团故障?滴滴故障?腾讯故障? 运维监控需求来源 01.监控的原始需求来自业务稳定性 如何减少服务停摆导致的经济损失?尽快发现故障并止损!故障处理过程中,监控是『发现』和『定位』两个环节 的关键工具。故障处理 端上、链路、资源、组件、应用多维度跨云监控,不管哪个 环节出问题都能及时感知 产品要求 01.端上、链路、资源、组件、应用多维度跨云监控 端上 卡顿 崩溃 链路 连通性 链路质量 服务端 硬件资源 组件服务 业务应用 夜莺介绍:国产开源监控系统 第三部分 国产开源监控产品相对比较匮乏,夜莺希望重新定义国产开 源监控,支持云原生监控,经受了滴滴大规模生产检验 Nightingale Serializer 夜莺数据采集 06. Serializer 夜莺数据采集 07. Forwarder 夜莺设计实现 Server 数据处理 第五部分 夜莺Server数据处理 01. 服务器 02. API 夜莺Server数据处理 03. AlarmRule Control 夜莺Server数据处理 04. CollectRule Control 夜莺Server数据处理0 码力 | 40 页 | 3.85 MB | 1 年前3 1.6 利用夜莺扩展能力打造全方位监控系统过aws大规模宕机的情况,影响不 止是55万美元,直接影响大半个 互联网! 2018年有美国调研机构指出,如 果服务器宕机1分钟,银行会损失 27万美元,制造业会损失42万美 元 美团故障?滴滴故障?腾讯故障? 运维监控需求来源 01.监控的原始需求来自业务稳定性 如何减少服务停摆导致的经济损失?尽快发现故障并止损!故障处理过程中,监控是『发现』和『定位』两个环节 的关键工具。故障处理 端上、链路、资源、组件、应用多维度跨云监控,不管哪个 环节出问题都能及时感知 产品要求 01.端上、链路、资源、组件、应用多维度跨云监控 端上 卡顿 崩溃 链路 连通性 链路质量 服务端 硬件资源 组件服务 业务应用 夜莺介绍:国产开源监控系统 第三部分 国产开源监控产品相对比较匮乏,夜莺希望重新定义国产开 源监控,支持云原生监控,经受了滴滴大规模生产检验 Nightingale Serializer 夜莺数据采集 06. Serializer 夜莺数据采集 07. Forwarder 夜莺设计实现 Server 数据处理 第五部分 夜莺Server数据处理 01. 服务器 02. API 夜莺Server数据处理 03. AlarmRule Control 夜莺Server数据处理 04. CollectRule Control 夜莺Server数据处理0 码力 | 40 页 | 3.85 MB | 1 年前3
共 4 条
- 1













