Kibana直方图-在一张图表上绘制多个系列
我在Elasticsearch中有一个索引,它包含一个简单对象数组(键值请参见下面的示例) 这些文档有一个时间戳 我可以用Kibana为每个键值创建单独的直方图(即一个图表表示发送的字节数,另一个图表表示接收的字节数) 我想知道是否有办法在一张直方图上同时显示这两个系列 谢谢 亚西尔Kibana直方图-在一张图表上绘制多个系列,kibana,Kibana,我在Elasticsearch中有一个索引,它包含一个简单对象数组(键值请参见下面的示例) 这些文档有一个时间戳 我可以用Kibana为每个键值创建单独的直方图(即一个图表表示发送的字节数,另一个图表表示接收的字节数) 我想知道是否有办法在一张直方图上同时显示这两个系列 谢谢 亚西尔 这可以通过运行两个查询实现,一个用于打印发送的字节,另一个用于打印接收的字节。设置直方图以使用公共“值”字段。看起来您可能还需要拆分数据,以便有唯一的记录,即时间戳、发送的字节数、值和时间戳、接收的字节数、值 -布
这可以通过运行两个查询实现,一个用于打印发送的字节,另一个用于打印接收的字节。设置直方图以使用公共“值”字段。看起来您可能还需要拆分数据,以便有唯一的记录,即时间戳、发送的字节数、值和时间戳、接收的字节数、值
-布伦特这可以用一个叫做“多字段直方图”的较新面板来完成。最近安装了Kibana补丁后,我可以在Kibana3中使用它
请参阅显示面板的此链接 为了分享关于新Kibana版本的知识,使用Kibana的Timelong工具很容易。当要求创建可视化时,请选择“Timeseries” 对我来说,只需跟随开头弹出的几个对话框,就足以理解如何开始。像这样的事情应该会启动它:
.es('showstatus.variable_name:bytes_sent'), .es('showstatus.variable_name:bytes_received')
我有这个问题的解决办法。与@OmarOthman给出的类似,但没有上述问题,即:
{ "_datetime" : "2014-03-21 10:10:10", "bytes_sent": 12312, "bytes_received" : 123123 }
{ "_datetime" : "2014-03-21 10:10:11", "bytes_sent": 12310, "bytes_received" : 12313 }
而不是:
[…]
"_datetime" : "2014-03-21 10:10:10",
"showstatus": [
{
"value": 96451,
"variable_name": "bytes_sent"
},
{
"value": 435322,
"variable_name": "bytes_received"
}
]
}
[…]
您可以在Timelon中绘制多个系列,如@OmarOthman,但也可以使用Timelon方法添加第二个(甚至第三个)Y轴,如:
.es('avg:bytes_sent').yaxis(1, label='Bytes sent').bars(), .es('avg:bytes_received').yaxis(2, label='Bytes received', positon='right').bars()
使用该方法,您可以将其绘制为日期直方图
@OmarOthman提出的另一种方法仅显示平均“值”,即从showstatus数组的所有文档中获取所有“值”数据。之所以这样做,是因为“showstatus.variable\u name:bytes\u sent”查询始终为真,因为所有文档的数组showstatus中都有该“variable name”。因此,除非某些文档在数组showstatus中没有字节\发送变量\名称,否则这两个系列将是相同的。试着画出来,它不会像预期的那样工作。谢谢Brent,最后我把数组中的每个元素“showstatus”索引到一个单独的文档中,这大大增加了文档的数量。但看起来这是唯一的办法。正如我告诉@OmarOthman的,这行不通。它将生成showstatus数组中变量“值”的平均值。对于数组showstatus中包含变量名称“bytes\u sent”的所有文档,查询“showstatus.variable\u name:bytes\u sent”都将为真,即使它们有额外的变量名称,该名称仅显示从showstatus数组的所有文档中获取所有“value”数据的平均“value”。之所以这样做,是因为“showstatus.variable\u name:bytes\u sent”查询始终为真,因为所有文档的数组showstatus中都有该“variable name”。因此,除非某些文档在数组showstatus中没有字节\发送变量\名称,否则这两个系列将是相同的。试着画出来,它不能像预期的那样工作。
.es('avg:bytes_sent').yaxis(1, label='Bytes sent').bars(), .es('avg:bytes_received').yaxis(2, label='Bytes received', positon='right').bars()