How to get grafana alerts in ruby

时间:2018-12-03 12:52:38

标签: ruby httprequest grafana

I am trying to use the grafana api (doc here http://docs.grafana.org/http_api/alerting/) to get the list of all the alerts in grafana. Here's what I tried:

uri = URI("http://example:3000")
headers = {
    'Authorization'=>'Bearer test',
    'Content-Type' =>'application/json',
    'Accept'=>'application/json'
}
http = Net::HTTP.new(uri.host, uri.port)
request1 = Net::HTTP::Get.new("/api/dashboards/uid/uKH1CKVmk")
response1 = JSON.parse(http.request(request1).body)

This one works, it returns the json of the dashboard, but when I try :

request2 = Net::HTTP::Get.new("/api/alerts?state=ALL") or
request2 = Net::HTTP::Get.new("/api/alerts?dashboardId="+response1["id"].to_s+"")

request2['Authorization'] = "Bearer test"
request2['Content-Type'] = "application/json"
request2['Accept'] = "application/json"

I get an empty json.

Any ideas what I am doing wrong ?

Thanks, Nicu

1 个答案:

答案 0 :(得分:1)

发现了问题,当我创建API令牌时,我选择了“查看器”权限,我认为它足以对警报发出get请求,但显然不是,而是创建了一个具有“ Admin”权限的新API令牌而且有效。