Prometheus监控学习笔记之PromQL简单示例
0x00 简单的时间序列选择
返回度量指标 http_requests_total 的所有时间序列样本数据:
http_requests_total
返回度量指标名称为 http_requests_total,标签分别是 job="apiserver", handler="/api/comments" 的所有时间序列样本数据:
http_requests_total{job="apiserver", handler="/api/comments"}
返回度量指标名称为 http_requests_total,标签分别是 job="apiserver", handler="/api/comments",且是 5 分钟内的所有时间序列样本数据:
http_requests_total{job="apiserver", handler="/api/comments"}[5m]
[info] 注意
一个区间向量表达式不能直接展示在
Graph图表中,但是可以展示在Console视图中。
使用正则表达式,你可以通过特定模式匹配标签为 job 的特定任务名,获取这些任务的时间序列。在下面这个例子中, 所有任务名称以 server 结尾。
http_requests_total{job=~".*server"}
Prometheus中的所有正则表达式都使用 RE2 语法
返回度量指标名称是 http_requests_total, 且 http 返回码不以 4 开头的所有时间序列数据:
http_requests_total{status!~"4.."}
0x01 使用函数,操作符等
返回度量指标 http_requests_total 过去 5 分钟内的 http 请求数的平均增长速率:
rate(http_requests_total[5m])
返回度量指标 http_requests_total 过去 5 分钟内的 http 请求数的平均增长速率总和,维度是 job:
sum(rate(http_requests_total[5m])) by (job)
{job="apiserver"} 0.16666666666666666
{job="kubelet"} 0.49999876544124355
如果两个指标具有相同维度的标签,我们可以使用二元操作符计算样本数据,返回值:key: value=标签列表:计算样本值。例如,以下表达式返回每一个实例的空闲内存,单位是 MiB。
(instance_memory_limit_bytes - instance_memory_usage_bytes) / 1024 / 1024
如果想知道每个应用的剩余内存,可以使用如下表达式:
sum(
instance_memory_limit_bytes - instance_memory_usage_bytes
) by (app, proc) / 1024 / 1024
如果相同的集群调度群显示如下的每个实例的 CPU 使用率:
instance_cpu_time_ns{app="lion", proc="web", rev="34d0f99", env="prod", job="cluster-manager"}
instance_cpu_time_ns{app="elephant", proc="worker", rev="34d0f99", env="prod", job="cluster-manager"}
instance_cpu_time_ns{app="turtle", proc="api", rev="4d3a513", env="prod", job="cluster-manager"}
instance_cpu_time_ns{app="fox", proc="widget", rev="4d3a513", env="prod", job="cluster-manager"}
...
我们可以按照应用和进程类型来获取 CPU 利用率最高的 3 个样本数据:
topk(3, sum(rate(instance_cpu_time_ns[5m])) by (app, proc))
假设一个服务实例只有一个时间序列数据,那么我们可以通过下面表达式统计出每个应用的实例数量:
count(instance_cpu_time_ns) by (app)
Prometheus监控学习笔记之PromQL简单示例的更多相关文章
- Prometheus监控学习笔记之PromQL 内置函数
概述 Prometheus 提供了其它大量的内置函数,可以对时序数据进行丰富的处理.某些函数有默认的参数,例如:year(v=vector(time()) instant-vector).其中参数 v ...
- Prometheus监控学习笔记之PromQL操作符
0x00 二元运算符 Prometheus 的查询语言支持基本的逻辑运算和算术运算.对于两个瞬时向量, 匹配行为可以被改变. 算术二元运算符 在 Prometheus 系统中支持下面的二元算术运算符: ...
- Prometheus监控学习笔记之全面学习Prometheus
0x00 概述 Prometheus是继Kubernetes后第2个正式加入CNCF基金会的项目,容器和云原生领域事实的监控标准解决方案.在这次分享将从Prometheus的基础说起,学习和了解Pro ...
- Prometheus监控学习笔记之Prometheus不完全避坑指南
0x00 概述 Prometheus 是一个开源监控系统,它本身已经成为了云原生中指标监控的事实标准,几乎所有 k8s 的核心组件以及其它云原生系统都以 Prometheus 的指标格式输出自己的运行 ...
- Prometheus监控学习笔记之360基于Prometheus的在线服务监控实践
0x00 初衷 最近参与的几个项目,无一例外对监控都有极强的要求,需要对项目中各组件进行详细监控,如服务端API的请求次数.响应时间.到达率.接口错误率.分布式存储中的集群IOPS.节点在线情况.偏移 ...
- Prometheus监控学习笔记之容器监控Grafana模块
0x00 概述 Grafana 是一个开源的,可以用于大规模指标数据的可视化项目,甚至还能对指标进行报警.基于友好的 Apache License 2.0 开源协议,目前是prometheus监控展示 ...
- Prometheus监控学习笔记之教程推荐
最近学习K8S和基于容器的监控,发现了如下的教程质量不错,记录下来以备参考 1. K8S最佳实战(包括了K8S的Prometheus监控和EFK日志搜集) https://jimmysong.io/k ...
- Prometheus监控学习笔记之prometheus的federation机制
0x00 概述 有时候对于一个公司,k8s集群或是所谓的caas只是整个技术体系的一部分,往往这个时候监控系统不仅仅要k8s集群以及k8s中部署的应用,而且要监控传统部署的项目.也就是说整个监控系统不 ...
- Prometheus监控学习笔记之Prometheus监控简介
0x00 Prometheus容器监控解决方案 Prometheus(普罗米修斯)是一个开源系统监控和警报工具,最初是在SoundCloud建立的.它是一个独立的开放源码项目,并且独立于任何公司.不同 ...
随机推荐
- WireShark过滤器选项
首先说几个最常用的关键字,"eq" 和 "=="等同,可以使用 "and" 表示并且,"or"表示或者."!& ...
- inbox.MoveTo Folder does not move message out of inbox
inbox.MoveTo Folder does not move message out of inbox #160 Closed vnwind opened this issue on 14 M ...
- echarts实现全国地图
1.首先我没有按需引入echarts,我是全局引入的,所以说在node_modules中有 这个china,你只需要在你的页面引入即可 但是按需引入echarts 的 项目中node_modules中 ...
- cocos2d JS 利用定时器实现-倒计时功能
//创建一个定时器 cc.director.getScheduler().schedule(this, this.updates, 1, cc.REPEAT_FOREVER, 0, false, &q ...
- 读书笔记_Effective_C++_条款二:尽量以const, enum, inline替换#define
其实这个条款分成两部分介绍会比较好,第一部分是用const和enum替换不带参的宏,第二部分是用inline替换带参的宏. 第一部分:用const和enum替换不带参宏 宏定义#define发生在预编 ...
- ES6之字符串扩展
ES6字符串新增的常用方法: 1. includes(): 字符串中是否包含某个字符或字符串, 包含的两个字符必须是相连的 let str = 'hello, world' str.includes( ...
- C#窗体控件DataGridView常用设置
在默认情况下,datagridview的显示效果: 1.禁用最后一行空白. 默认情况下,最后一行空白表示自动新增行,对于需要在控件中进行编辑,可以保留 ? 1 dataGridView1.AllowU ...
- windows系统快捷键
1.我的键盘:windows键的开启,需要按住FN键+windows键. 2.windows键 + E,表示打开我的电脑. 3.windows键 + R,打开windows的命令行窗口. 4.wind ...
- ModelSim仿真教程
本文章详细介绍了怎样用ModelSim仿真Verilog,虽然只是很简单的一个二分频器的例子,但却正式小白入门所需要的. 本教程以ModelSim SE 10.4为例 1. 新建工程 file-> ...
- 强化学习--Policy Gradient
Policy Gradient综述: Policy Gradient,通过学习当前环境,直接给出要输出的动作的概率值. Policy Gradient 不是单步更新,只能等玩完一个epoch,再 ...