zoukankan      html  css  js  c++  java
  • 4 PromQL

    Prometheus 提供了一种功能表达式语言 PromQL,允许用户实时选择和汇聚时间序列数据。表达式的结果可以在浏览器中显示为图形,也可以显示为表格数据,或者由外部系统通过 HTTP API 调用。

    1 查询结果类型

    • 瞬时数据 (Instant vector): 包含一组时序,每个时序只有一个点,例如:prometheus_http_requests_tota
    • 区间数据 (Range vector): 包含一组时序,每个时序有多个点,例如:prometheus_http_requests_tota[5m]
      • 十分钟范围查询,支持d,m,y,ms等时间单位
        prometheus_http_requests_total[10m]
        偏移量,十分钟前
        prometheus_http_requests_total offset 10m
        偏移量,十分钟前,5分钟范围
        prometheus_http_requests_total[5m] offset 10m
        每间隔1分钟显示1个点
        prometheus_http_requests_total[5m:1m]

    • 纯量数据 (Scalar): 纯量只有一个数字,没有时序,例如:count(prometheus_http_requests_tota)

    2 正则匹配

    prometheus_http_requests_total{code=~“40."}
    取反正则匹配
    prometheus_http_requests_total{code!~"40.”}
    精确匹配
    prometheus_http_requests_total{code=“400”}
    取反匹配
    prometheus_http_requests_total{code!=“400”}

    3 四则运算

    up ±*/ 5
    up ^ 3 三次方
    标签完全相同情况下,两个值可以直接运算
    process_virtual_memory_max_bytes + process_virtual_memory_bytes
    若标签不完全相同,可以取其中1个值运算,如取均有的 instance标签运算
    node_cpu_precent + on(instance) node_cpu_total

     4 比较运算

    (> < >= <= !=)

    返回大于100的值
    prometheus_http_requests_total > 100
    返回0/1 判断是否大于100
    prometheus_http_requests_total > bool 100

     5 聚合运算

    count、sum、min、max、avg、topk(前k)、bottomk(后k),count_values(统计含有某个参数值的数量)
    #格式
    <聚合函数>([parameter,] <指标查询语句>) [without|by ()]
    #参数
    #1. "without"⽤于从计算结果中移除列举的标签,⽽保留其它标签
    #2. “by” 则正好相反,结果向量中只保留列出的标签,其余标签则移除。
    #通过without和by可以按照样本的问题对数据进⾏聚合。
    #说明
    其中只有 count_values , quantile , topk , bottomk ⽀持参数(parameter)。
    
    top3和bottomk3
    topk(3, prometheus_http_requests_total)
    bottomk(3, prometheus_http_requests_total)
    统计含有gwm_uc标签所有值的数量
    count_values(“gwm_uc”,gateway_requests_seconds_count)
    
    计算5分钟内增长率
    rate平滑/irate瞬时
    rate(go_memstats_gc_cpu_fraction[5m])

    6  子查询

    avg_over_time() #指定间隔内所有点的平均值。
    min_over_time() #指定间隔中所有点的最小值。
    max_over_time() #指定间隔内所有点的最大值。
    sum_over_time() #指定时间间隔内所有值的总和。
    
    #查询一天空闲空间的平均值
    avg_over_time(node_filesystem_files_free[1d])
    
    max_over_time(rate(http_requests_total[5m])[1h:1m])

    7 逻辑运算

    and or unless

  • 相关阅读:
    《大型网站技术架构:核心原理与案例分析》阅读笔记三
    《大型网站技术架构:核心原理与案例分析》阅读笔记二
    《大型网站技术架构:核心原理与案例分析》阅读笔记一
    《用户故事与敏捷方法》阅读笔记三
    软件需求与分析课堂讨论一
    信息领域热词分析
    datax的第一次使用
    质量属性2——质量六大属性之可用性在代码端的实现
    质量属性1——《淘宝网》
    阅读笔记之——《架构漫谈》四
  • 原文地址:https://www.cnblogs.com/lulin9501/p/15343238.html
Copyright © 2011-2022 走看看