promQL语句整理

PromQL入门指南
本文介绍Prometheus查询语言PromQL的基础知识,包括时间序列的理解、四种指标类型及其应用场景、PromQL的基本使用方法及常用操作符、函数等内容。

前言:之前的文章已经介绍了prometheus原理、安装配置,可视化以及告警,本文主要是梳理prometheus时序数据库语法promQL的基本使用。

一、理解时间序列

1.1 样本

Prometheus会将所有采集到的样本数据以时间序列(time-series)的方式保存在内存数据库中,并且定时保存到硬盘上。time-series是按照时间戳和值的序列顺序存放的,我们称之为向量(vector). 每条time-series通过指标名称(metrics name)和一组标签集(labelset)命名。如下所示,可以将time-series理解为一个以时间为Y轴的数字矩阵:

^. . . . . . . . . . . . . . . . .   . .   node_cpu{
   
   cpu="cpu0",mode="idle"}. . . . . . . . . . . . . . . . . . .   node_cpu{
   
   cpu="cpu0",mode="system"}. . . . . . . . . .   . . . . . . . .   node_load1{
   
   }. . . . . . . . . . . . . . . .   . .  
  v
    <------------------ 时间 ---------------->

在time-series中的每一个点称为一个样本(sample),样本由以下三部分组成:

  • 指标(metric):metric name和描述当前样本特征的labelsets;
  • 时间戳(timestamp):一个精确到毫秒的时间戳;
  • 样本值(value): 一个float64的浮点型数据表示当前样本的值。
<--------------- metric ---------------------><-timestamp -><-value->
http_request_total{
   
   status="200", method="GET"}@1434417560938 => 94355
http_request_total{
   
   status="200", method="GET"}@1434417561287 => 94334

http_request_total{
   
   status="404", method="GET"}@1434417560938 => 38473
http_request_total{
   
   status="404", method="GET"}@1434417561287 => 38544

http_request_total{
   
   status="200", method="POST"}@1434417560938 => 4748
http_request_total{
   
   status="200", method="POST"}@1434417561287 => 4785
1.2 指标(Metric)

在形式上,所有的指标(Metric)都通过如下格式标示:

<metric name>{
   
   <label name>=<label value>, ...}

标的名称(metric name)可以反映被监控样本的含义(比如,http_request_total - 表示当前系统接收到的HTTP请求总量)。指标名称只能由ASCII字符、数字、下划线以及冒号组成并必须符合正则表达式[a-zA-Z_:][a-zA-Z0-9_:]*

标签(label)反映了当前样本的特征维度,通过这些维度Prometheus可以对样本数据进行过滤,聚合等。标签的名称只能由ASCII字符、数字以及下划线组成并满足正则表达式[a-zA-Z_][a-zA-Z0-9_]*

其中以__作为前缀的标签,是系统保留的关键字,只能在系统内部使用。标签的值则可以包含任何Unicode编码的字符。在Prometheus的底层实现中指标名称实际上是以__name__=的形式保存在数据库中的,因此以下两种方式均表示的同一条time-series:

api_http_requests_total{
   
   method="POST", handler="/messages"}

等同于

{
   
   __name__="api_http_requests_total",method="POST", handler="/messag
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值