View a markdown version of this page

API di origine dati - Grafana gestito da Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

API di origine dati

Usa l'API Data Source per creare, aggiornare, eliminare e lavorare con sorgenti di dati nell'area di lavoro Amazon Managed Grafana.

Nota

Per utilizzare un'API Grafana con il tuo spazio di lavoro Amazon Managed Grafana, devi disporre di un token di account di servizio valido. Lo includi nel Authorization campo della richiesta API.

Ottieni tutte le fonti di dati

GET /api/datasources

Richiesta di esempio

GET /api/datasources HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Esempio di risposta

HTTP/1.1 200 Content-Type: application/json [ { "id": 1, "orgId": 1, "uid": "H8joYFVGz" "name": "datasource_elastic", "type": "elasticsearch", "typeLogoUrl": "public/app/plugins/datasource/elasticsearch/img/elasticsearch.svg", "access": "proxy", "url": "http://mydatasource.com", "password": "", "user": "", "database": "grafana-dash", "basicAuth": false, "isDefault": false, "jsonData": { "esVersion": 5, "logLevelField": "", "logMessageField": "", "maxConcurrentShardRequests": 256, "timeField": "@timestamp" }, "readOnly": false } ]

Ottieni un'unica fonte di dati tramite UID

GET /api/datasources/uid/:uid

Richiesta di esempio

GET /api/datasources/uid/kLtEtcRGk HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Esempio di risposta

HTTP/1.1 200 Content-Type: application/json { "id": 1, "uid": "kLtEtcRGk", "orgId": 1, "name": "test_datasource", "type": "graphite", "typeLogoUrl": "", "access": "proxy", "url": "http://mydatasource.com", "password": "", "user": "", "database": "", "basicAuth": false, "basicAuthUser": "", "basicAuthPassword": "", "withCredentials": false, "isDefault": false, "jsonData": { "graphiteType": "default", "graphiteVersion": "1.1" }, "secureJsonFields": {}, "version": 1, "readOnly": false }

Ottieni un'unica fonte di dati per nome

GET /api/datasources/name/:name

Richiesta di esempio

GET /api/datasources/name/test_datasource HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Esempio di risposta

HTTP/1.1 200 Content-Type: application/json { "id": 1, "uid": "kLtEtcRGk", "orgId": 1, "name": "test_datasource", "type": "graphite", "typeLogoUrl": "", "access": "proxy", "url": "http://mydatasource.com", "password": "", "user": "", "database": "", "basicAuth": false, "basicAuthUser": "", "basicAuthPassword": "", "withCredentials": false, "isDefault": false, "jsonData": { "graphiteType": "default", "graphiteVersion": "1.1" }, "secureJsonFields": {}, "version": 1, "readOnly": false }

Ottieni l'ID della fonte di dati per nome

GET /api/datasources/id/:name

Richiesta di esempio

GET /api/datasources/id/test_datasource HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Esempio di risposta

HTTP/1.1 200 Content-Type: application/json { "id":1 }

Creazione di un'origine dati

POST /api/datasources

Esempio di richiesta Graphite

POST /api/datasources HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "name":"test_datasource", "type":"graphite", "url":"http://mydatasource.com", "access":"proxy", "basicAuth":false }

Esempio di risposta Graphite

HTTP/1.1 200 Content-Type: application/json { "datasource": { "id": 1, "orgId": 1, "name": "test_datasource", "type": "graphite", "typeLogoUrl": "", "access": "proxy", "url": "http://mydatasource.com", "password": "", "user": "", "database": "", "basicAuth": false, "basicAuthUser": "", "basicAuthPassword": "", "withCredentials": false, "isDefault": false, "jsonData": {}, "secureJsonFields": {}, "version": 1, "readOnly": false }, "id": 1, "message": "Datasource added", "name": "test_datasource" }
Nota

Quando li definisci password e basicAuthPassword all'internosecureJsonData, Amazon Managed Grafana li crittografa in modo sicuro come blob crittografati nel database. La risposta elenca quindi i campi crittografati in. secureJsonFields

Esempio di richiesta Graphite con autenticazione di base abilitata

