文章目錄
Kibana 在 Visualize table buckets 中從 field 取部份值做為 row
為了後續 support 需要,想要在原本的 dashboard 中加上一個 visualize table 用來提供更詳細的資訊,原本也不是太困難的事,只是這次需要用來 group by 的資料放在類似 message 這種未切分的欄位中
基本環境說明
- macOS Big Sur 11.6
- docker desktop 3.6.0(67351)
- docker images
- elasticsearch:7.11.2
- yowko/fluentd-elasticsearch:1.0.0
- fluent/fluentd:v1.12.0-debian-1.0
- kibana:7.11.2
sample log
2021-11-01 09:00:38.192 [172][ERR][Yowko.DomainService.Test.Application.Utilities.ExceptionInterceptor]UserId:TW001|Name:Yowko|DepartmentId:D01 traceId:b9e680d30a025e7a
設定方式
新增 Visualize (Data table)
以
DepartmentId
為 row 切分基準Spilt rows
Aggregation
:Terms
Field
:message.keyword
Advanced
–>JSON Input
{ "script": "_value.substring(_value.lastIndexOf('|')).replace('|DepartmentId:','')" }
JSON Input 中的
_value
也可以使用doc['message.keyword'].value
以
UserId
為 row 切分基準重複上述步驟,僅最後
JSON Input
改為{ "script": "_value.substring(0, _value.indexOf('|')).replace('UserId:','')" }
心得
google 的過程中一直找到 Painless script
、scripted field
但似乎都是在 index level 直接多個欄位,但我並非所有的 record 都需要切欄位,最後還是請教同事搞定的
另外我在開發時有遇到 Error executing runtime field or scripted field on index pattern
跟 Error executing Painless script
後來查到是因為並非所有 record 都有對應的資料內容造成 parse fail
實際效果
參考資訊
文章作者 Yowko Tsai
上次更新 2021-11-01
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。