PromQL 从入门到精通
的一个常见用法,比如我们使用 kube-state- metrics 来采集 Kubernetes 各个对象的指标数据,其中针对 pod 有个指标是 kube_pod_labels,会把 pod 的一些信息放到这个指标的标签里,指标值是1,相当于一个元信 息,比如: kube_pod_labels{ [...] label_name="frontdoor", label_version="1 namespace="default", pod="frontdoor-xxxxxxxxx-xxxxxx", } = 1 6 7 8 9 10 11 12 13 14 15 16 17 18 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 假设某个 Pod 是接入层的,统计了很多 HTTP 请求相关的指标,我们想统计 的请求数量, 希望能按 Pod 的 version 画一个饼图。这里有个难点:接入层这个 Pod 没有 version 标签, version 信息只是出现在 kube_pod_labels 中,如何让二者联动呢?上答案: sum( rate(http_request_count{code=~"^(?:5..)$"}[5m])) by (pod) * on (pod) group_left(label_version)0 码力 | 16 页 | 2.77 MB | 1 年前3告警OnCall事件中心建设方法白皮书
等等,还有云厂商提供的监控系统,比如华为云的云 监控、腾讯云的云监控、阿里云的云监控,甚至有些云厂商会提供多个割裂的监控系统,比如阿里云不但 有云监控,还有 ARMS,还有 SLS。 大部分公司都不会只使用一套监控系统,网络设备的监控可能采用的 Zabbix,Kubernetes 的监控可能 用的 Prometheus(Kubernetes 可能有多套,以至于 Prometheus 可能有多套)或者 Nightingale, 了,当重要的告警来临的时候,也容易忽略。这样的规则如果不经过治理,日积月累,就会产生很多无用 的告警。 第二个常见的原因是底层出问题导致所有的上层依赖都告警,越是底层影响越大,比如基础网络如果出问 题,发出几万条告警都是正常的。 第三个原因是渠道错配。一些不重要的告警也使用打扰性很高的渠道发出,用户可能会觉得单一渠道不可 靠,想用多个渠道同时发送的方式来保障告警触达率,这也属于告警规则配置不合理的范畴。 这个值姑且称为事件 Hash,相同 Hash 的事件就被聚合为一条告警。更复杂的是告警到故障的合并,当 前我们支持基于规则的聚合,后面会基于算法聚合: 比如基于告警规则标题做聚合,某一时刻,基础网络故障,有 1000 台机器同时报了失联告警,就可以很 方便地合并成一个故障,只通知这一个故障即可,大幅降噪减少通知打扰。 故障抖动 有的时候会出现一会告警一会恢复一会又告警一会又恢复0 码力 | 23 页 | 1.75 MB | 1 年前31.6 利用夜莺扩展能力打造全方位监控系统
进程存 活 端口监 控 插件脚 本 日志监 控 网络设 备 中间件 类 数据库 类 • 支持在web上配置采集策略,不同的采集可以指定 不同的探针机器、目标机器,便于管理和知识传 承 • 独创在端上流式读取日志,根据正则提取指标的 机制,轻量易用,无业务侵入性 • 内置集成了多种数据库中间件的采集以及网络设 备的采集,复用telegraf和datadog-agent的能力0 码力 | 40 页 | 3.85 MB | 1 年前3B站统⼀监控系统的设计,演进 与实践分享
调⽤用链 • SLA • ⽇日志 播放质量量 • 点播/直播 • 播放卡顿 • 平均⾸首帧 • 播放失败率 • 弹幕加载 • cdn质量量 客户端质量量 • ⽤用户端⽹网络质量量 • 劫持情况 • 崩溃&卡顿 • 返回码 • 响应时间 • 错误率 服务端监控 ⽤用户端监控 如何推进? 服务端监控 场景 分析监控场景对应监控⼿手段 类型0 码力 | 34 页 | 650.25 KB | 1 年前3
共 4 条
- 1