【发布时间】:2018-02-25 03:59:47
【问题描述】:
我在 Grafana 中有不同嵌套深度的数据。它看起来像这样(嵌套深度因消息类型而异):
foo.<host>.type.<type-id>
foo.<host>.type.<type-id>.<subtype-id>
foo.<host>.type.<type-id>.<subtype-id>.<more-nesting>
...
<host> 字段可以是发送数据的服务器的 IP,<type-id> 是它处理的消息类型。消息类型有很多,但为了可视化,我只对在所有主机上聚合的第一级 <type-id> 感兴趣。
例如,如果我有这个数据:
foo.ip1.type.type1 = 3
foo.ip1.type.type2.subtype1 = 5
foo.ip2.type.type1 = 4
foo.ip2.type.type2.subtype1 = 9
foo.ip2.type.type2.subtype2 = 13
我宁愿这样看:
foo.*.type.type1 = 7 (3+4)
foo.*.type.type2 = 27 (5+9+13)
然后生成一个图表会更容易,您可以在其中查看最常见的消息类型。
我还没有找到在 Grafana 中表达这一点的方法。我看到的唯一选择是通过为每种消息类型手动创建查询来创建图表。如果只有少数类型就可以了,但在我的示例中,类型的数量非常多,甚至更糟,它们会随着时间而改变。添加新消息类型时,我希望无需更改图表即可查看它们。
Grafana 是否支持以这种方式聚合数据?它能否可视化由一个节点聚合的数据,同时总结节点之后的所有内容(如 Unix du 命令中的--max-depth 选项)?
我对 Grafana 不是很有经验,但我开始相信不支持此功能。不确定 Grafana 是否允许对数据进行预处理,但是否可以将数据转换为
foo.ip1.type.type1 = 3
foo.ip1.type.type2_subtype1 = 5
foo.ip2.type.type1 = 4
foo.ip2.type.type2_subtype1 = 9
foo.ip2.type.type2_subtype2 = 13
这也是有效的解决方法,因为我的数据中的子类型数量非常少(通常甚至只有一个子类型)。
【问题讨论】: