【问题标题】:How do I create a stacked graph of HTTP codes in Kibana?如何在 Kibana 中创建 HTTP 代码的堆叠图?
【发布时间】:2014-03-30 00:30:30
【问题描述】:

我将 HTTP 日志发送到 Kibana,并且响应代码(200、401、500 等)被正确解析为字段。我想要一个时间序列图表,其中每个代码的计数显示为在每个间隔中以不同颜色堆叠在一起的条形。例如,这应该有助于查看是否突然出现更多 500 个错误。

我很难弄清楚如何在 Kibana 中创建这样的图表。这可能吗?

【问题讨论】:

    标签: elasticsearch kibana


    【解决方案1】:

    这是 Kibana 4/5 答案,如果您使用的是 Kibana 3,请查看 this answer

    Kibana 4/5

    在撰写本文时,唯一可用于 Kibana 4 的版本是 beta1,因此这些屏幕截图在未来的 Kibana 版本中可能会有所不同。如果应用了相关更改,我会尽量保持更新。

    Kibana 4(和 5)提供了一些以前版本没有的功能。例如,现在我们可以使用自 1.0 版以来 ES 中可用的聚合来构建面板。

    要构建 HTTP 代码(或其他字段)的堆叠图,您必须:

    • 点击可视化标签。此选项卡允许您构建面板,然后您可以将其放入仪表板中。

    • 然后您必须选择要创建的可视化进行新搜索(或使用现有的,如果您之前在 Discover 选项卡中玩过。您必须选择一个现有索引您之前配置过。

    • 选择索引后,您必须选择所需的面板类型。在这种情况下,我们将选择一个垂直条形图

    • 接下来我们会找到一个漂亮的页面,右侧有一个图表和一个带有不同选项的面板。这个面板将让我们定义一个查询来绘制我们的数据。基本上,我们想要在 Y 轴上绘制的是文档数量(默认情况下是选中的那个)。

    • 然后我们添加一个新的聚合,首先我们想要按时分发的文档总数,然后我们想要将这个总数与不同的现有代码分开。此外,第一个聚合将是每个时间戳,第二个聚合将是每个代码。您想要在 X 轴上绘制时间戳(选择 X 轴),并且想要将条分割成不同的代码(选择分割条)。您的最终配置应该是这样的:

    • 申请后,最终的结果应该是这样的。

    • 如果您想聚合更多或更少时间的数据(有几个选项,如每小时、每天、每月...),您可以使用间隔。如果您想查看更多数据,请记住更改顶部的时间跨度,因为此图表受该时间戳的限制。

    【讨论】:

    • 感谢分享@Pigueiras
    • 当我使用 @timestamp 时 Kibana 4 崩溃。你能告诉我你的时间戳的格式和映射吗?
    • "@timestamp": { "format": "dateOptionalTime", "type": "date" } @AliClarke
    • 我可以提供错误率吗?例如,内部错误数/所有记录数。
    • @okwap 目前不可能。为此,您需要 pipeline aggregations,在 ES2.0 中出现,在 Github 中出现 this Kibana issue 已关闭(虽然它甚至不在路线图中:()
    【解决方案2】:

    这是 Kibana 3 的答案,如果您使用的是 Kibana 4 或 5,请查看 this answer

    Kibana 3

    如果我没有误解你的问题,你需要的是:

    • 定义您的查询。如果您希望每个响应类型都有一个条形图,则需要为每个响应定义一个查询。您必须定义一个查询field: <value> 来过滤确切的值。例如,您可以进行如下查询:

    • 创建直方图。
    • 配置直方图:
      • 查询:您可以选择所有查询,也可以只选择您最初编写的查询中的几个。

    • 面板:您可以像这样放置配置。您可以设置自定义间隔来对日志进行分组,将值单独堆叠(我认为更有意义,当您将鼠标放在图表上时将显示正确的值而不是堆叠的值......)。您可以尝试一下这些选项。

    最终的结果会是这样的:

    【讨论】:

    • 这适用于有限数量的代码,如果您的值不是预定义的常量怎么办?
    • @Brimstedt 目前还不能用 Kibana 做到这一点
    • 你能把它保存为面板的一部分吗?
    • 堆叠图出现在上图中的原因是因为使用了多个查询字段。我想保存面板,以便即使我的查询字段为空,它也始终显示堆叠图。
    • @Patrick Kibana3 是不可能的,但我认为现在 Kibana4 是可能的。当我有时间时,我会编辑答案:D
    【解决方案3】:

    Kibana 3

    对于每个响应类型的栏,您希望为每个响应编写一个查询。您尚未定义查询字段:用于过滤。例如,您可以进行如下查询:

    然后你会得到这样的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2012-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-18
      相关资源
      最近更新 更多