Grafana API 脚本创建新数据源失败
Posted
技术标签:
【中文标题】Grafana API 脚本创建新数据源失败【英文标题】:Grafana API script to create new datasource failing 【发布时间】:2021-09-21 18:48:57 【问题描述】:我正在学习 Grafana,以及如何在 Powershell 中与 API 交互。我能够使用 Grafana HTTP API 创建仪表板,但是我无法获得相同的 API 来创建数据源。我的代码如下:
$header = @"Authorization" = "Bearer apikey="
$createDatasourceUri = "http://localhost:3000/api/datasources"
$createDatasourcejson = @'
"datasource":
"name": "prometheusApiTest",
"type": "prometheus",
"url": "http://localhost:9090",
"access": "proxy",
"basicAuth": false,
"isDefault": true
'@
$datasourceParameters = @
Method = "POST"
URI = $createDatasourceUri
Body = $createDatasourcejson
Headers = $header
ContentType = "application/json"
Invoke-RestMethod @datasourceParameters
我收到以下错误:
Invoke-RestMethod : ["fieldNames":["Name"],"classification":"RequiredError","message":"Required","fieldNames":["Type"],"classification":"RequiredError","message":"Required","fieldNames":["Access"],"classificat
ion":"RequiredError","message":"Required"]
我不知道发生了什么。我能找到的有关此错误的任何信息都表明我需要将 ContentType 指定为“application/json”,但我已经非常清楚地这样做了。当我在该 API 端点上执行“GET”时,我确实收到了数据,即使复制返回的数据仍然会导致上述错误。我完全不知所措,因为同样的代码用于创建仪表板(尽管仪表板具有正确的 json 有效负载)。有什么想法吗?
【问题讨论】:
【参考方案1】:The Grafana docs for the Datasource API 在响应中只有datasource
元素,而不是初始调用。不需要我的代码的第 5 行以及该元素的后续 ,并且删除了这些行的脚本函数。
【讨论】:
以上是关于Grafana API 脚本创建新数据源失败的主要内容,如果未能解决你的问题,请参考以下文章
通过 API 创建的 Grafana 仪表板未显示在 Grafana UI 中
使用 Grafana 从通过 API 提取的数据创建实时仪表板,无需数据库