Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
API de origen de datos
Use la API de origen de datos para crear, actualizar y eliminar orígenes de datos, y trabajar con ellos, en el espacio de trabajo de Amazon Managed Grafana.
nota
Para usar una API de Grafana con tu espacio de trabajo de Grafana gestionado por Amazon, debes tener un token de cuenta de servicio válido. Lo incluye en el campo Authorization de la solicitud de API.
Obtención de todos los orígenes de datos
GET /api/datasources
Ejemplo de solicitud
GET /api/datasources HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
Ejemplo de respuesta
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 } ]
Obtención de un único origen de datos por UID
GET /api/datasources/uid/:uid
Ejemplo de solicitud
GET /api/datasources/uid/kLtEtcRGk HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
Ejemplo de respuesta
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 }
Obtención de un único origen de datos por nombre
GET /api/datasources/name/:name
Ejemplo de solicitud
GET /api/datasources/name/test_datasource HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
Ejemplo de respuesta
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 }
Obtención del ID de un origen de datos por nombre
GET /api/datasources/id/:name
Ejemplo de solicitud
GET /api/datasources/id/test_datasource HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
Ejemplo de respuesta
HTTP/1.1 200 Content-Type: application/json { "id":1 }
Creación de un origen de datos
POST /api/datasources
Ejemplo de solicitud de 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 }
Ejemplo de respuesta de 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
Cuando define password y basicAuthPassword en secureJsonData, Amazon Managed Grafana los cifra de forma segura como un blob cifrado en la base de datos. A continuación, en la respuesta se muestran los campos cifrados en secureJsonFields.
Ejemplo de solicitud de Graphite con la autenticación básica habilitada
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" } }
Ejemplo de respuesta con la autenticación básica habilitada
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" }
Ejemplo de solicitud 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" } }
Actualizar una fuente de datos mediante UID
PUT /api/datasources/uid/:uid
Actualiza la fuente de datos que coincide con el UID indicado.
Ejemplo de solicitud
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 }
Ejemplo de respuesta
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" }
Eliminación de un origen de datos por UID
DELETE /api/datasources/uid/:uid
Ejemplo de solicitud
DELETE /api/datasources/uid/kLtEtcRGk HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
Ejemplo de respuesta
HTTP/1.1 200 Content-Type: application/json {"message":"Data source deleted"}
Eliminación de un origen de datos por nombre
DELETE /api/datasources/name/:datasourceName
Ejemplo de solicitud
DELETE /api/datasources/name/test_datasource HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
Ejemplo de respuesta
HTTP/1.1 200 Content-Type: application/json { "message":"Data source deleted", "id": 1 }
Llamadas de proxy de origen de datos
GET /api/datasources/proxy/:datasourceId/*
Redirige mediante proxy todas las llamadas al origen de datos real.
Consulta del origen de datos
POST /api/ds/query
Consulte un origen de datos que tenga una implementación de backend. La mayoría de los orígenes de datos integrados tienen implementación de backend.
Ejemplo de solicitud
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" }
Esquema de cuerpo JSON:
from/to— Especifica el intervalo de tiempo para las consultas. El tiempo puede calcularse mediante marcas de tiempo de época en milisegundos o puede ser relativo si se calcula por medio de unidades de tiempo de Grafana. Por ejemplo,
now-5m.consultas: especifica una o más consultas. Debe incluir al menos 1.
queries.datasource.uid: especifica el UID de origen de datos que se va a consultar. Cada consulta de la solicitud debe tener un único
datasource.queries.refId: especifica un identificador para la consulta. El valor predeterminado es «A».
queries.format: especifica el formato en el que se deben devolver los datos. Las opciones válidas son
time_seriesotableen función del origen de datos.queries.max DataPoints: especifica la cantidad máxima de puntos de datos que puede representar un panel de control. El valor predeterminado es 100.
queries.intervalMs: especifica el intervalo de tiempo en milisegundos de la serie temporal. El valor predeterminado es 1000.
Además, se deben agregar propiedades específicas de cada origen de datos en una solicitud (por ejemplo, queries.stringInput, como se muestra en la solicitud anterior). Para entender mejor cómo crear una consulta para un origen de datos determinada, use las herramientas para desarrolladores del navegador que prefiera e inspeccione las solicitudes HTTP que se realizan para /api/ds/query.
Ejemplo de prueba de una respuesta a una consulta de series temporales de un origen de datos
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] ] } } ] } } }
Actualizar una fuente de datos existente (obsoleta)
importante
Este punto final está obsoleto. En su lugar, use Actualizar una fuente de datos mediante UID.
PUT /api/datasources/:datasourceId
Ejemplo de solicitud
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 }
Ejemplo de respuesta
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
Recomendamos definir password y basicAuthPassword en secureJsonData para que se almacenen de forma segura como un blob cifrado en la base de datos. A continuación, en la respuesta se muestran los campos cifrados en secureJsonFields.
Obtenga una única fuente de datos por identificador (obsoleto)
importante
Este punto final está obsoleto. En su lugar, use Obtención de un único origen de datos por UID.
GET /api/datasources/:datasourceId
Ejemplo de solicitud
GET /api/datasources/1 HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
Ejemplo de respuesta
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 }
Eliminar la fuente de datos por identificador (obsoleto)
importante
Este punto final está obsoleto. En su lugar, use Eliminación de un origen de datos por UID.
DELETE /api/datasources/:datasourceId
Ejemplo de solicitud
DELETE /api/datasources/1 HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
Ejemplo de respuesta
HTTP/1.1 200 Content-Type: application/json {"message":"Data source deleted"}