Prometheus 上手指南

news/2024/9/25 16:45:51/

文章目录

  • Prometheus 相关概念
    • Prometheus 的特点
    • Prometheus 架构
    • 数据模型 Datemode
      • 使用场景
    • 指标类型 Metric type
      • 适用场景
    • 作业和实例 Jobs and instances
      • 使用场景
  • Prometheus 安装
  • Prometheus 配置
  • Grafana 可视化
    • Grafana 安装
    • Grafana 配置选项
    • Grafana UI
  • PromQL
    • 使用位置
    • 样例
    • 格式


Prometheus 相关概念

Prometheus 是一个开源系统监控和警报工具包

Prometheus 的特点

  • 多维数学模型:基于时间序列的数据模型,每个时间序列由度量名称和键值对标签组成
  • PromQL 查询:Prometheus特有的查询语言,可让用户实时选择和聚合时间序列数据,并且表达式结果可显示为图形
  • 无分布式存储:不依赖分布式存储,单个服务器节点是自主的
  • 采用拉取模式:通过HTTP主动从目标处拉取指标数据
  • 可视化选项丰富:Prometheus内置 UI,并支持 Grafana 等可视化工具,支持多种图形和仪表盘

与Prometheus类似的监控系统有:

  • Nagios:传统的IT基础设施监控工具。
  • Zabbix:企业级的分布式监控解决方案。
  • Graphite:专注于时间序列数据存储和图形化。
  • InfluxDB:专门为时间序列数据设计的数据库,常与Telegraf结合使用。
  • Sensu:云原生监控工具,支持自动发现和动态环境。
  • Datadog:SaaS 型监控平台,提供全面的基础设施和应用程序监控。

Prometheus相较于其他监控系统的优势:

  1. 安装配置简单:安装和使用都相对简单,配置文件使用 YAML 格式
  2. 数据模型丰富:数据查询和聚合更加灵活和高效
  3. 专注于高性能:专注于监控和告警,而不是试图成为全能型解决方案,使得它在特定领域表现极为出色,可以每秒处理数百万个指标
  4. 云原生更好支持:与 Kubernetes 等容器编排系统有很好的集成,支持服务发现

Prometheus 架构

Prometheus 的架构与其他一些生态组件

在这里插入图片描述

metrics 是指标的意思

图片中间部分:

  1. Prometheus Server:
    • 核心组件,负责数据的采集、存储和查询
    • Retrieval:检索,负责从目标拉去指标数据
    • TSDB (Time Series Database) :时间序列数据库,用于存储所有采集到的时间序列数据
    • HTTP server:HTTP服务器,用于提供 API 接口,用于数据查询等接口操作
  2. Service discovery:
    • kubernetes:自动发现 Kubernetes 集群中的监控目标
    • file_sd:基于文件的服务发现,用于静态配置监控目标
  3. Node:
    • 表示运行 Prometheus 服务器的物理或者虚拟服务器
    • HDD/SSD:存储 TSDB 数据的硬盘

图片左侧部分:

  1. Prometheus Targets:
    • 通常是长期运行的服务或应用程序
    • 暴露 HTTP 接口提供 Prometheus 抓去指标数据
    • Jobs/exporters:被监控的目标(服务器、应用程序等)
  2. Pushgateway:
    • 用于接收短期作业的指标推送
    • 允许那些无法被 Prometheus 直接拉取的作业推送它们的指标数据
  3. Short-lived jobs:
    • 生命周期较短的作业,难以被 Prometheus 直接拉取
    • 在作业退出时将指标推送到 Prometheus

图片右侧部分:

  1. Data Visualization and Export:
    • Prometheus Web UI:Prometheus内置的简单用户界面
    • Grafana:Prometheus更好的可视化工具
    • API clients:使用 Prometheus API 的客户端应用程序
  2. PromQL:
    • Prometheus 查询语言,用于查询和聚合时间序列数据
  3. Alertmanager:
    • 处理由 Prometheus 服务器发送的警报
    • 对警报进行分组、去重,并路由到正确的接收方式(如 PagerDuty、Email 等)

