我用下面格式的文档建立了es索引,这些文档是使用fluentd解析器从日志中解析出来的,并在es中建立索引。记录格式:
{“id”:“id1”,“field1”:“f1\u val”,“message”:“x”,“time”:“x”}
{“id”:“id1”,“field2”:“f2\u val”,“message”:“x”,“time”:“x”}
{“id”:“id1”,“field3”:“f3\u val”,“field4”:“f4\u val”,“message”:“x”,“time”:“x”}
我想按id字段分组,并将字段分组在一起,以便在kibana Jmeter 板中将数据可视化为一个表,如下所示:
{“id”:“id1”,“field1”:“f1\u val”,“field2”:“f2\u val”,“field3”:“f3\u val”,“field4”:“f4\u val”}
在Kibana:
Id Field1 Field2 Field3 Field4
id1 f1_val f2_val f3_val f4_val
如何在elasticsearch中按文档id分组并选择不同的字段值。谢谢!
2条答案
按热度按时间cuxqih211#
由于elasticsearch不支持那么好的连接,因此在扩展kibana中,我建议您在将文档放入索引之前将文档连接到应用程序中。如果这不是一种可能性,我会按照以下建议进行转换:
https://discuss.elastic.co/t/combine-multiple-document-into-one-document-with-limited-fields-merging-of-documents/231758
使用这个,我可以在我的 Jmeter 板上实现这样的效果:结果图像
复制步骤:
创建日志索引
添加一些数据
将日志索引转换为联接索引(我很确定脚本化的度量可以写得更好。这是第一件成功的事):
运行转换
为联接索引创建索引模式
在“发现并创建表”中打开。保存并添加到 Jmeter 板。
我这样做的假设是,字段在每个具有指定id的文档中只出现一次。不知道如果字段在文档之间重叠会发生什么。
fjnneemd2#