目录
prometheus数据模型
Prometheus 是将所有数据存为时序数据。
Prometheus 采集的监控数据都是以指标(metric)的形式存储在内置的 TSDB 数据库中,这些数据都是时间序列:一个带时间戳的数据,这些数据具有一个标识符和一组样本值。除了存储的时间序列,Prometheus 还可以根据查询请求产生临时的、衍生的时间序列作为返回结果。
Prometheus 会将所有采集到的样本数据以时间序列的形式保存在内存数据库中,并定时刷新到硬盘上,时间序列是按照时间戳和值的序列方式存放的,我们可以称之为向量(vector),每一条时间序列都由一个指标名称和一组标签(键值对)来唯一标识。
样本
时间序列中的每一个点就称为一个样本(sample),样本由以下 3 个部分组成:
- 指标:指标名称和描述当前样本特征的标签集
- 时间戳:精确到毫秒的时间戳数
- 样本值:一个 64 位浮点数
prometheus数据类型
Counter(计数器类型)
Counter类型的指标的工作方式和计数器一样,只增不减(除非系统发生了重置)。Counter一般用于累计值,例如记录请求次数、任务完成数、错误发生次数。
Gauge(仪表盘类型)
Gauge是可增可减的指标类,可以用于反应当前应用的状态。比如在监控主机时,主机当前的内容大小(node_memory_MemFree),可用内存大小(node_memory_MemAvailable)。或者时容器当前的cpu使用率,内存使用率。
Gauge指标对象主要包含两个方法inc()以及dec(),用户添加或者减少计数。
Histogram(直方图类型)
Histogram 由 < basename>_bucket{le="< upper inclusive bound>"},< basename>_bucket{le="+Inf"}, < basename>_sum,_count 组成,主要用于表示一段时间范围内对数据进行采样(通常是请求持续时间或响应大小),并能够对其指定区间以及总数进行统计,通常它采集的数据展示为直方图。
Summary(摘要类型)
Summary类型和Histogram类型相似,由< basename>{quantile="< φ>"},< basename>_sum,< basename>_count组成,主要用于表示一段时间内数据采样结果(通常时请求持续时间或响应大小),它直接存储了quantile数据,而不是根据统计区间计算出来的。
prometheus的job和实例
在prometheus中, 可以抓取的端点成为实例,通常情况下具有相同目的的实例的集合成为job。
例如:
- job_name: "node"
static_configs:
- targets:
- "192.168.100.1:20001"
- "192.168.100.2:20001"
- "192.168.100.3:20001"
上面的实例中,"192.168.100.1:20001"就是一个抓取端点,也就是一个实例, 三个实例在一个job(node)下面。
prometheus的配置文件
在prometheus监控系统,prometheus的职责是采集,查询和存储和推送报警到alertmanager。
# 此片段指定的是prometheus的全局配置, 比如采集间隔,抓取超时时间等.
global:
# 抓取间隔
[ scrape_interval: <duration> | default = 1m ]
# 抓取超时时间
[ scrape_timeout: <duration> | default = 10s ]
# 评估规则间隔
[ evaluation_interval: <duration> | default = 1m ]
# 外部一些标签设置
external_labels:
[ <labelname>: <labelvalue> ... ]
# File to which PromQL queries are logged.
# Reloading the configuration will reopen the file.
[ query_log_file: <string> ]
# 此片段指定报警规则文件, prometheus根据这些规则信息,会推送报警信息到alertmanager中。
rule_files:
[ - <filepath_glob> ... ]
# 此片段指定抓取配置,prometheus的数据采集通过此片段配置。
scrape_configs:
[ - <scrape_config> ... ]
# 此片段指定报警配置, 这里主要是指定prometheus将报警规则推送到指定的alertmanager实例地址。
alerting:
alert_relabel_configs:
[ - <relabel_config> ... ]
alertmanagers:
[ - <alertmanager_config> ... ]
# 指定后端的存储的写入api地址。
remote_write:
[ - <remote_write> ... ]
# 指定后端的存储的读取api地址。
remote_read:
[ - <remote_read> ... ]
默认配置文件参数:
- global: 此片段指定的是prometheus的全局配置, 比如采集间隔,抓取超时时间等。
- rule_files: 此片段指定报警规则文件, prometheus根据这些规则信息,会推送报警信息到alertmanager中。
- scrape_configs: 此片段指定抓取配置,prometheus的数据采集通过此片段配置。
- alerting: 此片段指定报警配置, 这里主要是指定prometheus将报警规则推送到指定的alertmanager实例地址。
- remote_write: 指定后端的存储的写入api地址。
- remote_read: 指定后端的存储的读取api地址。
global片段主要参数
scrape_interval----------配置抓取间隔
scrape_timeout----------抓取超时时间
evaluation_interval-----评估隔离间隔
external_labels----------外部一些标签设置
scrape_config片段主要参数
一个scrape_config 片段指定一组目标和参数, 目标就是实例,指定采集的端点, 参数描述如何采集这些实例。
- scrape_interval: 抓取间隔,默认继承global值。
- scrape_timeout: 抓取超时时间,默认继承global值。
- metric_path: 抓取路径, 默认是/metrics
- scheme: 指定采集使用的协议,http或者https。
- params: 指定url参数。
- basic_auth: 指定认证信息。
- file_sd_configs: 指定服务发现配置
- static_configs: 静态指定服务job。
- relabel_config: relabel设置。
static_configs的样例
#编写配置文件
vim /usr/local/prometheus/prometheus.yml
#末尾添加,job_name名称随便起
- job_name: "node"
static_configs:
- targets:
- "192.168.100.5:20001"
- "192.168.100.6:20001"
#重启pr

Prometheus是时间序列数据监控工具,数据包括指标、样本和时间序列。配置涉及全局参数、抓取间隔、Job与实例定义。relabel_config用于标签重写,控制数据采集。支持静态与动态服务发现,如Consul集成。
最低0.47元/天 解锁文章
1360

被折叠的 条评论
为什么被折叠?



