foodiestudio / devtools

provide a simple `Debug Entrance`
MIT License
0 stars 0 forks source link

Kibana Query URL #6

Closed kkoshin closed 1 year ago

kkoshin commented 1 year ago

provider a URL builder for kibana

for example:

filter current device AND last 24H

"$kibanaDevSite?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-24h,to:now))" + "&_a=(columns:!(type),filters:!(('\$state':(store:appState),meta:(alias:!n,disabled:!f,index:'$kibanaIndexAndroid',key:device_id,negate:!f,params:(query:${HardwareUtil.deviceSerial}),type:phrase),query:(match_phrase:(device_id:${HardwareUtil.deviceSerial})))),index:'$kibanaIndexAndroid',interval:auto,query:(language:kuery,query:''),sort:!(!(timestamp,desc)))"
kkoshin commented 1 year ago
val filterMap = mapOf(
    "device_id" to HardwareUtil.deviceSerial,
    "type" to "ButtonClick"
)
val columnField = "button"

val filters = filterMap.map { (key, value) ->
    "('\$state':(store:appState),meta:(alias:!n,disabled:!f,index:'$kibanaIndexAndroid',key:$key,negate:!f,params:(query:'$value'),type:phrase),query:(match_phrase:($key:'$value')))"
}.joinToString(",")

val kibanaUrl =
    "$kibanaDevSite?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-24h,to:now))&_a=(columns:!($columnField),filters:!($filters),index:'$kibanaIndexAndroid',interval:auto,query:(language:kuery,query:''),sort:!())"