监控架构
概述
运维平台基于 Prometheus v3 + Grafana v12 构建指标/可视化能力,并集成 Loki v3(日志聚合)和 Tempo v2(分布式链路追踪),通过 Grafana Alloy v1(统一可观测性采集代理)将指标、日志、链路数据汇聚到 Grafana 统一界面查询。
架构图

架构介绍
数据采集
指标采集 - Prometheus Exporter
通过 Prometheus Exporter 机制,对关键基础设施及应用主动拉取监控指标:
| 监控对象 | Exporter 组件 | 维护组织 |
|---|---|---|
| 主机系统 | Node Exporter | Prometheus |
| 消息队列 | Kafka Exporter | danielqsj |
| 搜索引擎 | Elasticsearch Exporter | Prometheus Community |
| 缓存服务 | Redis Exporter | Oliver006 |
| 关系数据库 | MySQL Exporter | Prometheus |
| 文档数据库 | MongoDB Exporter | Percona |
主机系统的 Node Exporter 由 ops-nodeagent 容器内置,其余 Exporter 由 ops-agent 容器统一打包。
日志采集 - Alloy + serilog
- 容器 stdout 日志:
ops-alloy通过loki.source.docker组件对接宿主机/var/run/docker.sock,自动发现并采集所有容器的 stdout/stderr,写入 Loki,stream label 包含container/service_name/log_source=docker。 - HAP 微服务结构化日志:HAP 容器内部 .NET 微服务通过
serilog.sinks.grafana.loki直接 push 到 Loki HTTP API,stream label 包含service_name/hostname/action/extras/stack/detected_level等业务字段。
两类日志在 Grafana 中通过两个独立面板查看:「容器控制台」和「服务日志」。
链路追踪采集 - OTLP
应用通过 OpenTelemetry 协议(OTLP gRPC :4317 / HTTP :4318)将分布式调用链 spans 推送给 ops-alloy,由 alloy 转发到 Tempo 存储。
数据存储与可视化
| 数据类型 | 存储 | 查询 |
|---|---|---|
| 指标 (Metrics) | Prometheus TSDB | PromQL |
| 日志 (Logs) | Loki | LogQL |
| 链路 (Traces) | Tempo | TraceQL |
Grafana 提供统一可视化和跨数据源关联(如从日志的 traceID 跳转到 Tempo 链路)。
告警与通知
告警
- 统一管理:通过 Grafana 配置告警规则,实现对异常情况的实时监控和自动告警。
- 基于 PromQL/LogQL