从Prometheus架构图中就可以看出,他的数据源来源于各个target以及Pushgateway。
一、部署
- 下载
下载地址 - 配置
配置信息详解
3. 启动
./prometheus --config.file=prometheus.yml
- 数据访问
- 监控targets
- 配置聚合规则
prometheus.rules.yml
groups:
- name: cpu-node
rules:
- record: job_instance_mode:node_cpu_seconds:avg_rate5m
expr: avg by (job, instance, mode) (rate(node_cpu_seconds_total[5m]))
prometheus.yml:
二、组成
1、数据模型
Prometheus将所有数据存储为时间序列。
组成:
- metric:需要度量的参数名称
- label:该参数对应的标签名及对应的值,可用于过滤同一个metric下不同情况下对应的不同值;
其命名规则如下:
- metric名称:满足正则:
[a-zA-Z_:][a-zA-Z0-9_:]*
- metric名称:
:
主要用于用户定义的规则; - label名称:满足正则
[a-zA-Z_][a-zA-Z0-9_]*
; - label名称:以
__
开头的label标签名用于系统内部使用; - label值:可以任一的unicode字符;
2、Metric类型
-
Counter:是一个累积度量,表示单个单调递增的计数器,其值只能在重新启动时增加或重置为零。
-
Gauge:表示可以任意上升和下降的单个数值。
-
Histogram:例如针对观察的样例(例如针对一段时间的请求或请求返回的大小)可灵活配置和统计。
一个Histogram metric一次获取数据产生多个时间序列 :a. 计数器样式:
<basename>_bucket{le="<upper inclusive bound>"}
b. 总值:
<basename>_sum
c. 条目统计:
<basename>_count
-
Summary:与Histogram类似,其可动态随时间更改而变化。
3、Job 和Instance
Instance:可以获取数据的端点称之为Instance;
Job:相同目的Instance集合称之为Job;