用途:Prometheus 是面向云原生环境的开源监控与告警系统,用于采集、存储和查询多维时间序列指标,并基于规则触发告警。
主要能力:核心组件包括 Prometheus Server(抓取并本地 TSDB 存储)、Alertmanager(告警去重、分组、路由与通知)、Pushgateway(供短生命周期任务推送指标)、各类 Exporter(如 node、blackbox)、客户端库(Go、Java、Python、Rust 等)、Prometheus Operator(Kubernetes CRD 部署)以及 Thanos、Cortex、Mimir 等远程存储方案。数据模型为 metric_name{label="value"} value timestamp,指标类型有 Counter、Gauge、Histogram、Summary。
使用方式:通过 prometheus.yml 配置 global 抓取与评估间隔、alerting 指向 Alertmanager、rule_files 加载规则、scrape_configs 定义抓取目标(含 Kubernetes 服务发现与 relabel_configs);通过 alertmanager.yml 配置 route、inhibit_rules 与 receivers(Slack、PagerDuty、邮件等)。查询使用 PromQL,如 rate()、increase()、histogram_quantile()、sum by、topk、predict_linear、offset 等,并可用 recording rules 预聚合高开销查询。
适用场景:云原生与 Kubernetes 环境下的指标监控、SLO 与错误预算告警、延迟与错误率分析、主机与容器资源观测。
限制与建议:优先采用拉取模型,Pushgateway 应谨慎使用;避免高基数标签(用户 ID、邮箱、时间戳、完整 URL、IP);Counter 查询应使用 rate() 或 increase();告警应基于症状而非原因,并设置 for 持续时间;标签值建议每标签少于 10 个、单指标时间序列少于 10000。具体安装命令与版本信息暂未提供。