PromQL 从入门到精通和 Counter。所以我们重点就来讲解 Gauge 和 Counter 类型。 Gauge 类型 Gauge 类型的值表示当前的状态,可大可小、可负可正,比如某个虚机实例挂了,用 0 表示, 如果实例存活,用 1 表示;再比如内存使用率,这个时刻采集是 33.7%,下个周期采集可能就 变成了 25.8%;还有像机器最近 5 分钟的 load、正在运行的进程数量等等,都使用 Gauge 类 有了解,得先搞清楚时 序数据。 认识时序数据 我们先来看一张图,图上是 5 台机器的内存可用率: 每个机器的内存可用率数据,体现为图上的一条线,我们称为 series,某个机器在某一时刻的内 存可用率数据,我们称为数据点,比如上图,2022-08-25 15:05:22 这个时刻,每个机器都有 一个可用率数据点,共计 5 个数据点。 上面的图是查询的最近一小时的,我们切换到 Table 视图,得到如下结果: 视图,得到如下结果: 这个表格的内容,是这 5 台机器在当前这个时间点的最新值,当前我做查询的时刻是:2022- 08-25 15:48:03 用 Chrome 开发者工具可以看到发的请求参数: 但是,监控数据是周期性上报的,比如每 10 秒上报一次,在 2022-08-25 15:48:03 这个时 刻,未必恰好有监控数据啊,那这个 Table 中的数据是哪里来的? 实际上,Prometheus0 码力 | 16 页 | 2.77 MB | 1 年前3
B站统⼀监控系统的设计,演进
与实践分享• http • tcp • ping 基础层 应⽤用层 • cache资源 • db资源 • mq资源 • lb资源 • es资源 • 分布式⽂文件 • 进程监控 业务层 • qps/tps • 耗时分布 • 饱和度 • 吞吐量量 • 依赖响应 • 缓存命中率 • 调⽤用链 • SLA • ⽇日志 播放质量量 • 点播/直播 prometheus节点 现状: • 性能 • ⾼高可⽤用 • 分布式 • 使⽤用成本 问题: ? 性能问题 • 本地ssd prometheus Shard A prometheus Shard B prometheus Shard C targets hash • horizontal sharding (实验性质使⽤用) • prometheus 2.0 (tsdb) Federation pr s s s pr I pr s s s pr I IDC1 IDC2 prometheus prometheus filter数据 精度降低 建议 降低使⽤用成本 agent prometheus target target target alert_manager 告警平 服务 cache db平台 rms资 外围系统 监控⽬目 规则⽣生0 码力 | 34 页 | 650.25 KB | 1 年前3
告警OnCall事件中心建设方法白皮书
割裂的监控系统,比如阿里云不但 有云监控,还有 ARMS,还有 SLS。 大部分公司都不会只使用一套监控系统,网络设备的监控可能采用的 Zabbix,Kubernetes 的监控可能 用的 Prometheus(Kubernetes 可能有多套,以至于 Prometheus 可能有多套)或者 Nightingale, 日志的监控可能用的 Elastalert,如果上云了,可能还会有多套不同的云监控(尤其是多云场景下)。 警(比如某个标签相同,或者文本相似度很高)被合并成故障(incident),最终通知用户的是一个个故 障,大幅降低了打扰性。 不同的告警事件,通常有不同的分发逻辑,比如不同时段不同的分发逻辑:白天用短信通知,晚上用电话 通知,比如对象存储的告警要发给存储团队,物理机故障要发给运维团队。这都可以灵活定义。 也可以配置聚合窗口,比如延迟 120 秒,如果在延迟等待期内,告警自动恢复或被人工处理,则不会发送 里,通知的对象不是原始的告警事件,因为原始的告警事件可能会非常多,如上文所述, FlashDuty 会把事件聚合为告警,告警聚合为故障,最终通知的是故障。那具体如何聚合呢? 告警聚合 事件到告警的聚合比较容易,通常是用类似下面的算法来计算不同事件的关联关系: hash(32 + ["__name__=cpu_usage_idle", "host=host1"]) 这个值姑且称为事件 Hash,相同 Hash0 码力 | 23 页 | 1.75 MB | 1 年前3
共 3 条
- 1













