【问题标题】:How can I visualize a histogram with Promdash or Grafana?如何使用 Promdash 或 Grafana 可视化直方图?
【发布时间】:2017-01-01 06:44:00
【问题描述】:

我被 prometheus 的直方图(和摘要)时间序列所吸引,但在 promdash 或 grafana 中显示直方图都失败了。我期望的是能够展示:

  • 某个时间点的直方图,例如X 轴上的存储桶和 Y 轴上存储桶的计数以及每个存储桶的列
  • 存储桶的堆叠图,其中每个存储桶都有阴影,并且堆栈的总和等于 inf 存储桶

一个示例指标是 HTTP 服务器的响应时间。

【问题讨论】:

标签: histogram grafana prometheus


【解决方案1】:

Grafana v5+ 直接支持将 Prometheus 直方图表示为热图。 http://docs.grafana.org/features/panels/heatmap/#histograms-and-buckets

热图比直方图更受欢迎,因为直方图不会显示趋势如何随时间变化。因此,如果您有时间序列直方图,请使用热图面板对其进行描绘。

为了让您入门,这里是一个示例(用于 Prometheus 数据):

假设你有一个如下的直方图,

http_request_duration_seconds_bucket(le=0.2) 1,
http_request_duration_seconds_bucket(le=0.5) 2,
http_request_duration_seconds_bucket(le=1.0) 2,
http_request_duration_seconds_bucket(le=+inf) 5
http_request_duration_seconds_count 5
http_request_duration_seconds_sum 3.07

您可以使用查询:sum(increase(http_request_duration_seconds_bucket[10m])) by (le),将此直方图数据描绘为热图,确保将格式设置为“热图”,图例格式设置为{{ le }},并将面板设置中的可视化设置为“热图。”

【讨论】:

  • 应该是 sum(rate()) 而不是 sum(increase())
  • @HackToHell increaserate 函数都是有效的,没有一个比另一个更正确。函数的选择取决于您想要可视化的“趋势”。
  • 对我来说,图例格式帽子只有 {{le}} 添加`s`导致桶排序问题。为此,应使用可视化选项卡中的 y 轴单位选项。最后,将可视化选项卡中的数据格式设置为时间序列存储桶会排列 y 轴以匹配您的存储桶边界。
  • 注意:“格式为”需要在查询面板上为“热图”。截图显示了它,但很容易错过(否则你会得到累积的热图列,这没什么用)。
  • 如果您可以将实际查询作为文本输入,这样我们就可以复制它了。其次,值得一提的是如何实际显示直方图。
【解决方案2】:

上面@brian-brazil 的答案几乎有效,还有一些额外的、未提及的事情要做。

您可以制作直方图的标准非堆叠率图,并且由于 Prometheus 直方图是累积的,您将得到您正在寻找的结果。

  1. Grafana 中的 x 轴需要在模式系列中
  2. 如果您对系列使用其他不同的标签,则需要按 le 标签聚合结果

之后,您将获得漂亮的直方图。唯一磨我的齿轮是grafana的x轴排序顺序是自然字符串排序。所以 x 轴从 +Inf 开始,然后是 0.1,0.2, .. 1,1.5,10,2,...

PS:在grafana 5.1 中将有使用 prometheus 数据源开箱即用的工作热图。有一个 issue 用于对热图可视化的本机支持,这也适用于(如果您想查看趋势/历史)随时间可视化直方图。

【讨论】:

  • 我遇到了这个(x 轴排序),这绝对是疯了。这么小的问题,让grafana基本无法用于分析直方图。
  • 您可以通过用零填充小数字来解决排序问题
  • 您提到按 le 标签聚合结果 - 这是在 Grafana 查询中完成的吗?我问的原因是我已经很好地堆叠了它,但是每个桶在 Y 轴上显示相同的值,所以要么我们擅长点差交易,要么我有什么问题
  • @eggsy84 你能解释一下你的实现是什么样的吗?您是否使用 prometheus 作为来源?
【解决方案3】:

Grafana 的最新版本具有内置的 Heatmap 可视化类型,但要谨慎使用它,因为它的计算成本可能非常

可以通过选择Graph 可视化然后在Axes 下选择Histogram 来获得直方图X-Axis>Mode

这是 Grafana 7.03 的示例。 ceph_exporter 收集的数据到Prometheus。指标为ceph_osd_utilization。该查询使用模板化变量,但这与该问题正交。

【讨论】:

  • Jeremy,你是如何移动内联图像的?我一开始就想这样做,但不知道怎么做。
【解决方案4】:

我不相信 Grafana 支持直方图的条形图。

您可以制作一个标准的非堆叠率直方图,并且由于 Prometheus 直方图是累积的,您将得到您正在寻找的结果。

【讨论】:

  • 你对非堆叠图是正确的,但我只看到线条,所以它在视觉上不是很吸引人,而且它们通常是相互重叠的,很难分辨出哪个桶里的东西真的跌倒了。
  • 有人谈论添加热图,但我认为还没有任何代码可以做到这一点。
猜你喜欢
  • 2019-03-08
  • 1970-01-01
  • 2020-04-14
  • 2019-07-06
  • 2018-05-18
  • 2014-07-08
  • 2019-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多