问题标签 [promql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
prometheus - 为什么在没有匹配原始数据的情况下`count_over_time`会增加?
...或“如何count_over_time
工作?”
给定以下向量和值:
计算整个向量返回1
:
结果:
现在,count_over_time
它根据范围矢量选择器而有所不同:
1米:
结果是“2”:
- 1h 返回 120
- 24小时返回2880
随着时间的推移,它到底在计算什么?
grafana - 在 Group By 语句中计算值
用例:
我有 10 个 Kubernetes 节点(将它们视为 VM),它们具有 7 到 14 个可分配的 CPU 内核,这些内核可以由 Kubernetes pod 请求。因此,我想展示一张表格,其中显示
- 可分配的 CPU 内核
- 请求的 CPU 内核
- 请求/可分配 CPU 核心的比率
按节点分组。
问题
为前 2 个需求创建表很容易。我只是在 Grafana 中创建了一个表并添加了这两个指标:
然而,我正在为第三个而苦苦挣扎。我试过这个查询,但它显然没有返回任何数据:
问题
在我给定的示例中,如何在 group by 语句中计算两个不同的指标?
grafana - Grafana 变量和 Prometheus 查询
我在尝试query
使用此公式创建类型的自定义变量时遇到问题:
当我对普罗米修斯服务器播放此查询时(没有“label_values”,这是一个 grafan 模板函数),它工作正常。
我有以下吐司错误:
此变量的目的是仅列出在过去 10m 期间有活动的 Ingress 标签。
kubernetes - Prometheus OR 使用 rate() 时
概括
我试图弄清楚如何|
在 Prometheus 查询中正确使用 OR 运算符,因为我导入的 Grafana 仪表板不起作用。
长版
我正在尝试根据从运行AppMetrics/Prometheus的 Kubernetes pod 中抓取的一些数据来调试 Grafana 仪表板;仪表板在这里。基本上发生的情况是,当在server
Grafana 仪表板上选择“全部”的值时(server
在这种情况下是单个 pod),不会出现任何数据。但是,当我选择一个单独的 pod 时,确实会出现数据。
这是从两个 pod 中抓取的相同指标的示例:
我在 Grafana 中运行查询检查器以找出它正在调用的查询,然后在 Prometheus 本身中运行 PromQL 查询。基本上,当我单独执行以下 PromQL 查询时,它们会返回数据:
但是,当我尝试使用 PromQL 的|
运算符来组合它们时,我没有取回数据:
这是 Grafana 查询检查器的原始输出:
我也为此打开了一个 GitHub 问题;它有一个快速的 GIF 屏幕录制显示我的意思:AppMetrics/Prometheus#43
prometheus - 在时间序列之间聚合标签
我的指标如下所示:
我试图找到这些数据:
这甚至可能吗?数据在那里,我只是不知道如何编写查询。
prometheus - 普罗米修斯缺席函数
我想检查某个指标是否在 5 分钟内在普罗米修斯中不可用。
我正在使用缺席(K_KA_GCPP)并给出 5 分钟的阈值。但似乎我无法在某些标签(如站点 ID)上对缺少的功能进行分组。
如果指标不适用于所有 4 个站点 ID,则 Absent 有效。我想了解所有 4 个站点 ID 中的 1 个站点 ID 的指标是否不可用或不存在,并且我不想在查询中对站点 ID 标签进行硬编码,它应该是通用的。有什么办法可以做到吗?
prometheus - Prometheus 查询和区分大小写
我有一个查询,我试图在一个标签上加入两个指标。K_Status_Value == 5 和 ON(macAddr) state_details{live="True"}
标签 macAddr 出现在两个指标中。标签的值有时以大写字母 (78:32:5A:29:2F:0D) 出现在“K_Status_Value”中,有时以小写字母 (78:72:5d:39:2f:0a) 出现,但始终以大写字母出现“state_details”的情况。有什么方法可以让标签 macAddr 值在查询中不区分大小写,这样我就不会错过大小写不匹配的情况?
kubernetes - PromQL 指标查询返回的指标不是我想要的
我肯定还不明白 PromQL,但我读到的所有内容都说这个查询应该可以正常工作:
node_cpu
真的很简单吧?我的指标的名称,我确实在我的结果集中得到了它们。
node_cpu{app="prometheus",chart="prometheus-6.2.1",component="node-exporter",cpu="cpu0",heritage="Tiller",instance="10.85.166.16:9100",io_cattle_field_appId= "prometheus",job="kubernetes-service-endpoints",kubernetes_name="prometheus-node-exporter",kubernetes_namespace="prometheus",mode="guest_nice",release="prometheus"} 0 node_cpu{app="prometheus" ,chart="prometheus-6.2.1",component="node-exporter",cpu="cpu0",heritage="Tiller",instance="10.85.166.16:9100",io_cattle_field_appId="prometheus",job=" kubernetes-service-endpoints",kubernetes_name="prometheus-node-exporter",kubernetes_namespace="prometheus",mode="idle",发布="普罗米修斯"} 1784679.96
node_cpu{app="prometheus",chart="prometheus-6.2.1",component="node-exporter",cpu="cpu0",heritage="Tiller",instance="10.85.166.16:9100",io_cattle_field_appId= "prometheus",job="kubernetes-service-endpoints",kubernetes_name="prometheus-node-exporter",kubernetes_namespace="prometheus",mode="iowait",release="prometheus"} 2897.73
但我也得到了大量其他不需要的指标:
kubelet_runtime_operations_latency_microseconds_count{beta_kubernetes_io_arch="amd64",beta_kubernetes_io_os="linux",instance="la-1pk8s-w4",job="kubernetes-nodes",kubernetes_io_hostname="la-1pk8s-w4",node_role_kubernetes_io_worker="true",operation_type= “图像状态”}
container_start_time_seconds{beta_kubernetes_io_arch="amd64",beta_kubernetes_io_os="linux",id="/docker/8effa9b35affbf17118e7cc83a586d70da9fa960097ab717076c7251bf4eb324",image="rancher/rke-tools:v0.1.13",jobla="" kubernetes-nodes-cadvisor",kubernetes_io_hostname="la-1pk8s-w2",name="rke-log-linker-nginx-proxy",node_role_kubernetes_io_worker="true"}
storage_operation_duration_seconds_bucket{beta_kubernetes_io_arch="amd64",beta_kubernetes_io_os="linux",instance="la-1pk8s-w4",job="kubernetes-nodes",kubernetes_io_hostname="la-1pk8s-w4",le="0.1",node_role_kubernetes_io_worker= "true",operation_name="volume_unmount",volume_plugin="kubernetes.io/configmap"}
不知道他们为什么在那里,奇怪。所以我想我会过滤标签 component="node-exporter" 因为该标签只存在于我想要的指标中。
node_cpu{component="node-exporter"} 产生相同的结果集。
node_cpu{component=~"node-exporter"} 产生相同的结果集。
为什么我不能只获取所有 node_cpu 指标,为什么过滤不起作用?谢谢。
kubernetes - kube cronjobs 的 Prometheus 多对多问题
嘿那里,
我正在尝试使用 Prometheus 配置 Kubernetes Cronjobs 监控和警报。我发现这个有用的指南
但是我总是得到一个不允许的多对多匹配:匹配标签必须在一侧是唯一的错误。
例如,这是触发此错误的 PromQL 查询:
max(
kube_job_status_start_time
* ON(job_name) GROUP_RIGHT()
kube_job_labels{label_cronjob!=""}
) BY (job_name, label_cronjob)
查询本身会导致例如这些指标
kube_job_status_start_time:
kube_job_status_start_time{app="kube-state-metrics",chart="kube-state-metrics-0.12.1",heritage="Tiller",instance="REDACTED",job="kubernetes-service-endpoints",job_name="test-1546295400",kubernetes_name="kube-state-metrics",kubernetes_namespace="monitoring",kubernetes_node="REDACTED",namespace="test-develop",release="kube-state-metrics"}
kube_job_labels{label_cronjob!=""}:
kube_job_labels{app="kube-state-metrics",chart="kube-state-metrics-0.12.1",heritage="Tiller",instance="REDACTED",job="kubernetes-service-endpoints",job_name="test-1546295400",kubernetes_name="kube-state-metrics",kubernetes_namespace="monitoring",kubernetes_node="REDACTED",label_cronjob="test",label_environment="test-develop",namespace="test-develop",release="kube-state-metrics"}
我在这里缺少什么吗?我从指南中尝试的每个查询都会发生相同的多对多错误。即使我自己从头开始构建它也会导致同样的错误。希望你能在这里帮助我:)
prometheus - Prometheus 自午夜以来的偏移量(秒)
我有一个 api 调用的计数器指标。我想查看今天(即从午夜开始)打了多少电话。我最初虽然是使用似乎适合的 delta 函数,但我无法弄清楚如何计算从 time() 到午夜的偏移量