View a markdown version of this page

API de origen de datos - Amazon Managed Grafana

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_series o table en 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"}