Grafana: 图:Y自动缩放的限制(最小值最大值)

创建于 2014-10-24  ·  46评论  ·  资料来源: grafana/grafana

我有一个显示错误率的图表,并且已将轴最大值设置为auto 。 问题在于,在安静的日子中,错误率低,轴会收缩以显示微小的斑点,像大山一样。 我可以将max设置为特定的值。 但是,我不想着眼于低点并体验图表之外的图表。 而且,我不想将最大值设置得太高而无法获得可读的“中”图。 (我不想使用阈值,因为我在另一轴上有图形,也不想引起与这些范围的混淆。)

理想的解决方案是设置“最小-最大”。 我可以将min-max设置为100,并且轴永远不会小于该值。 但是,如果需要,它将增长。

arepanegraph help wanted prioritnice-to-have typfeature-request

最有用的评论

从大约2年前开始:

在等待时间找出用户界面后还原了该功能

请带回><同时考虑使用更好的UI。

所有46条评论

谢谢,有趣的主意。 似乎有点边缘情况。 但是我同意,有时可能会有用。

是的,我只是想把我的想法写在纸上。 :啤酒:

我认为这不是一个极端的情况。
设置自动缩放。 将0-100设置为最小范围,但允许图形按比例缩放。 这在董事和副总裁之间引起了几次恐慌,直到我让他们看一下规模。

+1我在grafana中可视化的许多时间序列数据都位于零噪声下,这使图形显得凌乱且不清楚。

从Grafana.net用户+1。

最小规模将有助于解决网络接口之类的问题,其中一些我们的专用/ vpn链接处于空闲状态(〜20kb / s),但在使用时为50-100Mb / s。 如果将比例尺设置为100Mb / s并结束,则不知道,如果将比例尺设置为200Mb / s,那么当它仅为5-10Mb / s时我看不清数据。

我知道此功能可能仅对很少的人有用。 但是我对此一直很在意。 我想出了一些对我有用的东西。 我的叉子中的提交将“ Y跨度”框添加到“轴”选项卡。

其中X是整数或浮点数:

~X Span X around average
=X Span X around current value
>X Span is atleast X
<X Span is clamped to X

https://github.com/thoj/grafana/commit/7dcdccbd42e9f63b7388e439f7194fe7ead8039a

为什么我需要它的示例:
y-span

对公关有兴趣吗?

