使用group by子句:可以通过在查询语句中添加group by子句来按照指定的标签进行分组。例如,sum(metric_name) by (label_name)将按照指定的label_name标签对metric_name进行求和并进行分组。 使用topk或bottomk函数:这些函数可以根据指定的标签值对指标进行排序,并选择前几个或后几个结果。例如,topk(5, metric_name)...
by:by,即分组,可以看到上面的sum得到的结果是一个大结果,并且只有一个结果,如果我们要统计多台服务器的CPU增量率,那么如果不使用by也会变成一条线,因为sum是把所有的结果集,不管是什么内容,全部进行加和了,那么这个时候我们就需要用到by函数,将结果进行分组,那么这个例子,我们就可以以instance这个label作为分组的ke...
count (group by(mode) (demo_cpu_usage_seconds_total)) 3.计算每个 job 任务和指标名称的时间序列数量: count by (job, __name__) ({__name__ != ""}) 基于时间聚合 前面我们已经学习了如何使用sum()、avg()和相关的聚合运算符从标签维度进行聚合,这些运算符在一个时间内对多个序列进行聚合,但是有...
利用sum函数可以将三个QPS聚合,即可得到整个服务该接口的QPS:其实Sum就是将指标值做相加 但是这样直接的相加太笼统抽象了,可以配合by和without函数在sum的时候,基于某些标签分组,类似SQL中的group by 例如,我可以根据请求接口标签分组:这样拿到的就是具体接口的QPS sum(rate(demo_api_request_duration_seconds_count{j...
group by 操作 sum/avg/...(子表达式) by (用于分组的字段1, 用于分组的字段2...) 或 sum/avg/... by (用于分组的字段1, 用于分组的字段2...) (子表达式) 例如 CPU 使用率 100- (avg by (instance) (irate(node_cpu{instance="xxx", mode="idle"}[5m])) *100) ...
expr: sum(avg without (cpu)(irate(node_cpu{mode!='idle'}[5m]))) by (instance) * 100 > 50 for: 1m labels: severity: page annotations: summary: "Instance {{ $labels.instance }} CPU usgae high" description: "{{ $labels.instance }} CPU usage above 50% (current value: {{ $value...
sum():对样本值求和; avg():对样本值求平均值这是进行指标数据分析的标准方法; count():对分组内的时间序列进行数量统计; stddev():对样本值求标准差,以帮助用户了解数据的波动大小(或称之为波动程度) stdvar():对样本值求方差,它是求取标准差过程的中间状态; ...
sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{cluster="$cluster", container!="POD", container!=""}) by (namespace) node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate 预聚合指标 CPU Quota sum(kube_pod_owner{cluster="$cluster"}) by (name...
groups:-name:examplerules:-record:job:http_inprogress_requests:sumexpr:sum(http_inprogress_requests)by(job) rule_group 的具体配置项如下所示: 代码语言:javascript 复制 # 分组的名称,在一个文件中必须是唯一的name:<string># 评估分组中规则的频率[interval:<duration>|default=global.evaluation_interval]...
2)group by 查询 fbe6a4edc3eb :)selectsum(val),timefrommetrics.sampleswherearrayExists(x->1==match(x,'cid=9'),tags)=1andname='machine_cpu_cores'andts>'2017-07-11 08:00:00'groupbytoDate(ts)astime;SELECTsum(val),timeFROMmetrics.samplesWHERE(arrayExists(x->(1=match(x,'cid=9'))...