关于Prometheus Targets与Pushgateway:

Pormetheus Targets:

作用:

  • 是 Prometheus 直接抓取指标数据的目标
  • 通常是长期运行的服务或应用程序

特点:

  • 暴露 HTTP 端点(通常是 /metrics),Prometheus 定期从这个端点拉取数据
  • 被动等待 Prometheus 来抓取数据

适用场景:

  • 持续运行的服务,如 web 服务器、数据库、应用服务器等
  • 能够持续暴露最新指标的系统
  • 适合大多数标准的监控场景

Pushgateway:

作用:

  • 作为中间人接收来自短期作业的指标推送
  • 存储这些指标,知道 Prometheus 来抓取

特点:

  • 主动接收来自客户端推送的指标数据
  • 允许短期作业在完成时推送它们的指标

适用场景:

  • 短期作业或者批处理任务
  • 防火墙后不能直接被 Prometheus 访问的作业
  • 需要汇总多个源数据后再提供给 Prometheus 的场景
区别Prometheus TargetsPushgateway
数据流向被动等待拉取主动接收推送
持久性长期运行处理短期作业
数据新鲜度最新数据存储旧数据,直到被覆盖
复杂度简单直接额外的组件和复杂性

无法被 Prometheus 直接拉取的作业示例:

  • 批处理作业:如夜间数据处理、定期报告生成等
  • CI/CD 流水线中的构建作业
  • 定期备份任务
  • 防火墙后的内部服务,Prometheus 无法直接访问
  • 短期的云函数或 serverless 任务
  • 分布式系统中的临时工作节点
  • 离线数据处理任务,如 ETL 作业
  • 定期维护脚本或系统检查
  • 动态扩缩容的实例,可能在 Prometheus 下一次抓取前就已经消失。
  • 需要聚合多个微服务数据的场景,where 个别微服务可能短暂不可用

以上场景需要使用 Pushgateway


数据模型 Datemode

Prometheus官网介绍:https://prometheus.io/docs/concepts/data_model/

