API de paneles - 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 paneles

Use la API de paneles para crear, actualizar y eliminar paneles, y trabajar con ellos, en el espacio de trabajo de Amazon Managed Grafana.

El identificador (id) de un panel es un valor numérico que se incrementa automáticamente y solo es único por espacio de trabajo. El identificador único (uid) de un panel se puede utilizar para identificar de forma única un panel entre varios espacios de trabajo de Amazon Managed Grafana. Se genera automáticamente si no lo proporciona al crear un panel. El uid permite disponer de URL coherentes para acceder a los paneles y al sincronizarlos entre varios espacios de trabajo. El uso del uid significa que al cambiar el título de un panel no se interrumpe ningún enlace marcado a ese panel.

El uid puede tener una longitud máxima de 40 caracteres.

nota

Para usar una API de Grafana con su espacio de trabajo de Amazon Managed Grafana, debe tener un token de API de Grafana que sea válido. Lo incluye en el campo Authorization de la solicitud de API. Para obtener información sobre cómo crear un token para autenticar sus llamadas a la API, consulte Autenticación con tokens.

Creación o actualización de un panel

POST /api/dashboards/db

Crea un panel nuevo o actualiza uno existente.

Ejemplo de solicitud para crear un panel nuevo

POST /api/dashboards/db HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "dashboard": { "id": null, "uid": null, "title": "Production Overview", "tags": [ "templated" ], "timezone": "browser", "schemaVersion": 16, "version": 0, "refresh": "25s" }, "folderId": 0, "folderUid": "l3KqBxCMz", "message": "Made changes to xyz", "overwrite": false }

Esquema de cuerpo JSON:

  • dashboard: modelo de panel completo. Utilice el valor “null” para crear un nuevo panel.

  • dashboard.id: utilice el valor “null” para crear un nuevo panel.

  • dashboard.uid: identificador único opcional cuando lo usa para crear un panel nuevo. Si su valor es “null”, se genera un nuevo uid.

  • folderid: id de la carpeta en la que se va a guardar el panel.

  • folderid: uid de la carpeta en la que se va a guardar el panel. Anula el valor de folderid

  • overwrite: especifique true si desea sobrescribir un panel existente con una versión más reciente, el mismo título del panel en la carpeta o el mismo uid del panel.

  • message: establece un mensaje de confirmación para el historial de versiones.

  • refresh: establece el intervalo de actualización del panel. Si es inferior al intervalo de actualización mínimo, se ignora y se utiliza el intervalo de actualización mínimo.

Si quiere agregar o actualizar una regla de alerta para un panel, declare un bloque dashboard.panels.alert.

Ejemplo de solicitud para actualizar una regla de alerta del panel

HTTP/1.1 200 OK Content-Type: application/json; charset=UTF-8 Content-Length: 78 { "dashboard": { "id": 104, "panels": [ { "alert": { "alertRuleTags": {}, "conditions": [ { "evaluator": { "params": [ 25 ], "type": "gt" }, "operator": { "type": "and" }, "query": { "params": [ "A", "5m", "now" ] }, "reducer": { "params": [], "type": "avg" }, "type": "query" } ], "executionErrorState": "alerting", "for": "5m", "frequency": "1m", "handler": 1, "name": "Panel Title alert", "noDataState": "no_data", "notifications": [] }, "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": null, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 0 }, "hiddenSeries": false, "id": 2, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "nullPointMode": "null", "options": { "dataLinks": [] }, "percentage": false, "pointradius": 2, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "refId": "A", "scenarioId": "random_walk" } ], "thresholds": [ { "colorMode": "critical", "fill": true, "line": true, "op": "gt", "value": 50 } ], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Panel Title", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } } ], "title": "Update alert rule via API", "uid": "dHEquNzGz", "version": 1 } }

Ejemplo de respuesta

HTTP/1.1 200 OK Content-Type: application/json; charset=UTF-8 Content-Length: 78 { "id": 1, "uid": "cIBgcSjkk", "url": "/d/cIBgcSjkk/production-overview", "status": "success", "version": 1, "slug": "production-overview" //deprecated in Grafana v5.0 }

Códigos de estado:

  • 200: creado.

  • 400: error (como JSON no válido, campos no válidos o campos faltantes).

  • 401: no autorizado.

  • 403: acceso denegado.

  • 412: error en la condición previa.

El código de estado 412 se usa para explicar por qué no se puede crear el panel.

  • Otra persona ha cambiado el panel status=version-mismatch

  • Ya existe un panel con el mismo nombre en la carpeta status=name-exists

  • Ya existe un panel con el mismo uid status=name-exists

  • El panel pertenece al complemento plugin title status=plugin-dashboard

El cuerpo de la respuesta tiene las siguientes propiedades. Si otro panel tiene el mismo título, el valor de status es name-exists.

HTTP/1.1 412 Precondition Failed Content-Type: application/json; charset=UTF-8 Content-Length: 97 { "message": "The dashboard has been changed by someone else", "status": "version-mismatch" }

Obtención de un panel por uid

GET /api/dashboards/uid/:uid

Devuelve el panel que coincide con el uid. Los metadatos devueltos pueden contener información sobre el UID de la carpeta que contiene el panel.

Ejemplo de solicitud

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

Ejemplo de respuesta

HTTP/1.1 200 Content-Type: application/json { "dashboard": { "id": 1, "uid": "cIBgcSjkk", "title": "Production Overview", "tags": [ "templated" ], "timezone": "browser", "schemaVersion": 16, "version": 0 }, "meta": { "isStarred": false, "url": "/d/cIBgcSjkk/production-overview", "folderId": 2, "folderUid": "l3KqBxCMz", "slug": "production-overview" //deprecated in Grafana v5.0 } }

Códigos de estado:

  • 200: encontrado.

  • 401: no autorizado.

  • 403: acceso denegado.

  • 404: no encontrado.

Eliminación de un panel por uid

DELETE /api/dashboards/uid/:uid

Elimina el panel que coincide con el uid.

Ejemplo de solicitud

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

Ejemplo de respuesta

HTTP/1.1 200 Content-Type: application/json { "title": "Production Overview", "message": "Dashboard Production Overview deleted", "id": 2 }

Códigos de estado:

  • 200: eliminado.

  • 401: no autorizado.

  • 403: acceso denegado.

  • 404: no encontrado.

Obtención del panel de inicio

GET /api/dashboards/home

Devuelve el panel de inicio.

Ejemplo de solicitud

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

Ejemplo de respuesta

HTTP/1.1 200 Content-Type: application/json { "dashboard": { "editable":false, "hideControls":true, "nav":[ { "enable":false, "type":"timepicker" } ], "style":"dark", "tags":[], "templating":{ "list":[ ] }, "time":{ }, "timezone":"browser", "title":"Home", "version":5 }, "meta": { "isHome":true, "canSave":false, "canEdit":false, "canStar":false, "url":"", "expires":"0001-01-01T00:00:00Z", "created":"0001-01-01T00:00:00Z" } }

Obtención de etiquetas del panel

GET /api/dashboards/tags

Devuelve todas las etiquetas de los paneles.

Ejemplo de solicitud

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

Ejemplo de respuesta

HTTP/1.1 200 Content-Type: application/json [ { "term":"tag1", "count":1 }, { "term":"tag2", "count":4 } ]