本文共 2982 字,大约阅读时间需要 9 分钟。
Prometheus 是一款强大且灵活的数据监控工具,适用于微服务架构中对时间序列数据的采集、存储和查询。以下是其主要特点:
多维度数据模型
Prometheus 的数据模型支持灵活的标签体系,通过标签(键值对)将时间序列数据细粒化,便于按维度查询和分析。可以针对每个标签(如环境、机器类型、应用实例)进行聚合、切割或切片操作,支持双精度浮点类型和全 Unicode 标签。灵活的 PromQL 语法
在同一个查询中,可以对多个 metrics 进行算术运算(如加、乘、取整),空间替换(如连接),取分位数等操作,极大提升数据处理的灵活性。高效的数据存储
Prometheus 服务器每个采样点仅占 3.5 字节,处理能力强,单实例可以支持数百万级别的 time series 数据。按需拉取或推送数据
Prometheus 采用 pull 模式,计算机直接向服务器拉取数据;同时支持通过 Push Gateway 向服务器推送数据,适用于防火墙或网络隔离场景。多样化可视化界面
提供丰富的可视化图表类型(如表、条形、柱状、折线图等),满足不同用户的数据展示需求。Prometheus 生态系统由多个关键组件组成,典型安装包括:
Prometheus Server
数据收集和存储的核心,负责从配置好的 jobs 或 exporters拉取 metrics,运行 alert 规则生成警报。Push Gateway
用于短期 metric 数据的推送,适用于防火墙限制或网络不稳定的场景,支持持久化存储。** exporters**
负责将第三方系统(如数据库、应用程序)的 metrics 暴露给 Prometheus。常见的有 Node exporter(收集系统资源信息)、http exporter 等。Alertmanager
处理 Prometheus 生成的警报,进行去重、分组后发送给配置的通知接收端(如 PagerDuty、OpsGenie等)。PromQL
提供强大的查询语言,支持复杂的数据聚合和计算。数据采集
Prometheus 按需从配置的 jobs、exporters 或 Push Gateway 拉取 metrics,或主动从 Push Gateway 推送数据。数据存储
将收集到的 metrics 存储为时间序列数据,建立一个多维度的数据模型。告警处理
Prometheus 根据预设的 alert 规则,生成并推送告警信息到 Alertmanager,Alertmanager 接下来根据配置处理并发布告警。可视化展示
利用 Prometheus 提供的图形界面对数据进行可视化展示,便于监控和分析。扩展与管理
支持通过配置文件或 API 扩展监控模块,实现对任意数据源的统一管理。数据模型
Prometheus 中的数据由以下元素构成:Metric 类型
Prometheus 提供四种主要的 metric 类型:Counter:累计型 metric,用于统计事件数量(如请求数、错误数等)。
示例:http_requests_total{method=“GET”} 返回 8。
Gauge:常规型 metric,用于监控动态变化的值,如系统资源使用情况。
示例:go_goroutines{instance=“172.17.0.2”} 返回 147。
Histogram:时间分布型 metric,适合监控持续时间,如请求延迟。
Summary:类似于 Histogram,提供计数和百分位信息。
在 Prometheus TERMINOLOGY 中:
Node exporter 的主要功能是从目标节点(如服务器或客户端)收集系统级别的 metrics,包括:
这些数据可直接暴露给 Prometheus 或通过 Push Gateway 推送。
PushGateway 是 Prometheus 生态中的重要工具,主要用于:
注意事项:
下载 & 安装
Prometheus 提供单独的二进制文件安装,适合本地快速部署。配置
基本配置文件(config.yml)包含:启动
./prometheus --config-file=prometheus.yml
访问
Prometheus 界面访问地址:http://localhost:9090
下载 & 安装
go get -download https://github.com/prometheus-community/pushgateway/releases/download/...
配置命令运行
./pushgateway --listen=:9090 --source=:9090
本文详细介绍了 Prometheus 的特点、架构、工作流程、数据模型、安装方法及常用实践,希望能为用户掌握 Prometheus 提供全面的参考。
转载地址:http://fomsz.baihongyu.com/