- 概述
- 开源监控系统
- 特点
a.多维数据模型
b.灵活的查询语言PromQL
c.不依赖任何分布式存储
- 架构图及理解
- 架构
Prometheus Server 采用拉取方式从监控目标直接拉取数据,或者通过Pushgateway拉取监控目标推送给Pushgateway的数据。它在本地存储抓取的数据,通过制定的规则整理和清理数据,将得到的结果存储起来,Grafana等工具可以通过 PromQL 查询语言在 Server 里获取数据。 Server会根据告警规则监测异常并推送告警给 Alertmanager,Alertmanager 负责通知。
-
- 理解
- 理解
- 概念
- 数据模型
Prometheus存储的所有数据都是时间序列(time-series)数据,时序数据是具有时间戳的数据流,该数据流属于某个度量指标(Metric)和该度量指标下的多个标签(Label)
-
- 时序数据格式
a.Metric name
b.Label:对于同一个度量指标,不同标签值组合会形成特定维度的时序。标签支持了Prometheus的多维数据模型,Prometheus的查询语言可以通过度量指标和标签对时序数据进行过滤和聚合。标签名称可以包含ASCII字母、数字、下划线,需要匹配正则表达式,带有_下划线的标签名称保留为内部使用;标签值可以包含任意Unicode字符,包含中文。
例如:表示所有hhtp请求中的Get请求,当method=“post“时,则为一个新的metric
httprequests_total{method="Get"}
c.Timestamp
d.Simple value
-
- 度量指标(Metric)描述了被监控的某个测量特征。度量指标由ASCII字母、数字、下划线和冒号组成,须匹配正则表达式,类型如下
a.Counter:一种累加的metric,它是一个只能递增的数值。典型的应用如:请求的个数、结束的任务数、出现的错误数等。重启进程后,会被重置为0.
b.Gauge:一个既可以增加,又可以减少的度量指标,主要用于计量瞬时数据
c.histogram:主要用于表示一段时间范围内对数据进行采样(请求持续时间或响应大小)并能够对其指定区间以及总数进行统计,通常展示为直方图
d.Summary:主要用于表示一顿时间内数据采样结果,它直接存储了quantile数据,而不是根据统计区间计算出来的
- 安装
- 在官网下载对应的压缩包
a.解压缩到本地
b.进入文件夹中,修改配置文件
c.运行
$./prometheus
-
- github上克隆后在本地运行
- 在mac终端homebrew
//下载
$brew install prometheus //查看,测试是否安装成功 $prometheus --version