在Kibana中未检测到时间戳和文档

时间:2015-03-11 07:19:20

标签: elasticsearch timestamp kibana

我正在使用Elasticsearch一段时间,并希望使用Kibana可视化数据。由于我有时间序列数据,我从我的角度创建了一个---相应索引中合适的时间戳字段。索引映射的相关部分如下:

[..]
"properties": {    
  "@timestamp": {
    "enabled" : true,
    "type":"date",
    "format": "date_hour_minute_second_millis",
    "store": true,
    "path": "@timestamp"
},
[..]

我玩过“格式”字段值,因为我希望可视化具有毫秒分辨率的数据。理想情况下,我只想使用我的应用程序中的原始时间戳(即Unix纪元时间,小数秒),但我无法让Kibana检测到该格式。目前,我发布的数据如下:

{
  "@timestamp": "2015-03-10T14:37:42.644",
  "name": "some counter",
  "value": 91.76
}

Kibana将@timestamp字段检测为时间戳,但随后告诉我它找不到存储该字段的任何文档(这不是真的):

  

此字段存在于elasticsearch映射中,但不存在于搜索结果中的任何文档中。您仍然可以对其进行可视化或搜索。

我应该注意以前,我使用“dateOptionalTime”作为时间戳的格式,并且使用“简单”时间戳在Kibana中一切正常。但是,我现在需要切换到毫秒。

干杯!

1 个答案:

答案 0 :(得分:0)

我也在努力解决这个非常模糊的问题。无论我如何改变映射,Kibana都不会显示某些字段。

然后我发现它与JVM堆大小有关,而Kibana无法显示每个字段“内存中”。

在映射期间将“doc_value”设置为true,以解决问题。

在Java API中,我正在构建包含doc_values选项

的以下映射
XContentFactory.jsonBuilder()
        .startObject()
            .startObject("@memory-available")
                .field("type", "integer")
                .field("index","not_analyzed")
                .field("doc_values", true)
            .endObject()
        .endObject();

在此处阅读更多内容:Doc Values in ES