Dashboard-API - Amazon Managed Grafana

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Dashboard-API

Verwenden Sie die Dashboard-API, um Dashboards im Amazon Managed Grafana-Arbeitsbereich zu erstellen, zu aktualisieren, zu löschen und mit ihnen zu arbeiten.

Die Kennung (ID) eines Dashboards ist ein automatisch inkrementierender numerischer Wert und ist nur pro Workspace eindeutig. Die eindeutige Kennung (UID) eines Dashboards kann verwendet werden, um ein Dashboard zwischen mehreren Amazon Managed Grafana-Workspaces eindeutig zu identifizieren. Sie wird automatisch generiert, wenn Sie bei der Erstellung eines Dashboards keine angeben. Die UID ermöglicht konsistente URLs für den Zugriff auf Dashboards und die Synchronisierung von Dashboards zwischen mehreren Arbeitsbereichen. Die Verwendung der UID bedeutet, dass beim Ändern des Titels eines Dashboards keine mit einem Lesezeichen versehenen Links zu diesem Dashboard beschädigt werden.

Die UID kann eine maximale Länge von 40 Zeichen haben.

Anmerkung

Um eine Grafana-API mit Ihrem Amazon Managed Grafana-Workspace verwenden zu können, benötigen Sie ein gültiges Grafana-API-Token. Sie fügen dies in das Authorization Feld in der API-Anfrage ein. Informationen zum Erstellen eines Tokens zur Authentifizierung Ihrer API-Aufrufe finden Sie unterAuthentifizieren Sie sich mit Tokens.

Dashboard erstellen/aktualisieren

POST /api/dashboards/db

Erstellt ein neues Dashboard oder aktualisiert ein vorhandenes Dashboard.

Beispiel für eine Anfrage zum Erstellen eines neuen Dashboards

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 }

JSON-Textschema:

  • Dashboard — Das komplette Dashboard-Modell. Verwenden Sie null, um ein neues Dashboard zu erstellen.

  • dashboard.id — Verwenden Sie null, um ein neues Dashboard zu erstellen.

  • dashboard.uid — Optionaler eindeutiger Bezeichner, wenn Sie diesen verwenden, um ein neues Dashboard zu erstellen. Bei Null wird eine neue UID generiert.

  • folderid — Die ID des Ordners, in dem das Dashboard gespeichert werden soll.

  • folderUID — Die UID des Ordners, in dem das Dashboard gespeichert werden soll. Überschreibt den Wert von folderid

  • Überschreiben — Geben Sie true an, ob ein vorhandenes Dashboard mit einer neueren Version, demselben Dashboard-Titel im Ordner oder derselben Dashboard-UID überschrieben werden soll.

  • Nachricht — Lege eine Commit-Nachricht für den Versionsverlauf fest.

  • aktualisieren — Legen Sie das Aktualisierungsintervall für das Dashboard fest. Wenn dieses unter dem minimalen Aktualisierungsintervall liegt, wird es ignoriert und das minimale Aktualisierungsintervall verwendet.

Um eine Warnungsregel für ein Dashboard-Panel hinzuzufügen oder zu aktualisieren, deklarieren Sie einen dashboard.panels.alert Block.

Beispiel für eine Anfrage zur Aktualisierung einer Dashboard-Warnungsregel

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

Beispielantwort

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 }

Statuscodes:

  • 200 — Erstellt

  • 400 — Fehler wie ungültiges JSON, ungültige oder fehlende Felder

  • 401 — Nicht autorisiert

  • 403 — Zugriff verweigert

  • 412 — Die Vorbedingung ist fehlgeschlagen

Der 412-Statuscode wird verwendet, um zu erklären, warum das Dashboard nicht erstellt werden kann.

  • Das Dashboard wurde von einer anderen Person geändert status=version-mismatch

  • Ein Dashboard mit demselben Namen im Ordner ist bereits vorhanden status=name-exists

  • Ein Dashboard mit derselben UID ist bereits vorhanden status=name-exists

  • Das Dashboard gehört zum Plugin plugin title status=plugin-dashboard

Der Antworttext hat die folgenden Eigenschaften. Wenn ein anderes Dashboard denselben Titel hat, lautet der status Wertname-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" }

Ruft das Dashboard nach UID ab

GET /api/dashboards/uid/:uid

Gibt das Dashboard zurück, das der UID entspricht. Die zurückgegebenen Metadaten können Informationen über die UID des Ordners enthalten, der das Dashboard enthält.

Beispielanforderung

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

Beispielantwort

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

Statuscodes:

  • 200 — Gefunden

  • 401 — Nicht autorisiert

  • 403 — Zugriff verweigert

  • 404 — Nicht gefunden

Löschen Sie das Dashboard nach UID

DELETE /api/dashboards/uid/:uid

Löscht das Dashboard, das der UID entspricht.

Beispielanforderung

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

Beispielantwort

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

Statuscodes:

  • 200 — Gelöscht

  • 401 — Nicht autorisiert

  • 403 — Zugriff verweigert

  • 404 — Nicht gefunden

Ruft das Home-Dashboard ab

GET /api/dashboards/home

Gibt das Home-Dashboard zurück.

Beispielanforderung

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

Beispielantwort

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

Ruft Dashboard-Tags ab

GET /api/dashboards/tags

Gibt alle Tags von Dashboards zurück.

Beispielanforderung

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

Beispielantwort

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