Prometheus 的数据模型基于时间序列。每个时间序列的组成:

  • 指标名称(Metirc name):描述被测量的系统特征(例如 http_requests_total
  • 标签对(Label pairs):键值对的形式,用于进一步区分指标的不同维度(例如 method="POST",status="200"
  • 时间戳(Timestamp):数据点的采集时间
  • 样本值(Sample value):在特定时间点测量的数值

示例:

http_requests_total{method="POST",status="200"} 1234 1600781977

使用场景

  • 需要存储和查询随时间变化的数据
  • 需要对数据进行多维度分析

指标类型 Metric type

Prometheus官网介绍:https://prometheus.io/docs/concepts/metric_types/

四种指标类型:

  1. 计数器(Counter):单调递增的累计值
  2. 仪表盘(Gauge):可以上下波动的瞬时值
  3. 直方图(Histogram):对观察值进行采样,提供总和和观察次数
  4. 摘要(Summary):类似直方图,但提供基于滑动窗口的分位数计算

适用场景

  • Counter: 用于累积值,例如:请求总数、错误总数
  • Gauge: 用于可变值,例如:当前温度、内存使用量
  • Histogram: 用于需要分布情况的数据,例如:响应时间分布
  • Summary: 用于需要准确百分位数的场景,例如:请求持续时间的第 90 百分位

作业和实例 Jobs and instances

Prometheus官网介绍:https://prometheus.io/docs/concepts/jobs_instances/

  • 作业(Job):一组执行相同任务的实例集合
  • 实例(Instance):一个可以被抓取的端点,通常对应一个单独的进程

yaml 文件中 Prometheus 自动为每个抓取的目标添加这些标签:

  • job:配置的作业名称
  • instance:被抓取的目标 <host>:<port>

示例 yaml 配置:

scrape_configs:- job_name: 'node exporter'static_configs:- targets: ['192.168.84.10:9100', '192.168.84.11:9100', '192.168.84.12:9100']

使用场景

  • 需要对多个相似的目标进行分组和管理
  • 需要区分相同服务的不同实例

Prometheus 安装

此处以三台 CentOS 9 虚拟机为例:

虚拟机安装推荐文章:Linux CentOS9安装配置-CSDN博客

虚拟机固定 IP主机名
192.168.84.10node1
192.168.84.11node2
192.168.84.12node3

Prometheus组件下载地址:https://prometheus.io/download/

需要下载的组件:

组件介绍
prometheusPrometheus监控系统与时间序列数据库
node_exporter机器指标导出器
pushgateway用于临时和批量作业的推送接受器
alertmanagerPrometheus 警报管理器

介绍都是官方直译

  1. 在 node1 节点上上传解压这四个组件(此处对组件进行了重命名,去除了.linux-amd64 后缀)

在这里插入图片描述

  1. 进入 prometheus 组件目录

在这里插入图片描述

其中 prometheus.yml 是它的配置文件(由后缀可以看出改配置文件使用的是 yaml 语法),默认内容为:

# my global config
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:# - "first_rules.yml"# - "second_rules.yml"# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: "prometheus"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ["localhost:9090"]
  1. scrape_configs 模块中 static_configstargets 内容 localhost 改为 node1 IP或主机名(需注意是否配置主机名映射)
scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: "prometheus"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ["192.168.84.10:9090"]
  1. 通过 pushgateway 组件获取数据,需要在 prometheus.yml 文件 scrape_configs 中配置相关 job_name

注意修改 IP 地址,默认端口为 9091

- job_name: 'pushgateway'static_configs:- targets: ['192.168.84.10:9091']labels:instance: pushgateway
  1. 第一部分:通过 node_export 组件获取数据,需要在 prometheus.yml 文件中配置相关 job_name

从 node1、node2、node3 三台节点拿取数据

注意 node1、node2、node3 IP 地址,默认端口为9100

- job_name: 'node exporter'static_configs:- targets: ['192.168.84.10:9100', '192.168.84.11:9100', '192.168.84.12:9100']
  1. 第二部分:将 node_exporter 分发到 node2、node3
#分发给node2
scp -r /home/fishpie/apps/node_exporter-1.8.2 root@192.168.84.11:/home/fishpie/apps
#分发给node3
scp -r /home/fishpie/apps/node_exporter-1.8.2 root@192.168.84.11:/home/fishpie/apps

或是在node2、node3下载安装 node_exporter-1.8.2

  1. 在 node1、node2、node3 启动 node_exporter-1.8.2 ,在 node1 启动 prometheus

为了使 node_exporterprometheus 服务做到开机自启动与监控中断后自动重启,我们可以将其作为一个系统服务并设置为开机自启动(类似于会自动重启的 nohup)

  • 第一步:node1、node2、node3 禁用 SELinux:
sudo vim /etc/selinux/config

将文件内 SELINUX 参数改为 disabled ,如下图
在这里插入图片描述

node1、node2、node3 重启系统使修改生效

sudo reboot
sudo vim /etc/systemd/system/prometheus.service

添加以下内容,注意改为自己的 prometheus 命令位置、prometheus.yml 位置, User 为自己系统的用户

[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target[Service]
User=fishpie
ExecStart=/home/fishpie/apps/prometheus-3.0.0/prometheus --config.file=/home/fishpie/apps/prometheus-3.0.0/prometheus.yml
Restart=always[Install]
WantedBy=multi-user.target
  • 第三步:node1、node2、node3 创建 node_exporter 服务文件
sudo vim /etc/systemd/system/node_exporter.service

添加一下内容,注意修改自己 node_exporter 命令

[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target[Service]
User=fishpie
ExecStart=/home/fishpie/apps/node_exporter-1.8.2/node_exporter
Restart=always[Install]
WantedBy=multi-user.target
  • 第四步:重新加载 systemd 管理器配置,在 node1、node2、node3 节点执行
sudo systemctl daemon-reload
  • 第五步:启动服务

node1上:

sudo systemctl start prometheus
sudo systemctl start node_exporter

node2、node3上:

sudo systemctl start node_exporter
  • 第六步:检查服务状态

node1上:

sudo systemctl status prometheus
sudo systemctl status node_exporter

node2、node3上:

sudo systemctl status node_exporter

如果 prometheusnode_exporter 服务正常则会显示:
在这里插入图片描述

  • 第七步:确认无误后设为服务开机自启动

node1:

sudo systemctl enable prometheus
sudo systemctl enable node_exporter

node2、node3:

sudo systemctl enable node_exporter
  • 访问网页 192.168.84.10:9090 查看 Target 运行状态

找到 Target 如果正常则会有一下页面
在这里插入图片描述

如果出现:

Error scraping target: Get “http://192.168.84.11:9100/metrics”: dial tcp 192.168.84.11:9100: connect: no route to host

则需要检查自己的防火墙是否关闭或者 9100 端口是否放行

  • 如果有需要启动 pushgateway 的情况

node1 在 pushgateway 目录下执行 :

nohup ./pushgateway --web.listen-address :9091 > ./pushgateway.log 2>&1 &

后台运行 pushgateway
在这里插入图片描述

此时我们的 pushgateway 就是 up 状态了
在这里插入图片描述

  • 如果有需要启动 alertmanager 的情况

node1 在 alertmanager 目录下执行:

nohup ./alertmanager --config.file=alertmanager.yml > ./alertmanager.log 2>&1 &

Prometheus 配置

prometheus_526">prometheus

  • 目录内容
    在这里插入图片描述

prometheus.yaml 是 Prometheus 服务器的主要配置文件,定义了 Prometheus 如何收集指标、管理数据、配置告警等所有核心行为

prometheus.yaml 使用 YAML 格式,支持动态重载

# my global config
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:# - "first_rules.yml"# - "second_rules.yml"# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: "prometheus"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ["192.168.84.10:9090"]- job_name: 'pushgateway'static_configs:- targets: ['192.168.84.10:9091']labels:instance: pushgateway- job_name: 'node exporter'static_configs:- targets: ['192.168.84.10:9100', '192.168.84.11:9100', '192.168.84.12:9100']

以上配置文件分为四个大模块:

  1. 全局配置(global):
global:scrape_interval: 15sevaluation_interval: 15s
  • scrape_interval :设置全局默认的数据抓去间隔
  • evaluation_interval :设置规则评估时间(告警检查的时间)
  1. Alertmanager 配置(alerting):
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093
  • 用于配置 Alertmanager ,配置信息中 alertmanager 填为安装启动了 alertmanager 的主机名或IP
  1. 规则文件(rule_files):
rule_files:# - "first_rules.yml"# - "second_rules.yml"
  • 用于指定告警规则和记录规则文件
  1. 抓取配置 (scrape_configs) 注意缩进问题
- job_name: "prometheus"static_configs:- targets: ["192.168.84.10:9090"]
  • 定义了 Prometheus 从哪些目标收集指标,此处配置为 Prometheus 抓去自己的指标,监控地址为 192.168.84.10:9090
- job_name: 'pushgateway'static_configs:- targets: ['192.168.84.10:9091']labels:instance: pushgateway
  • 配置抓取 Pushgateway 的指标,地址为 192.168.84.10:9091
  • 添加了一个自定义标签 instance: pushgateway

自定义标签 instance: pushgateway 的作用:

  • 标识:这个标签帮助唯一标识这个特定的 Pushgateway 实例
  • 查询和过滤:在 Prometheus 的查询语言 PromQL 中,你可以使用这个标签来过滤或选择特定的指标,例如使用查询 {instance="pushgateway"} 来选择所有来自这个 Pushgateway 的指标
  • 区分数据源:在多个数据源的情况下,这个标签可以区分哪些指标是 Pushgateway 的
  • 可视化部分:这个标签可以帮助在 Grafana 等可视化工具组织和过滤仪表板
- job_name: 'node exporter'static_configs:- targets: ['192.168.84.10:9100', '192.168.84.11:9100', '192.168.84.12:9100']
  • 配置抓取三个 Node Exporter 实例的指标,分别位于三个不同的 IP 地址上

alertmanager

  • 目录内容
    在这里插入图片描述

alertmanager 配置文件为 alertmanager.yml

采用 YAML语法

  • alertmanager 配置文件 alertmanager.yml 默认内容:
route:group_by: ['alertname']group_wait: 30sgroup_interval: 5mrepeat_interval: 1hreceiver: 'web.hook'
receivers:- name: 'web.hook'webhook_configs:- url: 'http://127.0.0.1:5001/'
inhibit_rules:- source_match:severity: 'critical'target_match:severity: 'warning'equal: ['alertname', 'dev', 'instance']

alertmanager.yml 配置文件由三个大模块构成:

  1. route(路由):
route:group_by: ['alertname']group_wait: 30sgroup_interval: 5mrepeat_interval: 1hreceiver: 'web.hook'
  • group_by: 按 ‘alertname’ 对告警进行分组

  • group_wait: 在发送分组的第一个告警前等待 30 秒,允许收集更多相关告警

  • group_interval: 发送同一组的后续告警的间隔为 5 分钟

  • repeat_interval: 如果告警持续存在,每 1 小时重复发送一次

  • receiver: 指定默认接收者为 ‘web.hook’(由以下 receiver 定义)

  1. reveivers(接受者):
receivers:- name: 'web.hook'webhook_configs:- url: 'http://127.0.0.1:5001/'
  • 定义了一个名为 ‘web.hook’ 的接收者,并将告警发送到 http://127.0.0.1:5001/
  • 接受者可以定义多个
  1. inhibit_rules(抑制规则)
inhibit_rules:- source_match:severity: 'critical'target_match:severity: 'warning'equal: ['alertname', 'dev', 'instance']
  • 当存在严重级别为 ‘critical’ 的告警时,抑制严重级别为 ‘warning’ 的相关告警
  • ‘alertname’、‘dev’ 和 ‘instance’ 标签必须相同才会触发抑制

Grafana 可视化

Prometheus 官方推荐的可视化操作界面,使用 Grafana 需要有以下两个必需组件:

Grafana 安装

两种方法可以为 Grafana 配置 Prometheus。可以使用 Grafana Cloud 上托管的 Grafana 实例或在本地运行 Grafana ,此处选择本地运行 Grafana

也可以选择安装 Windows 客户端 ,此处选择在 Linux 安装

Grafana 安装包地址:https://grafana.com/grafana/download

此处选取两种安装方式:

  1. 独立 Linux 二进制文件,在需要的安装目录
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-11.2.0.linux-amd64.tar.gztar -zxvf grafana-enterprise-11.2.0.linux-amd64.tar.gz
  1. yum 安装,能自动作为系统服务,不需要再手动配置(推荐)
sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-11.2.0-1.x86_64.rpm

此处我们采用 yum 安装
在这里插入图片描述

如果 grafana 使用 YUM 正常安装,则在输入

whereis grafana

后会以下显示
在这里插入图片描述


Grafana 配置选项

Grafana 完整配置文档:https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/

Grafana 后端在其配置文件中定义了许多配置选项(在 Linux 系统上通常位于/etc/grafana/grafana.ini)

在这里插入图片描述

如图

现在我们编辑这个 grafana.ini 文件

大多数情况下,默认配置就足够了。只有在需要特定设置时才需要修改

修改配置后一定要重启Grafana服务以使更改生效

一定备份原始的 grafana.ini 文件!

sudo vim /etc/grafana/grafana.ini
  • 更改 HTTP 端口(默认为 3000)
[server]
http_port = 3000

在这里插入图片描述

  • 设置根 URL(如果Grafana在反向代理后面)
[server]
root_url = http://这里的汉字改为你的域名/grafana
# 根据自己的代理路径进行更改
  • 配置数据库(默认使用 SQLite)
[database]
type = mysql
host = <数据库的地址>:3306
name = <你的数据库名称>
user = <你的数据用户>
password = <你的数据库密码>
  • 配置 Grafana 的用户名和密码
[security]
admin_user = <自己设置用户名>
admin_password = <自己设置密码>
  • 配置日志
[log]
mode = console file
level = info

修改完配置后,保存退出文件并启动 Grafana 服务

#启动 grafana服务
sudo systemctl start grafana-server
#平滑重启 grafana 服务
sudo systemctl restart grafana-server

Grafana UI

作者是在 node1 节点(192.168.84.10)安装配置的 Grafana

如果上述步骤正确完成,则在访问 http://192.168.84.10:3000/ 会有
在这里插入图片描述

此处输入自己设置的 用户名 和 密码 即可进入 Grafana 监控页面
在这里插入图片描述

添加 Prometheus 数据源
在这里插入图片描述

选择 Prometheus 数据源
在这里插入图片描述

设置 Prometheus 所在 URL
在这里插入图片描述

下拉保存

创建仪表盘
在这里插入图片描述

创建新的仪表盘
在这里插入图片描述
在这里插入图片描述

查看 CPU 使用情况
在这里插入图片描述

一些常见的监控项目指标:

系统资源:

  • CPU使用率:node_cpu_seconds_total
  • 内存使用:node_memory_MemTotal_bytes - node_memory_MemFree_bytes
  • 磁盘使用:node_filesystem_free_bytes
  • 网络流量:node_network_receive_bytes_total, node_network_transmit_bytes_total

应用性能:

  • HTTP请求率:http_requests_total
  • 请求延迟:http_request_duration_seconds
  • 错误率:http_requests_total{status=~"5.."} / http_requests_total

数据库指标:

  • 连接数:mysql_global_status_threads_connected
  • 查询性能:mysql_global_status_queries

容器和编排指标(如果使用Kubernetes):

  • 容器CPU使用:container_cpu_usage_seconds_total
  • 容器内存使用:container_memory_usage_bytes

更用法请详见官方文档:https://grafana.com/docs/grafana/latest/panels-visualizations/visualizations/time-series/

现成的仪表盘:https://grafana.com/grafana/dashboards/


PromQL

PromQL(Prometheus Query Language)是专为 Prometheus 设计的查询语言,用于从 Prometheus 数据库中提取、过滤和聚合监控数据

使用位置

  • Prometheus 自带 UI 中
    在这里插入图片描述

  • 在 Grafana 中

仪表盘中选择
在这里插入图片描述


样例

以下是一些常用的 PromQL 的使用样例:

  • 返回所有 CPU 相关的时间序列
node_cpu_seconds_total
  • 返回空闲 CPU 时间的时间序列
node_cpu_seconds_total{mode="idle"}
  • 返回过去 5 分钟的空闲 CPU 时间数据
node_cpu_seconds_total{mode="idle"}[5m]

  • 使用 rate() 函数返回过去 5 分钟内每秒的平均 CPU 空闲率
rate(node_cpu_seconds_total{mode="idle"}[5m])
  • 使用 sum() 函数计算每个实例的总 CPU 使用率
sum(rate(node_cpu_seconds_total{mode!="idle"}[5m])) by (instance)
  • 组合函数计算每个实例的 CPU 使用百分比
100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

  • 预测 4 小时后哪些实例的根分区可能耗尽空间
predict_linear(node_filesystem_free_bytes{mountpoint="/"}[1h], 4 * 3600) < 0

格式

可以看出 PromQL 有一些规律:

# 基本格式
<metric name>{<label matcher>}[<time range>]
  • <metric name>: 指标名称

  • {<label matcher>}: 可选的标签匹配器

  • [<time range>]: 可选的时间范围选择器

标签匹配器格式:

{label1="value1", label2=~"regex2", label3!="value3"}
  • =: 精确匹配

  • !=: 不等于

  • =~: 正则匹配

  • !~: 正则不匹配

更多细节详见:https://prometheus.io/docs/prometheus/latest/querying/basics/


Prometheus 官网:https://prometheus.io/

Grafana 文档:https://grafana.com/docs/grafana/latest/getting-started/get-started-grafana-prometheus/

Grafana 仪表盘:https://grafana.com/grafana/dashboards/


http://www.ppmy.cn/news/1530368.html

相关文章

PHP探索校园新生态校园帮小程序系统小程序源码

探索校园新生态 —— 校园帮小程序系统&#xff0c;让生活更精彩&#xff01; &#x1f331;【开篇&#xff1a;走进未来校园&#xff0c;遇见新生态】&#x1f331; 你是否厌倦了传统校园的繁琐与单调&#xff1f;是否渴望在校园里也能享受到便捷、智能的生活体验&#xff1…

渗透测试手法 以及 判断方法

本文章由 柯林斯.民间新秀 v公众号提供 使用方法:当你看到这个的时候 复制下来 放到你自己的word文档里面进行使用 声明 群友 公众号协议 我们的目标是从各种渠道收集并集中展示漏洞&#xff0c;包括通过用户提交&#xff0c;邮件列表等。本站主提供的信息完全是出于教育目的…

爬虫--翻页tips

免责声明&#xff1a;本文仅做分享&#xff01; 伪线程 from DrissionPage import ChromiumPage import timepage ChromiumPage() page.get("https://you.ctrip.com/sight/taian746.html") # 初始化 第0页 index_page 0# 翻页点击函数 sleep def page_turn():page…

python爬虫:从12306网站获取火车站信息

代码逻辑 初始化 (init 方法)&#xff1a; 设置请求头信息。设置车站版本号。 同步车站信息 (synchronization 方法)&#xff1a; 发送GET请求获取车站信息。返回服务器响应的文本。 提取信息 (extract 方法)&#xff1a; 从服务器响应中提取车站信息字符串。去掉字符串末尾的…

大数据Flink(一百二十三):五分钟上手Flink MySQL连接器

文章目录 五分钟上手Flink MySQL连接器 一、创建数据库表 二、​​​​​​创建session集群 三、源表查询 四、​​​​​窗口计算 五、​​​​​​结果数据写回数据库 五分钟上手Flink MySQL连接器 MySQL Connector可以将本地或远程的MySQL数据库连接到Flink中&#x…

Centos下安装Maven(无坑版)

Linux 安装 Maven Maven 压缩包下载与解压 华为云下载源&#xff0c;自行选择版本 下面的示例使用的是 3.8.1 版本 wget https://repo.huaweicloud.com/apache/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz解压 tar -zxvf apache-maven-3.8.1-bin.tar.gz移…

Oracle数据库的比较运算符Comparison Operators

Comparison operators compare one expression to another. The result is always either TRUE, FALSE, or NULL. If the value of one expression is NULL, then the result of the comparison is also NULL. 如果一个表达式的值为NULL&#xff0c;那么比较的结果也是NULL。 …

cmaklist流程控制——调试及发布

cmaklist流程控制 目前只会配置-编译调试-打包发布&#xff0c;并且不会workflow控制 后续学习配置-编译调试-测试-打包发布&#xff0c;workflow控制&#xff0c;理解整个流程&#xff0c;目前对流程控制理解也不够。 1.CMake Presets 先于Cmakelist文件&#xff0c;指导项…