我有看起來像這樣的 json 資料:
{
"deploy:success": 2,
"deploy:RTX:success": 1,
"deploy:BLX:success": 1,
"deploy:RTX:BigTop:success": 1,
"deploy:BLX:BigTop:success": 1,
"deploy:RTX:BigTop:xxx:success": 1,
"deploy:BLX:BigTop:yyy:success": 1,
}
每個新添加:<field>的地方都使其更加具體。假設格式為“ deploy:RTX:success”的密鑰用于特定站點 RTX。我計劃使用過濾器僅顯示特定于站點的計數。
eval column_name=if($site_token$ = "", "deploy:success", "deploy:$site_token$:success")
然后重命名派生列:
rename column_name deploy
但是重命名是在第一個引數中尋找實際值,而不僅僅是列名。我無法弄清楚如何在我的一生中從該列中獲取相關的值。
index=cloud_aws namespace=my namespace=Stats protov3=*
| spath input=protov3
| eval column_name=if("$site_token$" = "", "deploy:success", "deploy:$site_token$:success")
| rename column_name AS "deploy"
我做錯了什么?
uj5u.com熱心網友回復:
目前尚不清楚最終結果應該是什么。如果 $site_token$ 為空時的結果應該是“deploy:success”,那么只需使用“deploy”作為eval.
index=cloud_aws namespace=my namespace=Stats protov3=*
| spath input=protov3
| eval deploy=if("$site_token$" = "", "deploy:success", "deploy:$site_token$:success")
OTOH,如果 $site_token$ 為空時的結果應為“2”,則在eval. 單引號告訴 Splunk 將包含的文本視為欄位名稱而不是文字字串(雙引號就是這樣做的)。
index=cloud_aws namespace=my namespace=Stats protov3=*
| spath input=protov3
| eval deploy=if("$site_token$" = "", 'deploy:success', 'deploy:$site_token$:success')
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/442687.html
上一篇:無法理解Json_normalizeRecord_path引數
下一篇:訪問嵌套的json檔案值
