调用API来自动创建Grafana图表

调用API来自动创建Grafana图表

1、获取API Keys

进入Grafana图表界面,按图下所示删除相应style,用于显示login按钮

创建API Keys,用于后期使用API创建图表时用于鉴权使用,“API Key Created”界面只出现一次注意保存。

     

2、获取接口方法

通过官网可以获取接口方法,http://docs.grafana.org/http_api/dashboard/

可以通过学习相应的接口方法来创建dashboard,举例如下:

创建

curl -X POST -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN值" -i "https://地址:3000/api/dashboards/db" -d '{"dashboard": {"id": null,"uid": null,"title": "Production Overview","tags": [ "templated" ],"timezone": "browser","schemaVersion": 16,"version": 0},"folderId": 0,"overwrite": false}'

扫描二维码关注公众号,回复: 6050958 查看本文章

查询

curl -X GET -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN值" -i "https://地址:3000/api/dashboards/uid/sRz3Bgbik"

3、自定义创建图表

如上实例,可以实现创建dashboard,但是自由度不高,可以采用如下所示的当时来创建自定义的指标图标。

可以现在dashboard手动的创建出所需要展示的图标,然后复制json model,之后删除手动创建的图标,使用API来创建图标。

复制右侧的jsonModel

创建自定义告警可以借鉴jsonmodel之中的某些属性,实现自由定制图标。如下:

创建(精简版、单个):

curl -X POST -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN值" -i "https:/地址:3000/api/dashboards/db" -d '{"dashboard": {"id":XXXX,"uid":"XXX","title":"XXX","tags":[ "XXX" ],"panels": [{"datasource": "XXX","gridPos": {"h": 9,"w": 12,"x": 0,"y": 0},"targets": [{"aggregator": "none","alias": "$tag_server","downsampleAggregator": "sum","downsampleFillPolicy": "none","metric": "XXX"}],"title": "测试3","type": "graph"}]},"overwrite": true}'

其中"alias": "$tag_server"表示图中各个指标的别名为tag中的server,downsample表示采样(如一分钟内可能报多个数据,可以将采样间隔修改为一分钟)

创建精简版(多个):

curl -X POST -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN值" -i "https://网址:3000/api/dashboards/db" -d '{"dashboard": {"id":XXX,"uid":"XXX","title":"XXX","tags":[ "XXX" ],"panels": [{"datasource": "XXX","gridPos": {"h": 9,"w": 12,"x": 0,"y": 0},"targets": [{"aggregator": "none","alias": "$tag_server","downsampleAggregator": "sum","downsampleFillPolicy": "none","metric": "XXX"}],"title": "测试1","type": "graph"},{"datasource": "XXX","gridPos": {"h": 9,"w": 12,"x": 12,"y": 0},"targets": [{"aggregator": "none","alias": "$tag_server","downsampleAggregator": "sum","downsampleFillPolicy": "none","filters": [{"filter": ".*XX.*","groupBy": false,"tagk": "server","type": "wildcard"}],"metric": "XXX"}],"title": "测试2","type": "graph"}]},"overwrite": true}'

filter对于所采集到的数据做过滤使用。

猜你喜欢

转载自blog.csdn.net/weixin_40006394/article/details/84790844