prometheus使用 (九) 查询持久化--记录规则

本文介绍了如何使用Prometheus的记录规则功能来管理和记录常用的PromQL查询语句,以便于后续快速调用。通过创建规则文件,定义别名和查询表达式,可以更高效地查询和监控系统资源,如CPU使用率。规则组的命名必须唯一,且每个规则组内的规则按固定间隔执行。文章还展示了如何检查语法、重载配置并查看已添加的规则。
摘要由CSDN通过智能技术生成

我们在前面已经使用了很多的promQL语句,但是大家有没有发现一个问题

就是每次我们想要查询一个东西,都要从头想这个语句要怎么写,可能有人存有笔记还好

如果没有就很麻烦了,这说明我们需要一个记录常用语句的方案,而prometheus中就提供的方法就是"记录规则"

案例

#首先我们要创建记录规则目录
mkdir /etc/prometheus/rules && cd $_

#添加规则文件
cat > node_rules.yml  <<EOF
groups:
- name: node_rules       
  interval: 10s    #局部评估间隔,优先级高于全局
  rules:
  - record: instance:node_cpu:avg_irate5m  #别名,自定义 (最好能说明白是做什么的)
                                           #相当于给下面的查询语句起了个别名方便查询  
    expr: avg(irate(node_cpu_seconds_total{instance=~".*:9100"}[5m])) by(instance)* 100
                         #需要持久化的promQL查询语句
EOF

#上面规则文件中的语句是用于查询cpu使用率的,前面的文章有案例

vi /etc/prometheus/prometheus.yml

#添加
3   evaluation_interval: 15s    #全局评估周期时间,优先级低于局部配置

27 rule_files:
28   - "rules/node_rules.yml"  #指定规则文件的路径

#检查语法
promtool check config /etc/prometheus/prometheus.yml

#重载配置
curl -X POST http://192.168.1.20:9090/-/reload

 

如下我们可以看到添加的规则,并且可以根据别名快速调用写好的promQL语句查询

 可能显示的有点慢,需要等一下ˋ( ° ▽、° )

小知识

记录规则在规则组中定义,这里的规则组叫做node_rules

规则组名称在服务器中必须是"唯一的"   规则组内的规则以固定间隔顺序执行
默认情况下,这是通过全局evaluation_interval来控制的,但是你可以使用interval子句在规则组中覆盖(子文件优先)

 

并且这个记录规则可以被当作参数调用 如下

 

Docker使用Prometheus,可以通过docker-compose实现持久化存储。具体步骤如下: 1. 创建一个docker-compose.yml文件,在其中定义Prometheus服务和数据卷。 ``` version: '3' services: prometheus: image: prom/prometheus volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml - prometheus_data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' ports: - '9090:9090' volumes: prometheus_data: ``` 在上面的配置中,我们定义了一个名为“prometheus”的服务,它使用Prometheus的官方镜像,并将配置文件和数据卷映射到宿主机上。配置文件将在后面的步骤中创建。 2. 创建Prometheus配置文件。 在宿主机上创建一个名为“prometheus.yml”的文件,并添加以下内容: ``` global: scrape_interval: 15s # 默认的采集时间为15秒 evaluation_interval: 15s # 默认的评估时间为15秒 scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'node_exporter' static_configs: - targets: ['node-exporter:9100'] # node-exporter的服务名为node-exporter ``` 在上面的配置中,我们定义了两个作业(jobs):“prometheus”和“node_exporter”。第一个作业是Prometheus自身的监控,而第二个作业是用于监控主机资源的node_exporter。 3. 启动Prometheus服务。 在命令行中进入docker-compose.yml所在的目录,并输入以下命令启动服务: ``` docker-compose up -d ``` 这将在后台启动Prometheus服务,并将数据存储在名为“prometheus_data”的数据卷中。 现在,可以通过浏览器访问localhost:9090来访问Prometheus仪表板。可以在仪表板中添加监控指标并设置报警规则。 总结: 上述步骤演示了如何使用docker-compose在Docker持久化存储Prometheus数据。通过这种方式,可以轻松地管理和监控容器化应用程序,并确保数据不会丢失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值