问题描述
我正在使用 Elastic/Kibana 收集数据并对其进行可视化,我有一个服务器编译代码并运行测试,每次我向 Elastic 提交一份关于作业开始时间、花费多长时间以及是否成功的记录是成功的......等
我以气泡图自然灾害图为例,目的是为每个开始的工作显示一个圆圈。但是我的气泡大小(映射到以分钟为单位的持续时间)与我的 x 轴(映射到时间戳)不匹配并设置为 timeunit 分钟..
我这样做是错误的吗?这是我第一次使用 vega-lite。我不确定我所追求的是否可行。
我当前的代码:
{
"$schema": "https://vega.github.io/schema/vega-lite/v2.json","data": {
"values": [
{"timeStamp": "2021-02-24T01:01:01.4327375+00:00","timerDuration": 360,"serverName": "SERV0","taskResult": "Success"},{"timeStamp": "2021-02-24T01:11:01.4327375+00:00","timerDuration": 5,"taskResult": "Failure"},{"timeStamp": "2021-02-24T01:21:01.4327375+00:00",{"timeStamp": "2021-02-24T01:31:01.4327375+00:00",{"timeStamp": "2021-02-24T01:41:01.4327375+00:00","timerDuration": 12,{"timeStamp": "2021-02-24T01:51:01.4327375+00:00","timerDuration": 1,"serverName": "SERV1","taskResult": "User Abort"},{"timeStamp": "2021-02-24T01:6:01.4327375+00:00","timerDuration": 500,"taskResult": "Success"}
]
},"transform": [
{"calculate": "toDate('timeStamp')","as": "var_time"},{"calculate": "'timerDuration' / 60","as": "var_duration_min"}
],"mark": {"type": "circle","opacity": 0.5},"encoding": {
"x": {
"field": "var_time","type": "temporal","axis": {"grid": false,"labelAngle": 60},"timeUnit": "utcminutes","title": null
},"y": {
"field": "serverName","type": "ordinal","color": {
"condition":[
{"test": "'taskResult' == 'Success'","value": "green"},{"test": "'taskResult' == 'User Abort'","value": "white"},{"test": "'taskResult' == 'Script Error'","value": "purple"}
],"value": "red"
},"size": {
"field": "var_duration_min","type": "quantitative"
},"tooltip": [
{"field": "serverName","type": "nominal","title": "Server"},{"field": "taskNameShort","title": "Task"},{"field": "var_time","title": "Started At"},{"field": "var_duration_min","type": "quantitative","title": "Duration (min)"},{"field": "taskResult","title": "Result"}
]
}
}
this is how it looks,the time filter thing from kibana also doesn't seem to work...
解决方法
我检查了你的 vega-lite 配置。并注意到您的计算和条件中缺少 datum
。我已在下面更新了您的配置:
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json","height": "container","width": "container","data": {
"values": [
{
"timeStamp": "2021-02-24T01:01:01.4327375+00:00","timerDuration": 360,"serverName": "SERV0","taskResult": "Success"
},{
"timeStamp": "2021-02-24T01:11:01.4327375+00:00","timerDuration": 5,"taskResult": "Failure"
},{
"timeStamp": "2021-02-24T01:21:01.4327375+00:00",{
"timeStamp": "2021-02-24T01:31:01.4327375+00:00",{
"timeStamp": "2021-02-24T01:41:01.4327375+00:00","timerDuration": 12,{
"timeStamp": "2021-02-24T01:51:01.4327375+00:00","timerDuration": 1,"serverName": "SERV1","taskResult": "User Abort"
},{
"timeStamp": "2021-02-24T01:6:01.4327375+00:00","timerDuration": 500,"taskResult": "Success"
}
]
},"transform": [
{"calculate": "toDate(datum.timeStamp)","as": "var_time"},{"calculate": "datum.timerDuration / 60","as": "var_duration_min"}
],"mark": {"type": "circle","opacity": 0.5},"encoding": {
"x": {
"field": "var_time","type": "temporal","axis": {"grid": false,"labelAngle": 60},"timeUnit": "utcminutes","title": null
},"y": {"field": "serverName","type": "ordinal","title": null},"color": {
"condition": [
{"test": "datum.taskResult == 'Success'","value": "green"},{"test": "datum.taskResult == 'User Abort'","value": "white"},{"test": "datum.taskResult == 'Script Error'","value": "purple"}
],"value": "red"
},"size": {"field": "var_duration_min","type": "quantitative"},"tooltip": [
{"field": "serverName","type": "nominal","title": "Server"},{"field": "taskNameShort","title": "Task"},{"field": "var_time","title": "Started At"},{
"field": "var_duration_min","type": "quantitative","title": "Duration (min)"
},{"field": "taskResult","title": "Result"}
]
}
}