Grafana和Prometheus:自动添加指标

时间:2019-04-06 10:35:21

标签: grafana prometheus

我正在使用Grafana和Prometheus监视我们的服务器。我们有很多数据库过程,例如“ select_users”或“ insert_task”。为了监视服务器中有多少个挂起的数据库过程调用,我们为Prometheus中的每个过程调用动态添加了数据点。现在,我们在Prometheus中有了“ pending_select_users”,“ pending_insert_task”之类的数据点。

但是,由于数据库过程太多(在开发过程中数量会增加),因此在Grafana中手动为每个数据点添加指标并不是很实际。有没有一种方法可以在Grafana中动态添加指标?由于所有数据点都有一个通用名称前缀(“ pending_”),我们可以在带有通配符的Grafana中添加指标吗?还是有更好的方法来做到这一点?

2 个答案:

答案 0 :(得分:0)

由于Grafana使用JSON作为基础仪表板DSL,因此每次添加新指标并将其(通过API)导入Grafana时,您都可以动态创建仪表板。 我将在您的Prometheus目标之上添加一个自动化工具,抓取指标,如果在没有匹配仪表板的情况下找到新指标(具有所需的前缀),则自动化工具将创建它并将其导入到Grafana中。 Grafana API:http://docs.grafana.org/http_api/(专门用于Dashbboards)。

答案 1 :(得分:0)

@Eitan描述的解决方案绝对是可行的。使用grafonnet之类的库来动态生成仪表板也是如此。

但是我认为最简单的方法是在Grafana中创建一个变量,其中包含您感兴趣的所有标签值。

label_values(metric_name{label_name=~"prefix*"}, label_name)

应该为此工作。然后,使用Grafana的重复面板/行功能为变量中的每个值重复一组面板。尽管如果您有数十个/数百个不同的值,这可能会失控。