博客/社区

如何避免可视化失败

2019年6月10日5分钟

作为一名资深的系统工程师,Blerim Sheqa非常了解如何使用像Grafana这样的工具来调试基础设施中的问题。的CPOIcinga是一款开源监控软件,他在GrafanaCon LA上发表了一篇演讲想象失败。

Sheqa说,有一些常见的陷阱会让你花几个小时“猎鬼”。“错误的数据可视化会导致我们产生误解。我们认为我们在一个图表中发现了一些看起来奇怪的东西,但实际上只是这个图表很奇怪。”以下是需要注意的事项:

约定

“我在网上搜索了我能找到的最糟糕的图表,”Sheqa说。他从2005年的一份关于佛罗里达州枪支法的报纸上想到了这个。

枪死亡

这张图表似乎表明,法律通过后,枪支谋杀率下降了。他指出:“但如果你仔细观察,你会发现,在左边,实际上他们只是把图表翻转了一下。”“这在技术上是正确的,但它不遵循常规。”

教训1:“在可视化数据时,遵循约定是一个重要的部分,特别是在使用这些数据调试基础设施中的任何问题时。”

另一个例子是负载图:

负载图1

Sheqa说:“我们可以看到负荷下降,有时增加,乍一看很正常。”“我们在这里看不到的是,在左侧,Y轴从大约60开始。所以负载实际上是相当高的,但因为我们没有设置正确的最小值,我们第一眼就看不出来。我们相信这个图表向我们展示了服务器上相当正常的负载,实际上它是相当高的,这显然取决于硬件。”

图表应该是这样的:

负载图2

教训2:“使用适当的标签,在必要时设置最小值和最大值,设置正确的值并描述我们看到的数据。”你可能知道数据,但你必须确保你的同事也能理解图表所显示的内容。

可比性

服务器上内存使用情况的图表是堆叠的,这会导致问题。您无法看到服务器上有多少空闲内存。

内存使用情况

Sheqa说:“这是因为像这里这样的堆叠是完全没有用的。”“你必须弄清楚底部的标签是什么,实际的空闲内存是什么?它是在增加还是在减少?”

这个可视化的数据很清楚:

内存占用率2

“它仍然是堆叠的,但我只是翻转了数值,你一眼就能看到内存实际上在增加,”他解释道。“我把所有的空闲内存放在后台,这样你仍然可以看到它,但它不是进入你眼睛的第一个东西。”

第三课:突出显示图表的重要部分对于数据可视化非常重要。

下图是关于请求的。

请求

“它上下起伏,看起来很漂亮,很闪亮,很适合我们的仪表盘。我们可以把它放在电视屏幕上,”他说。“但实际上我们对这里显示的数据一无所知。要求多吗?它们是上升还是下降?这里发生了什么?”

这里有一个更好的版本:

请求2

# 4课:Sheqa说:“使用网格是我过去发现的最重要的事情。“如果你使用最常见的东西,比如网格和Y轴,它会发生很大的变化,因为现在我们可以看到最底部和最高值之间的实际差异有多大。”

下面的CPU图表“告诉我们某个地方有一个峰值,”Sheqa说,“对于比较来说,这实际上不是最好的方法,因为在这个图表中,许多CPU合并到一个图表中并求平均值。因此,仅仅通过观察平均值,我们无法了解行为的任何细节。”

CPU 1

“像你应该做的那样分割图形,因为你有不止一个CPU,”他说。“在这种情况下,它是四个,你可以看到每个芯片CPU的行为完全不同。”

CPU 2

# 5课:“Grafana有这样的功能,我们可以重复面板或重复整行。当你有cpu或网络统计数据时,你应该利用它。”

可读性

图表应该始终对组织中的每个人都可读,而不仅仅是创建它的人。

Sheqa说:“你可以从Grafana中添加更多的功能,比如添加注释,这可以为你的图形添加更多的上下文,这样你就可以更好地理解图形实际上在向你展示什么。”

下面的负载图有关于监视何时因为服务失败而发送警报的注释。

负载图警报

“你不仅可以看到负载发生了什么,还可以看到监控何时向我们发出警报。我需要在哪个时间点看这些图表呢?他说。

另一方面,有这样一种东西太多的注释和上下文。例如,为了幻灯片,这个仪表板必须分成三列:

负载图警报

“它看起来很漂亮;你可以看到许多颜色、形状和许多东西,但对于那些不完全了解数据的人来说,这是非常无用的。”Sheqa说道。

# 6课:“你总是应该关心你在一个仪表板或一个图表中添加了多少信息。”

了解你的数据

最后但并非最不重要的是,Sheqa指出了可视化中最常见的陷阱:当你不理解数据时创建图表。

他说:“在我看来,你绝对有必要知道你正在收集什么数据,并理解你正在收集的每一个指标,这样你就可以真正地将其用于调试。”“如果您不理解之前收集的底层数据,那么最好的仪表板也无法帮助您找到问题。当我们认为我们了解数据,但实际上我们并不了解它们时,这通常会导致我们构建错误的图表和错误的仪表板。这又一次导致了我们的误解。”

更多信息来自GrafanaCon 2019,查看所有关于YouTube