第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

正則表達(dá)式:Grafana 變量將連字符分隔的 IP 轉(zhuǎn)換為點(diǎn)分隔的 IP

正則表達(dá)式:Grafana 變量將連字符分隔的 IP 轉(zhuǎn)換為點(diǎn)分隔的 IP

Go
長風(fēng)秋雁 2023-07-04 19:07:15
我正在嘗試使用自定義查詢在 Grafana 中創(chuàng)建一個變量來掃描 EKS 集群中的節(jié)點(diǎn)。目前,節(jié)點(diǎn)變量存儲為“連字符”分隔的字符串(例如 10-109-22-102);我打算將其報告為“點(diǎn)”分隔的字符串(例如 10.109.22.102)。這甚至可以通過正則表達(dá)式實(shí)現(xiàn)嗎?Grafana變量支持通過抓取給定指標(biāo)然后使用正則表達(dá)式提取報告指標(biāo)中的值來創(chuàng)建實(shí)時變量。我目前正在抓取一個指標(biāo):kube_node_info{container_runtime_version=“docker://18.6.1”,端點(diǎn)=“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"}我目前正在使用 regex:/.*node="ip-([^"]*).us-*/提取以“連字符”分隔的 IP。我還嘗試過使用其他匹配組,例如:([\d]{2,3})-([\d]{2,3})-([\d]{2,3})-([\d]{2,3})但是,這僅返回 grafana 中的第一個匹配組(在本例中10)作為唯一選項(xiàng)。預(yù)期輸出應(yīng)該是:10.11.111.111
查看完整描述

3 回答

?
森欄

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個贊

在我看來,你設(shè)計(jì)的應(yīng)該可以正常工作:


測試

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))

}

該表達(dá)式在regex101.com的右上角面板上進(jìn)行了解釋,如果您想探索/簡化/修改它,并且在此鏈接中,如果您愿意,您可以觀看它如何與某些示例輸入匹配。


查看完整回答
反對 回復(fù) 2023-07-04
?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個贊

你的正則表達(dá)式必須工作正常。但是,字符集是多余的,因?yàn)槊拷M僅使用數(shù)字。因此,可以將它們刪除:

(\d{2,3})-(\d{2,3})-(\d{2,3})-(\d{2,3})

然后捕獲的數(shù)據(jù)可以替換為:

$1.$2.$3.$4

演示


查看完整回答
反對 回復(fù) 2023-07-04
?
慕田峪9158850

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個贊

實(shí)際目的是捕獲實(shí)例的 IP,并通過查詢將所有這些 IP 列為動態(tài)變量,然后通過 IP 啟用所有節(jié)點(diǎn)指標(biāo)。這是一個糟糕的方法,因?yàn)樵S多普羅米修斯節(jié)點(diǎn)指標(biāo)都是用標(biāo)簽導(dǎo)出的node=ip-XX-XX-XXX-XXX-<region>-.compute.internal(其中 XX 是數(shù)字)。此外,grafana 變量僅報告第一個子組的匹配 - 理想情況下它應(yīng)該是所有子組。

但是,即使我要捕獲 XX.XX.XXX.XXX 子組,這也意味著對于我需要捕獲和繪制圖表的每個指標(biāo),我需要解決 EKS 節(jié)點(diǎn)中所有 IP 的匹配問題 - 這不是特別是如果我們想要啟用“全部”變量,其中 grafana 用所有變量匹配的正則表達(dá)式替換變量調(diào)用,這是可能的。前任。如果我的 k8s 節(jié)點(diǎn)有以下 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)*/但是,如果我有一個獲取節(jié)點(diǎn)信息的查詢:kube_pod_info{node=~"$Node"}-> 這會失敗,因?yàn)楣?jié)點(diǎn)名稱采用不同的格式,我們可以嘗試通過使用來解決它,label_replace但我們再次無法解決使用$Node如果All使用變量。

結(jié)論:使用變量$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 ) -按原樣,這將使所有其他面板更加方便且易于配置。


查看完整回答
反對 回復(fù) 2023-07-04
  • 3 回答
  • 0 關(guān)注
  • 585 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號