Grafana 的奇技淫巧,你學(xué)會(huì)了嗎?
Grafana 是一款強(qiáng)大的可視化工具,不止是用于 Prometheus 做數(shù)據(jù)源,還可以集成數(shù)據(jù)庫(kù)、日志等作為數(shù)據(jù)源整體使用。
最近我在配置一個(gè)監(jiān)控面板,其中的數(shù)據(jù)由 Prometheus 和 MySQL 組成;簡(jiǎn)單來(lái)說(shuō)就是一個(gè)指標(biāo)的查詢條件是從數(shù)據(jù)庫(kù)中來(lái)的。
pulsar_subscription_back_log_no_delayed{topic=~"$topic",subscription=~"$subscription"}
其中的 topic 數(shù)據(jù)是從 MySQL 中來(lái)的,其實(shí)就是在 Grafana 聲明一個(gè)變量,從數(shù)據(jù)庫(kù)返回了一個(gè)列表。
因?yàn)槲覀兊牟樵儣l件是 topic=~"$topic"
是正則匹配,所以理論上應(yīng)該把所有的 topic
關(guān)聯(lián)的數(shù)據(jù)都查詢出來(lái)。
但實(shí)際情況是任何數(shù)據(jù)都查不到。
查看發(fā)出去的原始請(qǐng)求后才發(fā)現(xiàn)問(wèn)題出在哪里:
原來(lái)是選擇所有 topic 后 grafana 會(huì)~~~~自動(dòng)對(duì)參數(shù)轉(zhuǎn)義,這個(gè)我查了好多資料包括咨詢 ChatGPT 都沒(méi)有得到解決。
經(jīng)過(guò)多次測(cè)試,發(fā)現(xiàn)只要開(kāi)啟多選 grafana 就會(huì)自動(dòng)轉(zhuǎn)義。
最后我只能想到一個(gè)不需要生成多行記錄的辦法:將所有數(shù)據(jù)合并成一條記錄。
這樣的話就只會(huì)生成一條數(shù)據(jù),其中包含了所有的 topic,也就避免了被轉(zhuǎn)義。
SQL 中的 CONCAT 函數(shù)其實(shí)我也不知道怎么使用,還是 ChatGPT 告訴我的。
最后便能完美的查詢出數(shù)據(jù)了。
有碰到類似問(wèn)題的朋友可以嘗試這個(gè)方法,我估計(jì)用到這個(gè)場(chǎng)景的并不多,不然 ChatGPT 也不會(huì)不知道。