Prometheus-Discoverer服务发现
Prometheus-Discoverer服务发现 基于v3.5 启动流程sequenceDiagram participant main.go participant Manager participant Provider participant Discoverer participant TargetGroup main.go->>Manager: NewManager() main.go->>Manager: ApplyConfig() Manager->>Provider: 创建Provider实例 Manager->>Provider: startProvider() Provider->>Discoverer: 初始化具体发现器(如K8s/Consul等) Provider->>Discoverer: Run(ctx, updatesCh) loop 发现循环 Discoverer->>TargetGroup: 获取目标组 ...
Prometheus-载入配置
Prometheus-载入配置 基于v3.5 启动顺序sequenceDiagram participant main.go participant Config participant GlobalConfig participant ScrapeConfig participant RemoteWriteConfig participant RuntimeConfig participant Storage main.go->>Config: 加载配置文件(Load/LoadFile) Config->>GlobalConfig: 初始化全局配置 Config->>ScrapeConfig: 初始化抓取配置 Config->>RemoteWriteConfig: 初始化远程写入配置 Config->>RuntimeConfig: 初始化运行时配置 main.go->>Storage...
Prometheus-项目启动main.go
Prometheus-项目启动main.go 基于v3.5 启动顺序flowchart TD A[启动 main 函数] --> B[解析命令行参数/配置文件] B --> C[初始化日志系统] C --> D[初始化通知系统] D --> E[校验参数和配置] E --> F[初始化核心组件] F --> F1[本地存储 localStorage] F --> F2[抓取管理器 scrapeManager] F --> F3[远程存储 remoteStorage] F --> F4[规则管理器 ruleManager] F --> F5[Web 服务 webHandler] F --> F6[服务发现 discoveryManager] F --> F7[告警通知 notifierManager] F --> F8[Tracing 管理 tracingManager] F1 & F...
Alertmanager-告警发送
Alertmanager-告警发送 基于v0.28 启动顺序sequenceDiagram participant Alert as 新告警 participant Dispatcher as Dispatcher participant Route as Route participant AggrGroup as aggrGroup participant NotifyStage as notify.Stage participant Notifier as Notifier(邮件/微信等) Alert->>Dispatcher: 新告警流入 Dispatcher->>Route: 路由树匹配 Route-->>Dispatcher: 匹配到的 Route Dispatcher->>AggrGroup: 插入/创建分组 Note over AggrGroup: run 协程定时触发通知 AggrGroup->>Noti...
Alertmanager-dispatch告警分组
Alertmanager-dispatch告警分组 基于v0.28 总体流程flowchart TD A[告警流入 Alertmanager] --> B[dispatch 路由树匹配] B --> C{匹配到哪些 Route?} C -- 无匹配 --> Z[丢弃或默认处理] C -- 有匹配 --> D[分组聚合(按 group_by 标签)] D --> E[分组等待 group_wait] E --> F[分组内聚合告警] F --> G{到达 group_interval 或有新告警?} G -- 否 --> F G -- 是 --> H[触发通知管道] H --> I[通知发送(邮件/微信/钉钉等)] I --> J[分组生命周期管理] J --> K{分组内还有活跃告警?} K -- 有 --> F K -- 无 --...
Alertmanager-silencer告警静默
Alertmanager-silencer告警静默 基于v0.28 总体流程sequenceDiagram participant Alert as 告警(Labels) participant Silencer as Silencer participant Silences as Silences participant Store as state(存储) participant Marker as AlertMarker Alert->>Silencer: 新告警流入,调用 Mutes(lset) Silencer->>Marker: 查询该告警指纹的静默状态 alt Marker 版本与 Silences 一致 Silencer->>Silences: 仅查询已知静默ID是否仍然有效 else Marker 版本不一致 Silencer->>Silences: 全量查询所有匹配该告警的静默 end S...
Alertmanager-inhibitor告警抑制
Alertmanager-inhibitor告警抑制 基于v0.28 总体流程flowchart TD A[告警流入 Alertmanager] --> B{是否匹配抑制规则?} B -- 否 --> E[正常进入分发/通知流程] B -- 是 --> C[遍历所有 InhibitRule] C --> D{目标告警是否匹配 TargetMatchers?} D -- 否 --> C D -- 是 --> F{是否存在源告警满足 SourceMatchers 且 Equal 标签相等?} F -- 否 --> C F -- 是 --> G[该告警被抑制, 不再通知] C -->|遍历完所有规则| H{是否被抑制?} H -- 是 --> G H -- 否 --> E subgraph 规则说明 direction LR...
Alertmanager-主入口main.go
Alertmanager-主入口main.go 基于v0.28 关键模块说明 API 入口:api/v2/ 功能:接收Prometheus警报、提供管理接口 AlertRouter 路径:/dispatch 处理流程: 1func (r *Route) Match(lset model.LabelSet) bool Inhibitor 路径:/inhibit 核心逻辑: 1func (ih *Inhibitor) Mutes(lset model.LabelSet) bool DispatchTree 路径:/dispatch 特性:多级路由树结构 Notification Pipeline 路径:/notify 阶段: GroupWait GroupInterval RepeatInterval Notifier 集成:/notify/<type> 实现示例: 1234type EmailNotifier struct { conf *config.EmailConfig tmpl *template...
Prometheus安全认证
Prometheus安全认证背景一般Prometheus开启端口之后就可以访问UI,缺少安全认证 Prometheus提供了 Basic Auth能力 Ref:https://prometheus.ac.cn/docs/prometheus/latest/configuration/https/ /web-config.yml:https://github.com/prometheus/prometheus/blob/release-3.4/documentation/examples/web-config.yml 1. 设置账号密码12345Centos # 下载工具yum install httpd-tools# 生成账号密码htpasswd -nB 'admin' 2.配置web-config.yml12basic_auth_users: admin: $2y$05$UKSS18ztdsUNoEuXYScr2OE1TCMe1hWnmD6JuwUi/uPTJayHIakae 3. 启动配置添加/bin/prometheus --web.c...
《一个人就一个人》-书摘
《一个人就一个人》-书摘 一个人就一个人-不是伤感,也不是执拗。我们的人生原本就是一个人 至于爱情。 恋爱是短暂的陪伴,婚姻是长久的同行。 我们不是因为工作才走在一起,我们是为了要走 在一起才做这份工作。 困了就跟同事说:”对不起,我困了,我要睡午觉。”这个习惯坚持了十年。 到了运动时间,就跟大家说:”对不起,我要去运动了,明天继续开会吧。” 累了,就什么都不做。 不爽了,就看部催泪电影,好好哭一场。 也会为了庆祝某件事,自己开一瓶酒,对自己说:”你真厉害啊!” 不让此刻的自己失望,不让未来的自己抱憾。 我对群没恶意,群对我也没恶意。惯用的做法是屏蔽群消 息,不然我每天的工作就是看手机。有人问如果错过重要的消 息怎么办,我的感觉是一如果一个消息能错过你而进行,表 示你并不重要。如果一个消息需要等你回应,你不回应,一定会有同事给你打电话告诉你 群。说起变淡的原 因,好像也没什么特别的,大家聊起时,没有义愤填膺,也不 是特别抗拒,就是“噢噢噢,有听说,随便你……”。别人在你 人生中这么淡去,你也应该能想象得到自己又是如何淡出别人 的人生的。当你发现你和某个人淡了,可能会很懊恼,但也不...



