Prometheus 监控系统
Prometheus 是 CNCF 旗下的开源系统与服务监控系统及时间序列数据库,通过拉取模式采集指标,配合 PromQL 查询语言、告警规则与多种可视化方式,是云原生可观测性的事实标准。
过去 7 天收获 2 颗 Star
爱鲜报评分
0 人评分
67k
星数
否
中文
Go
主语言
是
活跃
1521
贡献者
人工分析
EDITORIAL推荐理由
作为云原生监控的事实标准,Prometheus 拥有极高的社区活跃度与生态兼容性,几乎所有主流中间件、数据库和框架都原生暴露其指标格式。多维数据模型与 PromQL 让指标查询和告警配置非常灵活,单机自治、无需依赖分布式存储,部署成本低。无论是自建机房还是 Kubernetes 集群,它都是构建可观测体系的首选起点。
适用场景
- Kubernetes 与云原生集群监控
- 微服务与业务指标采集告警
- 主机、中间件、数据库性能监控
- 自定义指标与 PromQL 数据分析
- 作为 Grafana 等可视化平台的数据源
优点
- CNCF 毕业项目,社区与生态极其成熟
- 多维数据模型配合 PromQL,查询分析能力强
- 单机自治,无需依赖分布式存储,部署简单
- HTTP 拉取模型与丰富的服务发现机制
- 告警规则、联邦、远程写入等能力完善
缺点
- 默认本地存储,长期海量数据需配合远程存储
- 拉取模型对短生命周期批处理任务需借助 Pushgateway
- PromQL 与告警规则有一定学习曲线
- 官方仓库定位为独立程序,不建议直接当 Go 库使用
项目简介
Prometheus 是 CNCF 旗下的开源监控系统与时间序列数据库,用于采集系统和服务的指标、评估规则表达式、展示结果,并在满足条件时触发告警。它是云原生可观测性体系的事实标准,几乎所有主流中间件、数据库与框架都原生暴露 Prometheus 指标格式。
核心特性
- 多维数据模型:时间序列由指标名和一组键值维度定义,便于灵活聚合与切片。
- PromQL 查询语言:强大且灵活的查询语言,充分利用多维特性做分析与告警。
- 单机自治:不依赖分布式存储,单个服务节点即可独立运行。
- HTTP 拉取模型:按配置周期主动拉取目标指标;批处理任务可通过中间网关推送。
- 服务发现:支持静态配置与多种服务发现机制自动发现目标。
- 可视化与告警:内置表达式浏览器与基础图表,可对接 Grafana 等面板,并支持告警规则。
- 联邦能力:支持分层与水平联邦,扩展采集规模。
快速上手
官方推荐使用发布版预编译二进制,也可通过 Docker 快速体验:
docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
启动后访问 http://localhost:9090/ 即可打开 Web 界面。
从源码构建
需要 Go(版本见 go.mod)、NodeJS 与 npm 10+:
git clone https://github.com/prometheus/prometheus.git
cd prometheus
make build
./prometheus --config.file=your_config.yml
make build 会把前端静态资源一并编译进二进制,便于在任意目录运行;直接 go install 则需在仓库根目录运行以读取 web/ui/static 资源。
架构与生态
Prometheus 采用拉取式采集,配合服务发现、规则评估、告警与存储等组件协同工作。它与 Kubernetes、Grafana、Alertmanager、各类 Exporter 共同构成完整的监控告警链路。
注意:
prometheus/prometheus仓库定位为独立可执行程序,官方并不保证其作为 Go 库使用时的稳定性;如需在代码中埋点,建议使用prometheus/client_golang等专用库。
适用建议
Prometheus 适合作为可观测体系的指标层核心,长期海量数据可结合远程存储方案;对于短生命周期任务,可借助 Pushgateway 补充推送能力。
评论
- 暂无评论,来写第一条吧。