随着软件系统的复杂度的爆炸性增长,通过对这些系统进行检测而产生的数据量也在增加。这给我们的用户带来了一个问题--尤其是那些在大型企业中负责可观察性团队和可观察性平台的人。他们必须在成本管理和给团队提供自由来检测他们想要的东西之间取得适当的平衡。通常情况下,可观察性领导要支持几十个使用数百个仪表盘的团队。要弄清楚哪个团队以可扩展的方式关心哪个信号并不容易。
当我们与Grafana Cloud的一些用户讨论这一挑战时,我们意识到,如果我们能回答哪些指标没有被使用的问题,我们就能给用户提供一种快速的方法来开始弄清哪些指标是重要的。
我们很高兴与大家分享最近发布的一组cortex-tools的命令--我们用于与Grafana Cloud交互的命令行工具--它可以生成一个未使用的指标列表,按照cardinality排序。
在命令(analyse commands)的上下文中,未使用的指标目前被定义为Grafana Cloud存储中的活动系列,但没有显示在Grafana实例中的任何仪表板上。
请注意,这是一个早期的迭代,存在一些限制。关键是,**使用模板变量**的仪表盘会被忽略。 如果你有使用模板变量的仪表盘,我们强烈建议不要依赖这个工具,因为这些指标将被定义为 "未使用"。我们希望能在未来几个月内修复这一限制。还需要注意的是,用于Grafana警报或查询的指标被认为是未使用的。这个命令目前是根据 "这个指标是否在仪表盘中使用 "来解决的。
好了,让我们试试吧。
开始使用
开始使用超级简单:
- 首先,安装cortex-tools,这是一套强大的命令行工具,用于与Cortex进行交互。
- 创建一个Grafana API密钥。
- 运行cortextool
analyse grafana命令,./cortextool analyse grafana --address=--key=,以查看Grafana仪表盘中的图表指标列表。 - 运行
analyse prometheus命令,./cortextool analyse prometheus --address=https://prometheus-us-central1.grafana.net/api/prom --id=--key=--log.level=debug, 查看Grafana仪表盘中没有使用的指标列表,按cardinality排序。
没有显示在Grafana仪表盘中的指标是可以删除的主要候选指标。我们仍然建议在删除前与团队和利益相关者进行核对,但这个列表应该是思考你的指标使用情况的一个好的起点。记住,用于警报和查询的指标或使用模板变量的仪表盘中的指标将被定义为未使用。
删除未使用的度量值
现在你有了一个未使用的指标列表,你如何从摄入中删除它们呢?比方说,你看到metric_a 和metric_b 没有在任何Grafana仪表盘中使用,而且cardinality太高,你不想要它们。
如果你使用Prometheus或Grafana Agent向Grafana Cloud发送指标,你需要修改你的remote_write配置以防止指标被发送。
这可以通过在你现有的remote_write配置中添加一个条目write_relabel_configs 来实现。
比如说:
remote_write:
- url: https://prometheus-us-central1.grafana.net/api/prom/push
basic_auth:
username:
password:
write_relabel_configs:
- source_labels: \[\_\_name\_\_]
regex: metric_a|metric_b
action: drop
该规则查找标签__name__ 的值为metric_a 或metric_b 的任何度量。__name__ 标签代表度量在 Prometheus 中的名称。这个规则使用了一个重词来匹配度量衡的名称,所以你可以添加任何你想要的度量衡,只要你用一个|管子把它们分开。
就这样了!谢谢你的关注。我们已经找出了未被cardinality使用的顶级指标,并且我们已经删除了其中一些指标的发送。