Kibana 可视化可以通过 _size 等元字段聚合吗?

Can Kibana visualizations aggregate by a meta field such as _size?

我想可视化我们的平均 elasticsearch 文档大小如何随时间变化。

  1. 我们使用 ElasticSearch v7.1。我们使用 AWS ElasticSearch 服务和 Mapper Size Plugin is installed.
  2. 我在索引中启用了 _size 字段。 ref
  3. 在 Kibana "Discover" 我可以使用以下方法找到小文档:_size: <900
    • 或者我可以从命令行查询:curl -H 'Content-Type: application/json' -s http://es.example.com/logstash-2019.10.17/_search -d '{"query": {"range": {"_size": { "lt": 900 }}}}' | jq .

现在我想创建一个 Kibana 可视化,例如具有中位数 _size 的日期直方图,但是 Kibana“Visualize”不会不要让我select_size作为聚合字段。有没有办法可视化文档的大小?


_size 是一个“meta-field”。

_size The size of the _source field in bytes, provided by the mapper-size plugin.

也许 Kibana 不支持 "meta fields"?

不使用 Kibana 时,我可以通过 _size 聚合 "Visualize":

curl -H 'Content-Type: application/json' -s http://es.example.com/logstash-2019.10.17/_search -d '{
  "query": {
    "range": {
      "_size": {
        "gt": 10
      }
    }
  },
  "aggs": {
    "sizes": {
      "terms": {
        "field": "_size",
        "size": 10
      }
    }
  },
  "sort": [
    {
      "_size": {
        "order": "desc"
      }
    }
  ]
}' | jq .

如果您在 Kibana 中转到 Management->Elasticsearch index management,您可以看到特定索引:

有些字段没有 Aggretable。 检查其他字段,看到它们在此列中有圆圈。 这就是为什么 Kibana Visualize 不会让你 select _size 作为 aggregation field.

也许你可以使用 https://www.elastic.co/guide/en/kibana/current/scripted-fields.html 如果 Kibana 允许您在脚本中使用 _size 字段,并且在我之前提到的某种意义上,该字段将是 Aggretable。 21=]

问题很旧,但看起来没有回答。解决方案是:

  • 转到 Kibana 索引模式
  • 搜索并编辑您在 Kibana 中用于从 Elasticsearch 索引(例如 logstash-*)检索数据的索引
  • 编辑 --> 添加字段
    • 使用 emit(doc['_size'].value) 作为 value
    • 使用字节作为格式
  • 保存

现在,_size 值应该与您的 Kibana 中的任何其他 (_source) 字段一样可用 visualizations/dashboards 等