如何使用 Grafana API 指定数据源的 ID?

How to specify the ID of a Datasource using Grafana API?

我想使用他们的 API 创建 DataSource。所以我可以毫无问题地创建数据源,但我无法指定我想使用的 ID。

这对我很有用,因为我想按照以下逻辑动态创建数据源:

check if a new host is up --> if one is up create a datasource

check if a host is down --> if one is down delete his datasource

为了创建数据源,我做了:

createDataSource =  Meteor.bindEnvironment(function() {
  setTimeout(Meteor.bindEnvironment(function(){
    HTTP.call("POST", "http://localhost:3000/api/datasources", {
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json',
                'Authorization': 'Bearer 123',
            },
            data: {
                "name":"test_datasource_from_js",
                "id":5,
                "type":"prometheus",
                "url":"http://dataSourceFromJs:9090",
                "access":"proxy",
                "basicAuth":false
            }
        },
        function(error, result) {
            if (!error) {
                console.log(result);
            } else {
                console.error(error);
            }
        });
  }),500);
});

但是字段 "id":5 没有影响数据源是用 ID 3 创建的。

您不能自行设置ID。 Grafana 在内部使用数据库中的增量计数器来避免 ID 冲突。

我建议您使用数据库名称而不是 ID。