POST /api/datasources HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "name": "test_datasource", "type": "graphite", "url": "http://mydatasource.com", "access": "proxy", "basicAuth": true, "basicAuthUser": "basicuser", "secureJsonData": { "basicAuthPassword": "basicpassword" } }

Esempio di risposta con autenticazione di base abilitata

HTTP/1.1 200 Content-Type: application/json { "datasource": { "id": 1, "orgId": 1, "name": "test_datasource", "type": "graphite", "typeLogoUrl": "", "access": "proxy", "url": "http://mydatasource.com", "password": "", "user": "", "database": "", "basicAuth": true, "basicAuthUser": "basicuser", "basicAuthPassword": "", "withCredentials": false, "isDefault": false, "jsonData": {}, "secureJsonFields": { "basicAuthPassword": true }, "version": 1, "readOnly": false }, "id": 102, "message": "Datasource added", "name": "test_datasource" }

Richiesta di esempio CloudWatch

POST /api/datasources HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "name": "test_datasource", "type": "cloudwatch", "url": "http://monitoring.us-west-1.amazonaws.com", "access": "proxy", "jsonData": { "authType": "keys", "defaultRegion": "us-west-1" }, "secureJsonData": { "accessKey": "Ol4pIDpeKSA6XikgOl4p", "secretKey": "dGVzdCBrZXkgYmxlYXNlIGRvbid0IHN0ZWFs" } }

Aggiorna una fonte di dati tramite UID

PUT /api/datasources/uid/:uid

Aggiorna l'origine dati corrispondente all'UID specificato.

Richiesta di esempio

PUT /api/datasources/uid/kLtEtcRGk HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "name": "test_datasource", "type": "graphite", "url": "http://mydatasource.com", "access": "proxy", "basicAuth": false, "isDefault": false }

Esempio di risposta

HTTP/1.1 200 Content-Type: application/json { "datasource": { "id": 1, "uid": "kLtEtcRGk", "orgId": 1, "name": "test_datasource", "type": "graphite", "access": "proxy", "url": "http://mydatasource.com", "basicAuth": false, "isDefault": false }, "name": "test_datasource" }

Elimina la fonte di dati tramite UID

DELETE /api/datasources/uid/:uid

Richiesta di esempio

DELETE /api/datasources/uid/kLtEtcRGk HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Esempio di risposta

HTTP/1.1 200 Content-Type: application/json {"message":"Data source deleted"}

Elimina l'origine dati per nome

DELETE /api/datasources/name/:datasourceName

Richiesta di esempio

DELETE /api/datasources/name/test_datasource HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Esempio di risposta

HTTP/1.1 200 Content-Type: application/json { "message":"Data source deleted", "id": 1 }

Chiamate proxy alla fonte di dati