@thoj这将是一个了不起的补充。 我们对某些图形使用阈值,并且希望始终显示它,但仍会缩放图形以显示远高于阈值的点。 “> X”在这里效果很好(而且

@lpalm是的! 我将添加请求请求,以使讨论继续进行,

这是在4.0.x发行版中吗? 我试图在Y轴设置中使用“ <”和“>”,但无济于事。

无需还原它,我们想要一个比用户隐藏的功能更加用户友好的输入/ UI,该隐藏的功能是输入字段支持><这样的表达式,因此在等待时间找出该功能后将其还原用户界面

除了Y-min和Y-max之外,我们是否可以在保管箱中使用它?

你好

不久前,我为石墨项目创建了此功能,并得出以下结论:我永远不想使用yMax
是否有人认为yMax是有用的功能,还是应该将yMax重新设计为minYMax

我的意思是,如果我将yMax设置为x并且计数器超过x ,有人会不想看到它超过了限制多少吗?

当我有百分比以确保100%始终完全位于图的顶部时(即使有一个小斑点),我使用yMax

我还需要yMax。 这是由于某些噪声信号具有很高的尖峰而使图形失真。

@iksaif是的,但这不应该要求修复yMax。 由于您的图形永远不会超过100%并且动态yMax会是100%您的图形将与yMax的当前实现完全相同?

@thoj听起来不可靠吗? 相反,您不是要从图形中排除那些尖峰吗,或者您是否关心它们实际上知道该值?

@Kvistian ,由于

还有一些时候,我只想看到何时要“放大”,并且可以使用yMax来做到这一点。

好的,但是您同意大多数情况都需要动态yMax吗? 在那种情况下,对于那些边缘情况,使yMax动态化并使用诸如staticYMaxfixedYMax之类的新功能是否有意义? 因此,由于它是一般用例,因此将动态yMax设置为默认值。

听起来像设置图形顶部的下限可能很有用,但我不会更改现有yMax的语义(实际上是可以显示的最大y)。

寻找在其他类似软件中如何命名这件事将很有趣

@Kvistian并非每个人都希望使用grafana仅显示来自服务器的良好干净指标。 我想显示嘈杂的物理过程的指标,并且有时会返回奇怪的数据。 Se我的示例和解释在这里: https :

@thoj我不建议删除它是否有用,我只是质疑它是否有用。 但是似乎有一些用例,因此在这种情况下不应删除它。 但是我个人认为,应该有更多的情况需要动态yMax 。 当我偶然发现石墨问题时,我实际上以为yMax可以解决我的问题(因为对于实际的静态yMax,我看不到任何有用的情况)。 最终,这只是一个命名问题。

我真的不在乎它是yMax还是minYMax ,只是认为yMax感觉更像是应该解决最常见用例的default函数。

我正在显示电池的充电状态(SOC)值,并且非常喜欢能够设置上限和下限,同时在这些限制内保持自动缩放的功能。

这是我通过设置或不设置Y-Max值面临的问题的一些图像。

如果我设置Y-Max值,则该图将显示Y刻度上的SOC值> 100%,这将永远不会发生。 换句话说,对于电池充电状态:

0% <= y_scale_values <= 100%

screen shot 2017-02-07 at 21 31 01

如果我_do_设定Y-max值,然后当我有低SOC值很长一段时间的图不自动缩放,如下面展示的形象。
screen shot 2017-02-07 at 21 29 35

我想要的是能够设置一个上限(100%)和下限(0%),但仍然可以使绘图自动缩放在这些限制内,就像在未设置Y限制时一样。

只需添加我们的用例。 我们正在监视一个网站,并具有针对“工作”实例的运行状况检查流量的基准水平,我希望将其显示为图形上的“低”图形线(例如0.1请求/秒,但该轴的最小值为1,而仍可在“实际”流量到达时使图轴向上缩放。

可能会有一个最小的最大Y轴值。

为所需的最小比例创建一个Baseline度量。 在这里,我为CPU时间选择了1:

image

添加基准指标的替代值以使其从图形中消失:

image

而已。

唯一的缺点是您可以看到将其悬停的基准:

image

我也需要此来进行IO显示。

例如,读取速度可以是50kb / min或500MB / min,设置一些最小比例-例如默认为100MB / min将使我的图形更加一致。

+1
请?

@dstensnes请不要在GitHub问题上留下此表格的评论。 您可以在初始帖子中添加反应,以显示您想要此功能。 当您评论+1时,关注此问题的每个人都会收到一封通知电子邮件,其中没有任何相关信息。 这简直是​​不好的形式。

好的,我可以接受:)有人看过这些反应吗? 我现在注意到,您可以对反应的数量进行排序,所以至少是这样。 谢谢

我认为大多数人的用例都可以通过在Y-Min和Y-Max字段旁边添加“软限制”复选框来解决。 如果将Y-Max向下移动到下一行,则复选框和标签都应该有足够的空间,并且功能应该很容易说明:)

我不确定如何将其视为边缘情况,我们拥有的主要应用是网络流量,但是在大多数图表上,您都不想看到显示为“山”的微小值。

目前有解决方法吗?

有任何更新吗? 这使得设置好的仪表板非常困难。

UI的一个想法是:

  • YMax(soft)-图形顶部始终至少延伸到此处
  • YMax(hard)-图形的顶部永远不会超出此处
  • YMin(soft)-图形底部始终至少延伸到此处
  • YMin(hard)-图形的底部永远不会超出此处

对此的另一种考虑可能是Y轴的最小范围,该范围定义了从当前Y-low到Y-high的范围永远不会小于给定值。 这样,渲染器可以自由设置y轴的起点和终点-同时避免将值渲染为山峰的微小变化。

我也发现这是一个嘈杂的数据,这是一个非常普遍的问题,大多数数据都是嘈杂的。

