語境
我們有一個 Spring Boot 應用程式,部署到 K8s 集群(有 2 個實體)中,配置了 Micrometer 匯出器,用于 Prometheus 和 Grafana 中的可視化。
我的自定義指標
我已經實作了幾個額外的 Micrometer 指標,它們報告了一些關于資料庫 (PostgreSQL) 中業務資料的資訊,我可以在 Grafana 中看到這些指標,但是對于每個 pod 都是分開的。
問題:
對于我們在 Grafana 中的 2 個 pod - 我可以看到單獨的一組相同的指標,并且可以通過選擇(按標簽)其中一個 pod 來找到最新的值。
但是,無法判斷哪個 pod 報告了最新的值。
有沒有辦法以某種方式始終顯示最后抓取的 pod 中的指標值(即它將包含最新的指標資料)?
現在,為了查看最新的指標資料 - 我必須切換 pod 并猜測哪個具有最新值。
(所討論的指標與資料庫有關,因此無論從哪個 pod 請求它們,都會產生相同的值。)
uj5u.com熱心網友回復:
在 Prometheus 中,您可以使用topk()和timestamp()函式獲取最新抓取的標簽:
topk(1,timestamp(up{job="micrometer"}))
然后可以在 Grafana 中使用它來填充包含實體名稱的(隱藏)變數:
Name: instance
Type: Query
Query: topk(1,timestamp(up{job="micrometer"}))
Regex: /.*instance="([^"]*)".*/
我建議激活重繪 time range change以獲得您時間范圍內的最后一次刮擦。
然后,您可以在所有儀表板的查詢中使用該變數:
micrometer_metric{instance="${instance}"}
編輯:請求者希望在每次資料重繪 時更新它
如果您想在每次資料重繪 時更新它,則需要使用AND 邏輯運算子在儀表板的每個查詢中使用它:
micrometer_other_metric AND ON(instance) topk(1,timestamp(up{job="micrometer"}))
vector1 AND vector2 產生一個由 vector1 的元素組成的向量,其中 vector2 中的元素具有完全匹配的標簽集。其他元素被丟棄。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/401726.html
標籤:Kubernetes 普罗米修斯 格拉法纳 弹簧靴执行器 弹簧千分尺
上一篇:具有本地路徑的RabbitMQ運算子:發生內部錯誤:找到2個默認存盤類
下一篇:KEDA-沒有Pod正在擴展
