B站统⼀监控系统的设计,演进
与实践分享2015年年加⼊入B站 • devops • 热爱新技术,热爱开源 • ⼩小宅男 故事的开始 B站炸了了.舆情监控(括弧笑脸) 我们的挑战 • 技术栈多 • 产品模块复杂 • 业务爆发式增⻓长 • 运维要求⾼高 当前情况: • 覆盖率低 • 误报,漏漏报多 • 告警⻛风暴暴 监控问题爆发: 重新定义的监控系统 ✦ 完整的监控体系 ✦ 科学的告警策略略 • http • tcp • ping 基础层 应⽤用层 • cache资源 • db资源 • mq资源 • lb资源 • es资源 • 分布式⽂文件 • 进程监控 业务层 • qps/tps • 耗时分布 • 饱和度 • 吞吐量量 • 依赖响应 • 缓存命中率 • 调⽤用链 • SLA • ⽇日志 播放质量量 • 点播/直播 具备现代时间序列列数据库的特性 • 活跃项⽬目,具有成熟的⽣生态环境 结论 • prometheus • ⽀支持任意维度label • cncf基⾦金金会 metric • 40w+/s的指标采集 • 10k+ 监控⽬目标 • 10+ prometheus节点 现状: • 性能 • ⾼高可⽤用 • 分布式 • 使⽤用成本 问题: ? 性能问题 • 本地ssd0 码力 | 34 页 | 650.25 KB | 1 年前3
PromQL 从入门到精通 !=:完全不匹配,比如 app!="clickhouse" =~:正则匹配,比如 app=~"n9e-.*" !~:正则不匹配,比如 app!~"n9e-.*" 指标名称,通常放到大括号之外,但实际上,指标名称也是一个标签,其标签Key是 __name__,所以之前查询的例子,可以这么写: {__name__="mem_available_percent", app="clickhouse"} 用,比如之前的例子,对于内存可用率的指标 mem_available_percent 这个指标是采集器直接计算好的,如果采集器没有计算,而是上报了 原始指标 mem_available 和 mem_total,我们仍然可以使用 promql 计算出可用率指标: 逻辑上,是先根据 mem_available{app="clickhouse"} 找到相关指标数据,会找到5条,再根 据 mem 的结果,这个最终结果其实就是 mem_available_percent。 如果分子和分母对应的selector查到的数据标签不同,就没法做除法运算了,比如 net_bytes_recv 比内存相关的指标多了一个interface的标签(标明网卡),二者是没法做运算 的,结果为空: net_bytes_recv{app="clickhouse"}/mem_total{app="clickhouse"}0 码力 | 16 页 | 2.77 MB | 1 年前3
1.6 利用夜莺扩展能力打造全方位监控系统夜莺设计实现:Server 数据处理 05 夜莺设计实现:技术难点及细节 06 运维监控需求来源 第一部分 如果贵司的业务强依赖IT技术,IT故障会直接影响营业收入, 稳定性体系一定要重视起来,而监控,就是稳定性体系中至 关重要的一环 运维监控需求来源 01.监控的原始需求来自业务稳定性 左图是2013年的一个新闻,讲 Google宕机的影响。2020年也出现 过aws大规模宕机的情况,影响不 互联网! 2018年有美国调研机构指出,如 果服务器宕机1分钟,银行会损失 27万美元,制造业会损失42万美 元 美团故障?滴滴故障?腾讯故障? 运维监控需求来源 01.监控的原始需求来自业务稳定性 如何减少服务停摆导致的经济损失?尽快发现故障并止损!故障处理过程中,监控是『发现』和『定位』两个环节 的关键工具。故障处理过程的首要原则是『止损』,因此,过程中的『发现』和『定位』都是面向尽快『止损』来 端上、链路、资源、组件、应用多维度跨云监控,不管哪个 环节出问题都能及时感知 产品要求 01.端上、链路、资源、组件、应用多维度跨云监控 端上 卡顿 崩溃 链路 连通性 链路质量 服务端 硬件资源 组件服务 业务应用 夜莺介绍:国产开源监控系统 第三部分 国产开源监控产品相对比较匮乏,夜莺希望重新定义国产开 源监控,支持云原生监控,经受了滴滴大规模生产检验 Nightingale 夜莺是新一代0 码力 | 40 页 | 3.85 MB | 1 年前3
告警OnCall事件中心建设方法白皮书
否漏报,一线工程师为了不背锅,自然是尽量多地提高告警覆盖面,但这么做的后果,就是告警过多,无 效告警占多数,长此以往,工程师疲惫不堪。 那么告警规则的配置应该遵照一个什么原则呢?虽然每个公司业务不同,总有一些通用的原则可循吧?的 确如此,这里我分享一下我个人的做法,希望对你有所启发。 每个规则都应该对应具体的 Runbook Runbook 就是告警处理手册,也就是告警触发 每天早上上班或晚上下班之前稍微看一眼就行,这样就可以减少打扰。 制定了这个原则之后,如果大家不遵守怎么办呢?还是有很多告警没有对应的 Runbook,作为管理人 员,我们应该怎么处理?我的建议是分产品线统计一个指标:“Runbook 预置率”,就是各个产品线有 多少告警规则配置了 Runbook,有多少没有配置,这个比例要统计出来,然后做成红黑榜,让大家去治 理,治理一段时间之后有经验了,知道预置率大概在 见问题还有处理办法等等。 然后进行准入评审及准入测试,如果系统架构有明显问题,就没办法通过准入要求,不接受运维,如果老 板要求必须接,那就只能加人了,或者明确说明在架构调整好之前,不负责 SLA,反推业务改造。 上面介绍的两个告警规则优化原则,是最重要的两个原则。照做的话,可以搞定大部分无效告警。 除了原则方面,另一个应对过多告警的方法就是靠产品工具了,比如告警事件在哪些时间段发送、如何过0 码力 | 23 页 | 1.75 MB | 1 年前3
4 【王琼】容器监控架构演进 王琼 YY直播
参考文档:https://ganeshvernekar.com/blog/prometheus-tsdb-the-head-block/ ⚫ • • • • ⚫ • • • ⚫ • • 计算指标需要多少内存 https://www.robustperception.io/how-much-ram-does-prometheus-2-x-need-for-cardinality-and-ingestion0 码力 | 23 页 | 2.17 MB | 1 年前3
共 5 条
- 1













