Prometheus 上手指南

server/2024/11/14 12:35:54/

文章目录

  • 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/server/119187.html

相关文章

(SERIES12)DM性能优化

1 前言 1.1 性能优化的概念 性能优化是指在不影响系统运行正确性的前提下&#xff0c;使之运行地更快&#xff0c;完成特定功能所需的时间更短。达梦数据库性能优化主要包含以下内容&#xff1a; 数据库架构优化数据库参数优化SQL 优化统计信息 1.2 工具与术语 数据库性能优…

Element走马灯组件循环播放两个页面是方向不一致

摘要&#xff1a;使用Carousel 走马灯循环播放同一类型的图片、文字等内容&#xff0c;会在循环内容为两组是出现下图 [1]中的现象。本文记录下如何解决 之前项目遇到过一次这个问题&#xff0c;由于indicator-position 指示器不用显示&#xff0c;则判断内容长度为2时&#xf…

PHP省时省力海报在线制作系统小程序源码

省时省力海报在线制作系统&#xff1a;设计小白也能秒变大师 &#x1f3a8; 开篇&#xff1a;告别繁琐&#xff0c;拥抱高效设计 你还在为设计一张海报而熬夜加班吗&#xff1f;还在为找不到合适的素材而焦头烂额吗&#xff1f;别担心&#xff0c;“省时省力海报在线制作系统”…

道路裂缝,坑洼,病害数据集-包括无人机视角,摩托车视角,车辆视角覆盖道路

道路裂缝&#xff0c;坑洼&#xff0c;病害数据集 包括无人机视角&#xff0c;摩托车视角&#xff0c;车辆视角 覆盖道路所有问题 一共有八类16000张 1到7依次为: [横向裂缝, 纵向裂缝, 块状裂缝, 龟裂, 坑槽, 修补网状裂缝, 修补裂缝, 修补坑槽] 道路病害&#xff08;如裂缝、…

【论文串烧】多媒体推荐中的模态平衡学习 | 音视频语音识别中丢失导致的模态偏差对丢失视频帧鲁棒性的影响

文章目录 一、多媒体推荐中的模态平衡学习1.1 研究背景1.2 解决问题1.3 实施方案1.4 文章摘要1.5 文章重点1.6 文章图示图 1&#xff1a;不同模型变体在 AmazonClothing 数据集上的初步研究图 2&#xff1a;CKD模型架构的说明图 3&#xff1a;在 Amazon-Clothing 数据集上训练过…

PostgreSQL - SQL语句1

本文翻译整理自&#xff1a;https://www.postgresql.org/docs/15/sql.html 文章目录 第4章 SQL语法4.1 词汇结构4.1.1标识符和关键词4.1.2常数4.1.2.1字符串常量4.1.2.2 具有C样式转义的字符串常量4.1.2.3 具有Unicode转义的字符串常量4.1.2.4美元报价字符串常量4.1.2.5位串常量…

npm install报错,gyp verb `which` failed Error: not found: python

主要错误 gyp verb which failed Error: not found: python2 gyp ERR! configure error gyp ERR! stack Error: Cant find Python executable "python", you can set the PYTHON env variable. npm ERR! node-sass4.14.1 postinstall: node scripts/build.js 全部错…

leetcode练习 格雷编码

n 位格雷码序列 是一个由 2n 个整数组成的序列&#xff0c;其中&#xff1a; 每个整数都在范围 [0, 2n - 1] 内&#xff08;含 0 和 2n - 1&#xff09;第一个整数是 0一个整数在序列中出现 不超过一次每对 相邻 整数的二进制表示 恰好一位不同 &#xff0c;且第一个 和 最后一…