GET /api/datasources/proxy/:datasourceId/*

Invia tramite proxy tutte le chiamate alla fonte di dati effettiva.

Interroga le fonti di dati

POST /api/ds/query

Interroga una fonte di dati con un'implementazione di backend. La maggior parte delle fonti di dati integrate dispone di un'implementazione di backend.

Richiesta di esempio

POST /api/ds/query HTTP/1.1 Accept: application/json Content-Type: application/json { "queries":[ { "refId":"A", "scenarioId":"csv_metric_values", "datasource":{ "uid":"PD8C576611E62080A" }, "format": "table", "maxDataPoints":1848, "intervalMs":200, "stringInput":"1,20,90,30,5,0" } ], "from":"now-5m", "to":"now" }

Schema del corpo JSON:

  • from/to— specifica l'intervallo di tempo per le interrogazioni. L'ora può essere sia temporale in millisecondi che relativa utilizzando le unità di tempo Grafana. Ad esempio, now-5m.

  • interrogazioni: specifica una o più interrogazioni. Deve contenere almeno 1.

  • queries.datasource.uid: specifica l'UID dell'origine dati da interrogare. Ogni query nella richiesta deve datasource avere un nome univoco.

  • Queries.REFID — Speciifica un identificatore della query. Il valore predefinito è «A».

  • queries.format: specifica il formato in cui devono essere restituiti i dati. Le opzioni valide sono time_series o table dipendono dall'origine dati.

  • queries.max DataPoints — Specificate la quantità massima di punti dati che un pannello del dashboard può renderizzare. Il valore predefinito è 100.

  • Queries.intervalMS: specifica l'intervallo temporale della serie temporale in millisecondi. Il valore predefinito è 1000.

Inoltre, è necessario aggiungere proprietà specifiche di ciascuna fonte di dati in una richiesta (ad esempio Queries.StringInput, come mostrato nella richiesta precedente). Per comprendere meglio come creare una query per una determinata fonte di dati, utilizza gli Strumenti per sviluppatori nel browser che preferisci e controlla le richieste HTTP a cui vengono inviate. /api/ds/query

Esempio di risposta a una query con serie temporali sull'origine dei dati di test

HTTP/1.1 200 Content-Type: application/json { "results": { "A": { "frames": [ { "schema": { "refId": "A", "fields": [ { "name": "time", "type": "time", "typeInfo": { "frame": "time.Time" } }, { "name": "A-series", "type": "number", "typeInfo": { "frame": "int64", "nullable": true } } ] }, "data": { "values": [ [1644488152084, 1644488212084, 1644488272084, 1644488332084, 1644488392084, 1644488452084], [1, 20, 90, 30, 5, 0] ] } } ] } } }

Aggiorna un'origine dati esistente (obsoleta)

Importante

Questo endpoint è obsoleto. Usare invece Aggiorna una fonte di dati tramite UID.

PUT /api/datasources/:datasourceId

Richiesta di esempio

PUT /api/datasources/1 HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "id":1, "orgId":1, "name":"test_datasource", "type":"graphite", "access":"proxy", "url":"http://mydatasource.com", "password":"", "user":"", "database":"", "basicAuth":true, "basicAuthUser":"basicuser", "secureJsonData": { "basicAuthPassword": "basicpassword" }, "isDefault":false, "jsonData":null }

Esempio di risposta

HTTP/1.1 200 Content-Type: application/json { "datasource": { "id": 1, "orgId": 1, "name": "test_datasource", "type": "graphite", "typeLogoUrl": "", "access": "proxy", "url": "http://mydatasource.com", "password": "", "user": "", "database": "", "basicAuth": true, "basicAuthUser": "basicuser", "basicAuthPassword": "", "withCredentials": false, "isDefault": false, "jsonData": {}, "secureJsonFields": { "basicAuthPassword": true }, "version": 1, "readOnly": false }, "id": 102, "message": "Datasource updated", "name": "test_datasource" }
Nota

Si consiglia di definirli password e inserirli basicAuthPassword all'interno secureJsonData in modo che vengano archiviati in modo sicuro come blob crittografati nel database. La risposta elenca quindi i campi crittografati in. secureJsonFields

Ottieni un'unica fonte di dati per Id (obsoleta)

Importante

Questo endpoint è obsoleto. Usare invece Ottieni un'unica fonte di dati tramite UID.

GET /api/datasources/:datasourceId

Richiesta di esempio

GET /api/datasources/1 HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Esempio di risposta

HTTP/1.1 200 Content-Type: application/json { "id": 1, "uid": "kLtEtcRGk", "orgId": 1, "name": "test_datasource", "type": "graphite", "typeLogoUrl": "", "access": "proxy", "url": "http://mydatasource.com", "password": "", "user": "", "database": "", "basicAuth": false, "basicAuthUser": "", "basicAuthPassword": "", "withCredentials": false, "isDefault": false, "jsonData": { "graphiteType": "default", "graphiteVersion": "1.1" }, "secureJsonFields": {}, "version": 1, "readOnly": false }

Elimina la fonte di dati in base all'ID (obsoleto)

Importante

Questo endpoint è obsoleto. Usare invece Elimina la fonte di dati tramite UID.

DELETE /api/datasources/:datasourceId

Richiesta di esempio

DELETE /api/datasources/1 HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Esempio di risposta

HTTP/1.1 200 Content-Type: application/json {"message":"Data source deleted"}