API du tableau de bord - Amazon Managed Grafana

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

API du tableau de bord

Utilisez l'API Dashboard pour créer, mettre à jour, supprimer et utiliser des tableaux de bord dans l'espace de travail Amazon Managed Grafana.

L'identifiant (id) d'un tableau de bord est une valeur numérique à incrémentation automatique qui n'est unique que par espace de travail. L'identifiant unique (uid) d'un tableau de bord peut être utilisé pour identifier de manière unique un tableau de bord entre plusieurs espaces de travail Amazon Managed Grafana. Il est généré automatiquement si vous n'en fournissez pas lors de la création d'un tableau de bord. L'uid permet d'avoir des URL cohérentes pour accéder aux tableaux de bord et lors de la synchronisation des tableaux de bord entre plusieurs espaces de travail. L'utilisation de l'UID signifie que la modification du titre d'un tableau de bord ne rompt aucun lien mis en signet vers ce tableau de bord.

L'UID peut avoir une longueur maximale de 40 caractères.

Note

Pour utiliser une API Grafana avec votre espace de travail Amazon Managed Grafana, vous devez disposer d'un jeton d'API Grafana valide. Vous l'incluez dans le Authorization champ de la demande d'API. Pour plus d'informations sur la création d'un jeton pour authentifier vos appels d'API, consultezAuthentifiez-vous avec des jetons.

Créer/mettre à jour le tableau de bord

POST /api/dashboards/db

Crée un nouveau tableau de bord ou met à jour un tableau de bord existant.

Exemple de demande pour créer un nouveau tableau de bord

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 }

Schéma de corps JSON :

  • tableau de bord — Le modèle de tableau de bord complet. Utilisez null pour créer un nouveau tableau de bord.

  • dashboard.id — Utilisez null pour créer un nouveau tableau de bord.

  • dashboard.uid — Identifiant unique facultatif lorsque vous l'utilisez pour créer un nouveau tableau de bord. Si la valeur est nulle, un nouvel UID est généré.

  • folderid — L'identifiant du dossier dans lequel enregistrer le tableau de bord.

  • FolderUID — L'UID du dossier dans lequel enregistrer le tableau de bord. Remplace la valeur de folderid

  • remplacer — Spécifiez le remplacement true d'un tableau de bord existant par une version plus récente, le même titre de tableau de bord dans le dossier ou le même identifiant de tableau de bord.

  • message — Définissez un message de validation pour l'historique des versions.

  • rafraîchir — Définissez l'intervalle d'actualisation du tableau de bord. S'il est inférieur à l'intervalle de rafraîchissement minimum, il est ignoré et l'intervalle de rafraîchissement minimum est utilisé.

Pour ajouter ou mettre à jour une règle d'alerte pour un panneau de tableau de bord, déclarez un dashboard.panels.alert bloc.

Exemple de demande de mise à jour d'une règle d'alerte de tableau de bord

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 } }

Exemple de réponse

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 }

Codes de statut :

  • 200 — Créé

  • 400 — Erreur telle qu'un JSON non valide, des champs non valides ou manquants

  • 401 — Non autorisé

  • 403 — Accès refusé

  • 412 — Échec de la précondition

Le code d'état 412 est utilisé pour expliquer pourquoi le tableau de bord ne peut pas être créé.

  • Le tableau de bord a été modifié par quelqu'un d'autre status=version-mismatch

  • Un tableau de bord portant le même nom existe déjà dans le dossier status=name-exists

  • Un tableau de bord avec le même UID existe déjà status=name-exists

  • Le tableau de bord appartient au plugin plugin title status=plugin-dashboard

Le corps de la réponse possède les propriétés suivantes. Si un autre tableau de bord porte le même titre, la status valeur estname-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" }

Obtenir le tableau de bord par UID

GET /api/dashboards/uid/:uid

Renvoie le tableau de bord correspondant à l'UID. Les métadonnées renvoyées peuvent contenir des informations sur l'UID du dossier contenant le tableau de bord.

Exemple de demande

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

Exemple de réponse

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 } }

Codes de statut :

  • 200 — Trouvé

  • 401 — Non autorisé

  • 403 — Accès refusé

  • 404 — Non trouvé

Supprimer le tableau de bord par UID

DELETE /api/dashboards/uid/:uid

Supprime le tableau de bord correspondant à l'UID.

Exemple de demande

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

Exemple de réponse

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

Codes de statut :

  • 200 — Supprimé

  • 401 — Non autorisé

  • 403 — Accès refusé

  • 404 — Non trouvé

Permet d'accéder au tableau de bord d'accueil

GET /api/dashboards/home

Renvoie le tableau de bord d'accueil.

Exemple de demande

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

Exemple de réponse

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" } }

Obtenir les balises du tableau de bord

GET /api/dashboards/tags

Renvoie toutes les balises des tableaux de bord.

Exemple de demande

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

Exemple de réponse

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