3 回答

TA貢獻1810條經驗 獲得超5個贊
在我看來,你設計的應該可以正常工作:
測試
package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)([0-9]{2,3})-([0-9]{2,3})-([0-9]{2,3})-([0-9]{2,3})`)
var str = `kube_node_info{container_runtime_version="docker://18.6.1",endpoint="http",instance="10.11.111.111:8080",job="kube-state-metrics",kernel_version="xxxxx",kubelet_version="xxxx",kubeproxy_version="xxxx",namespace="infra",node="ip-10-11-111-111.us-sdlls-as.compute.internal",os_image="Amazon Linux 2",pod="prometheus-operator-kube-state-metrics-sdfgsjdkgl-saldjl",service="prometheus-operator-kube-state-metrics"
kube_node_info{container_runtime_version="docker://18.6.1",endpoint="http",instance="10.11.111.111:8080",job="kube-state-metrics",kernel_version="xxxxx",kubelet_version="xxxx",kubeproxy_version="xxxx",namespace="infra",node="ip-10-11-111-111.us-sdlls-as.compute.internal",os_image="Amazon Linux 2",pod="prometheus-operator-kube-state-metrics-sdfgsjdkgl-saldjl",service="prometheus-operator-kube-state-metrics"
`
var substitution = "$1.$2.$3.$4"
fmt.Println(re.ReplaceAllString(str, substitution))
}
該表達式在regex101.com的右上角面板上進行了解釋,如果您想探索/簡化/修改它,并且在此鏈接中,如果您愿意,您可以觀看它如何與某些示例輸入匹配。

TA貢獻1794條經驗 獲得超7個贊
實際目的是捕獲實例的 IP,并通過查詢將所有這些 IP 列為動態變量,然后通過 IP 啟用所有節點指標。這是一個糟糕的方法,因為許多普羅米修斯節點指標都是用標簽導出的node=ip-XX-XX-XXX-XXX-<region>-.compute.internal
(其中 XX 是數字)。此外,grafana 變量僅報告第一個子組的匹配 - 理想情況下它應該是所有子組。
但是,即使我要捕獲 XX.XX.XXX.XXX 子組,這也意味著對于我需要捕獲和繪制圖表的每個指標,我需要解決 EKS 節點中所有 IP 的匹配問題 - 這不是特別是如果我們想要啟用“全部”變量,其中 grafana 用所有變量匹配的正則表達式替換變量調用,這是可能的。前任。如果我的 k8s 節點有以下 IP: * 10.10.0.1 * 10.10.0.2 * 10.10.0.3 并且我將此變量稱為 Node Grafana 將列出以下變量: * All * 10.10.0.1 * 10.10.0.2 * 10.10.0.3 在選擇 grafanaAll
時會將 $Node 替換為./*(10.10.0.1|10.10.0.2|10.10.0.3)*/
但是,如果我有一個獲取節點信息的查詢:kube_pod_info{node=~"$Node"}
-> 這會失敗,因為節點名稱采用不同的格式,我們可以嘗試通過使用來解決它,label_replace
但我們再次無法解決使用$Node
如果All
使用變量。
結論:使用變量$Node
(即* ip-10-10-0-1.us-sdlls-as.compute.internal * ip-10-10-0-2.us-sdlls-as.compute.internal * ip- 10-10-0-3.us-sdlls-as.compute.internal ) -按原樣,這將使所有其他面板更加方便且易于配置。
- 3 回答
- 0 關注
- 551 瀏覽
添加回答
舉報