如何使用 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。
我想使用他们的 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。