【问题标题】:Kibana time delta between two fields两个字段之间的 Kibana 时间增量
【发布时间】:2015-10-18 20:11:35
【问题描述】:

我有两个字段作为日志消息的一部分保存在我们的 ELK 集群中:

"EventTime": "2015-07-28 17:03:20",
"EventReceivedTime": "2015-07-28 17:03:22"

有没有办法在每条日志消息中获取此字段之间的时间差(在本例中为 2 秒)并通过 Kibana3 显示?

如果不可能,直接弹性搜索查询也可以。

提前致谢!

【问题讨论】:

    标签: date time elasticsearch logstash kibana


    【解决方案1】:

    是的,我只是在 Kibana 中使用脚本字段处理了一些测试数据。在 Kibana 中,转到设置,单击左上角的索引模式。

    您应该会看到 2 个选项卡“字段”和“脚本字段”。

    单击“脚本化字段”选项卡。然后“添加脚本字段”。

    输入“名称”并在脚本字段中输入类似的内容

    doc['EventReceivedTime'].value - doc['EventTime'].value

    点击底部的“创建字段”。现在,您应该会在 Discover 中看到新的脚本字段,并且可以在可视化中使用它。 我的时间戳以毫秒为单位,而我的 delta_time 以毫秒为单位。

    【讨论】:

    • DateOptionalTime 字段怎么样?
    【解决方案2】:

    如果值是数字,您应该能够在 kibana 中创建脚本字段(使用启用的“elasticsearch scripting”功能)。这必须在每个事件显示时计算。

    我建议在事件发生时在 logstash 中执行此操作。在写入 elasticsearch 之前,您可以放弃使用 ruby​​{} 过滤器来计算差异,因此它可用于查询和显示,当时无需额外处理。

    【讨论】:

      【解决方案3】:

      如果字段都是日期字段,您可以先将它们转换为毫秒,然后减去它们。例如

      doc['@timestamp'].value.getMillis() - doc['lastUpdatedDate'].value.getMillis()
      

      这适用于 elastic/6.2.2

      【讨论】:

        【解决方案4】:

        查看文档:https://www.elastic.co/guide/en/elasticsearch/reference/5.0/modules-scripting-expression.html#_date_field_api

        我认为日期扣除会起作用,因为“日期字段被视为自 1970 年 1 月 1 日以来的毫秒数”:

        doc['@timestamp'] - doc['lastUpdatedDate']
        

        它没有。至少在 elastic/kibana 6.0.0 中没有。我确实让这个与这个非常丑陋的黑客一起工作:

        ((doc['@timestamp'].date.year - 2017) * 31536000 + doc['@timestamp'].date.monthOfYear * 86400 + doc['@timestamp'].date.dayOfMonth * 3600 + doc['@timestamp'].date.secondOfDay) - ((doc['lastUpdatedDate'].date.year - 2017) * 31536000 + doc['lastUpdatedDate'].date.monthOfYear * 86400 + doc['lastUpdatedDate'].date.dayOfMonth * 3600 + doc['lastUpdatedDate'].date.secondOfDay)
        

        我不得不从年份中推断出 2017 年,否则数字会溢出......

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-09-14
          • 1970-01-01
          • 2016-07-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多