我正在使用ZFS Exporter从 Linux 服务器收集 Prometheus v.2.19 中的 ZFS 指标。数据是从所有目标收集的,并且值是正确的,但是有一个奇怪的问题:我想计算 ARC 未命中与 ARC 命中的比率百分比,因此我使用以下公式:
100 * rate(zfs_arc_stats{stat='misses'}[5m]) / rate(zfs_arc_stats{stat='hits'}[5m])
Run Code Online (Sandbox Code Playgroud)
但它不产生任何数据。我可以分别从每个速率表达式中获取值,但不能从上面的公式中获取值。如果我使用具有相同标签的公式,即:
100 * rate(zfs_arc_stats{stat='hits'}[5m]) / rate(zfs_arc_stats{stat='hits'}[5m])
Run Code Online (Sandbox Code Playgroud)
它给出的正确结果为 100,因为未命中与未命中或命中与命中的比率始终为 1:1。我尝试了使用其他来源(即 PCP、Collectd)的指标的类似公式,这些公式工作得很好,即。我可以计算具有不同标签的相同指标的比率,因此问题似乎可能特定于 ZFS Exporter 的指标。该导出器的指标非常少,但每个指标都有许多不同的统计数据,由“stat”标签的值标识。rate所有指标都是仪表类型,但我认为这对于PromQL 中的函数来说并不重要。无论如何,就像我之前提到的,比率可以单独计算,只有比率失败。有人请建议如何解决这个问题。
我使用计数器指标的增加来获取过去 10 分钟 HTTP 连接的增加:
increase(http_connections{kind="test"}[10m])
Run Code Online (Sandbox Code Playgroud)
该表达式在我的测试环境中返回两个不同的值:
15.789
12.631
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到上述值的平均值?
有没有办法将ratePrometheus中函数的输出转换为整数?
我试图获取指定时间范围内 pod 重新启动的总数,尽管此查询会生成输出,但我得到的结果是小数,这不是我需要的。
rate(kube_pod_container_status_restarts_total{namespace=~"jenkins"}[10h]) * 60 * 5 > 0
Run Code Online (Sandbox Code Playgroud)
我得到的回报是0.21761280931586605但我宁愿得到一个整数。
我只是不确定该使用什么功能。
我安装了 stable/prometheus helm chart 并在helm/charts#17268 中提出了一些小的更改,以使其与 Kubernetes v1.16 兼容
安装后,Kubernetes grafana 仪表板都没有显示正确的值。我正在使用 8769 ( https://grafana.com/grafana/dashboards/8769 ) 仪表板,它提供了有关 CPU、内存、网络等的许多信息。该仪表板在较旧的 k8s 版本上正常工作,但在 v1.16 上显示没有结果。我还随机尝试了其他一些仪表板(8588、6879、10551),但它们要么只显示每个 pod 的请求资源,而不显示实时使用情况,要么什么也不显示。
这些仪表板的作用是向 prometheus 发送 promql 查询并获取结果。例如,这是来自 8769 仪表板的 cpu 使用情况的 promql 查询:
sum (rate (container_cpu_usage_seconds_total{id!="/",namespace=~"$Namespace",pod_name=~"^$Deployment.*$"}[1m])) by (pod_name)
Run Code Online (Sandbox Code Playgroud)
我不知道我是否必须更改 promql 或问题出在其他地方。
我在具有 3 个节点的 k8s 集群上有一个 Fluentd 守护进程集。我想获得一个代表百分比的值,它可以让我了解 fluidd pod 目前在每个节点上占用了多少 CPU(以%为单位)。
在普罗米修斯中该怎么做?
谢谢。
我正在尝试专门返回特定时间段之间的指标。我试图根据晚上或白天的不同,对具有不同水印的特定指标发出警报。
当我查询白天指标时,它工作正常:sum(increase(some_counter_total[5m])) and hour() >4 <20
这当然可以工作,因为这bigger than 4 but smaller than 23是一个有效范围。
然而,当一个人想在夜间执行此操作时,对于相反的时间段,这会变得更有趣:sum(increase(some_counter_total[5m])) and hour() >20 <4
第一个条件bigger then 20已经消除了以下条件smaller then 4。颠倒顺序时也是如此。
我尝试了一些不同的 using 组合or,但我一定做错了,因为我从未让查询正常工作。理想情况下,我想我会寻找一种进行反向查询的方法sum(increase(some_counter_total[5m])) and WHEN NOT hour() >4 <20。
我正在尝试计算每天的事件数(在我的示例部署中)。我目前正在做的是基于pushgateway的HTTP API发送以下计数器事件
# TYPE deployments_count counter
# HELP deployments_count Deployments Counter
deployments_count{label1="${label1}",label2="${label2}"} 1
Run Code Online (Sandbox Code Playgroud)
我想在仪表板上计算的是某一天发生了多少个不同的事件(即部署)。
根据经验,我知道每小时应该有超过 10 个事件(部署),但是当我执行以下查询时,我不断收到 0
rate(deployments_count[24h])
Run Code Online (Sandbox Code Playgroud)
请注意,我的计数器始终报告给1定事件(部署)发生的时间。