我认为真正的问题是,离群值会使Y轴的比例倾斜,从而使其他所有内容均消失。 我看到正确的解决方案的方法是允许Y轴范围根据显示的数据动态变化,同时修剪极端的离群值。 最好的方法是根据与显示数据平均值的标准偏差确定范围。 例如,如果将1个标准偏差设置为比平均值多1个标准偏差的值,则将在图形上进行修整。 这既易于配置,也可以在客户端轻松计算,因此它不依赖于数据源,并且很容易让人理解。

从大约2年前开始:

在等待时间找出用户界面后还原了该功能

请带回><同时考虑使用更好的UI。

我迫切地等待着像2年前被删除的功能!

甚至在不同系统上监视相同度量标准的模板化图表并排时,也会给出不准确的视觉效果,因为仅根据图表上的当前数据自动独立地调整比例。

可能会有一个最小的最大Y轴值。

为所需的最小比例创建一个Baseline度量。 在这里,我为CPU时间选择了1:

image

添加基准指标的替代值以使其从图形中消失:

image

而已。

唯一的缺点是您可以看到将其悬停的基准:

image

对于那些阅读@bobrik有用的解决方法的人来说,这些天来,您可能还会在替代中的工具提示中隐藏baseline项目。
image

@bobrik @ sb3tcs嗨,我想使用您的解决方法,但是如果我只输入20或其他一些数字,Grafana最终会出现查询语法错误。 如何创建基线指标? 还是我的Grafana 5.1太旧而无法支持这种查询?

我在第二个查询中使用了一些链接函数,以防止图形在y轴上放大太多。
在此示例中,我在一个图中绘制了来自多个服务器的登录用户的图表。

我添加了具有相同数据点的其他查询:
偏移量(-20)aggregateBy(1m,min)removeBelowValue(0)setAlias(hidden_​​min)

这会将动态缩放从
最小到最大

最小20(而不是负数),最大

隐藏假图:
用正则表达式“ /hidden_​​.*/”替代可视化
行数:false
图例:false
隐藏在工具提示中:true

您甚至可能在多个图形之间同步y轴。 就像每个服务器的面板一样,并从每个面板中所有服务器的数据点收集最小/最大。

我找到了另一个解决方法。 我刚刚添加了带有min和max标签的min和max时间序列。 线是这样的
weather,sensorID=min temperature=0
weather,sensorID=max temperature=20
那些被添加到图形中并如上所述隐藏。 唯一的问题是您需要定期注入。
外观如下,可能需要将最高温度设置为19,以便将轴自动调整为20。

Unbenannt

编辑:插入最大为19,它起作用。

我偶然发现了这个线程,寻找在Grafana中设置灵活的y-max的解决方案。 对于我的用例,我正在绘制API的请求延迟和数量。 我想将一个灵活的y-max设置为大约500毫秒(.5秒),以便通过排除尖峰离群值并在最大延迟低于此值时自动调整y-max来更好地了解低延迟调用的细微差别该阈值。

我尝试将y-min设置为0,将y-max设置为<.5,但是我的y轴要么完全消失,要么忽略y-min。 不管绘制等待时间和一起/分别请求卷查询如何,都会发生此问题。 在这个问题上有什么新进展吗? 这对我的团队真的很有益。

我包括一些图表,其中y-max的配置有所不同(每种情况都由图表标题标记)
Screen Shot 2020-05-27 at 2 44 03 PM
Screen Shot 2020-05-27 at 2 42 56 PM
Screen Shot 2020-05-27 at 2 42 19 PM
Screen Shot 2020-05-27 at 2 41 39 PM

如果您不想绘制500ms以上的值,则可以尝试使用removeAboveValue(0.5)
然后告诉图形应该如何处理空值

没有线索是否可以使用此函数的计算参数

最新的基线解决方法如下:

image

这样可以停止基线查询出现在图形,图例和悬停工具提示中,也可以防止它引起堆栈问题。

这不是真正的边缘情况,而是非常普遍的情况。 我实际上认为,经常需要具有“软”最小/最大值的y轴。 设置y轴刻度的主要原因是,您希望将其与预期的数据范围对齐,并且希望将多个图与y轴对齐,以便可以轻松比较值。

寻找在其他类似软件中如何命名这件事将很有趣

