有什么方法可以在 grafana 上将 key/value 对作为模板变量?

Any way to have key/value pairs as template variables on grafana?

我正在使用 grafana 构建几个仪表板,我发现模板功能非常有用,但是我正在监视一些 ec2 实例并从 cloudwatch 的 ec2 命名空间获取一些指标,但是那些使用 instanceid 作为参数,因为instanceid 不是人类可读的,这让我想到了我的问题:

有什么方法可以将 key/value 对作为仪表板的模板变量吗?这样人们就会看到主机名,select,正确的 instanceid 将被提供给面板,

提前致谢

v4.0 of Grafana 以来,Grafana 具有临时过滤器变量,但不幸的是,Cloudwatch 数据源尚不支持它们。 (InfluxDB、Elasticsearch 和 Prometheus 都有支持)。

但是,您可以链接模板变量,以便可以将父模板变量传递给子模板变量。这里有一个that的demo(使用Graphite但原理是一样的)

Grafana.com 上的这个 Cloudwatch 仪表板也使用了这个功能:

https://grafana.com/dashboards/590

这是一个子模板变量(如下)。其他模板变量值被传递到维度值的查询中 - dimension_values($region, $namespace, $metric, $dimension)

如果您使用 PostgreSQL 作为数据源(并且可能同样适用于其他数据源),您可以查询:

SELECT hostname AS __text, id AS __value FROM host

它会自己做其他所有事情

取自official docs