Highchartjs将其称为softMin / softMax。
https://api.highcharts.com/highcharts/yAxis

AnyChart将其称为“软最小/最大”。
https://docs.anychart.com/Axes_and_Grids/Scales#soft

Chartjs具有“ suggestedMin / Max”选项来处理此用例。
https://www.chartjs.org/docs/latest/axes/cartesian/linear.html#axis -range-settings

amCharts称它们为min / max和strictMin / Max。
https://www.amcharts.com/docs/v4/reference/valueaxis/#strictMinMax_property

例如,当RRDtool使用自动缩放时,默认情况下具有“软”限制,但是具有一个称为rigid的选项,该选项强制对缩放进行“硬”限制。

[-u |-下限值] [-l |-下限值] [-r |-刚性] [-允许收缩]

默认情况下,图形将自动缩放,以便将y轴调整为数据范围。 您可以通过显式设置限制来更改此行为。 然后,显示的y轴的范围至少从下限到上限。 除非设置了刚性选项,否则自动缩放仍将允许那些边界被拉伸。 allow-shrink通过允许自动缩小比例来更改刚体的行为,图形不会超出用户指定的限制。
https://oss.oetiker.ch/rrdtool/doc/rrdgraph.en.html

Tableau具有允许所有行或列的统一轴范围的功能,例如,您可以选择仅针对y轴。 这以稍微不同的方式解决了该问题,但是仍然是相同的用例,其中一个人希望多个图表具有相同的轴范围/比例。

尽管围绕此的许多讨论都集中于实现缩放的单独的软最小和最大值,但我认为实现“最小y轴范围”功能是其中的一部分,与“软最小/最大,如原始海报所建议的那样。 柔和的最小值和最大值将用于指定y轴上的固定位置,这些位置在自动缩放时必须始终可见。 当您拥有一直希望可见的y轴值的已知范围时,可以使用此方法,这对于防止由于自动缩放的缩放效果而导致的小的方差出现为夸张的峰和谷是有用的。 但是,这仅在您知道设计时这些y轴值是什么的情况下才有效,但情况并非总是如此,特别是对于那些为可能具有不同硬件和负载模式的最终用户使用模板而设计的人们。

自动缩放的最小y轴范围选项将消除此要求。 当在数据范围(即abs(max(Y)-min(Y)) )未超出配置的最小y轴范围的一组值上使用时,将设置y轴上的最小值和最大值,以便数据垂直居中。 这样就避免了夸大小方差的问题,而图形设计者无需提前知道确切的y轴值。

快速伪代码演示计算方法:

minRange = 25
dataRange = abs(max(Y)-min(Y))
if dataRange < minRange:
    yAxisExtension = (minRange - dataRange) / 2
    yAxisMin = min(Y) - yAxisExtension
    yAxisMax = max(Y) + yAxisExtension

这种方法不会像以均值为中心那样使异常值超出范围。

作为一个示例用例,想象一下您正在设计一个仪表板来监视NUT / upsd中的数据,并且将电源使用图放在一起。 我的UPS可能平均为400W,而其他人的平均功率可能为100W或1000W,这取决于他们的硬件设置。 不可能提前知道这一点。 但是,在短时间内,汲取的功率通常是相当恒定的,这意味着在执行自动缩放时,容易出现y轴夸大的现象。 这是最小y轴范围的理想用例,您可以对给定时间段内方差的大小做出合理的假设,但不能对绝对值的大小做出合理的假设。

如果传感器的分辨率有限,则您看到的只是在所选时间范围内数量变化很小时的量化噪声。 我希望看到一个最小的y跨度,例如,在图中不要过多地放大此量化噪声。
在左右y轴的y值跨度较小的情况下,最好将一个y轴的中心朝上半部分“推”,将另一个y轴的中心朝下半“推”。半。 会抑制不必要的左右Y值相交。 当然,如果两个Y轴都显示相同的数量,则不应像这样微调轴,但是已经有“同步y轴”选项。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

torkelo picture torkelo  ·  168评论

costimuraru picture costimuraru  ·  132评论

Dieterbe picture Dieterbe  ·  294评论

sanchitraizada picture sanchitraizada  ·  126评论

mbell697 picture mbell697  ·  145评论