API do painel - Amazon Managed Grafana

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

API do painel

Use a API do painel para criar, atualizar, excluir e trabalhar com painéis no espaço de trabalho Amazon Managed Grafana.

O identificador (id) de um painel é um valor numérico com incremento automático e só é exclusivo por espaço de trabalho. O identificador exclusivo (uid) de um painel pode ser usado para identificar de forma exclusiva um painel entre vários espaços de trabalho Amazon Managed Grafana. Ele é gerado automaticamente se você não fornecer um ao criar um painel. O uid permite ter URLs consistentes para acessar painéis e sincronizar painéis entre vários espaços de trabalho. O uso do uid significa que alterar o título de um painel não quebra nenhum link marcado para esse painel.

O uid pode ter um tamanho máximo de 40 caracteres.

nota

Para usar uma API Grafana com seu espaço de trabalho Amazon Managed Grafana, você deve ter uma chave de API Grafana válida. Você inclui essa chave noAuthorization campo da solicitação da API. Para obter informações sobre como criar uma chave de API do Grafana, consulteUsando APIs HTTP do Grafana.

Criar/atualizar o painel

POST /api/dashboards/db

Cria um novo painel ou atualiza um painel existente.

Exemplo de solicitação para criar um novo painel

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 corporal JSON:

  • painel de controle — O modelo completo de painel. Use null para criar um novo painel.

  • dashboard.id — Use null para criar um novo painel.

  • dashboard.uid — Identificador exclusivo opcional quando você o usa para criar um novo painel. Se nulo, um novo uid é gerado.

  • folderid — O id da pasta na qual salvar o painel.

  • FoldeRUID — O Uid da pasta na qual salvar o painel. Substitui o valor defolderid

  • substituir — especifiquetrue a substituição de um painel existente por uma versão mais recente, mesmo título de painel na pasta ou mesmo uid do painel.

  • mensagem — Defina uma mensagem de confirmação para o histórico da versão.

  • atualizar — Defina o intervalo de atualização do painel. Se for menor que o intervalo mínimo de atualização, ele será ignorado e o intervalo mínimo de atualização será usado.

Para adicionar ou atualizar uma regra de alerta para um painel de painel, declare umdashboard.panels.alert bloqueio.

Exemplo de solicitação para atualizar uma regra de alerta do painel

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

Exemplo de resposta

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 }

HTTP Status Codes

  • 200 — Criado

  • 400 — Erro como JSON inválido, campos inválidos ou ausentes

  • 401 — Não autorizado

  • 403 — Acesso negado

  • 412 — Falha na pré-condição

O código de status 412 é usado para explicar por que o painel não pode ser criado.

  • O painel foi alterado por outra pessoastatus=version-mismatch

  • Já existe um painel com o mesmo nome na pastastatus=name-exists

  • Já existe um painel com o mesmo uidstatus=name-exists

  • O painel pertence ao pluginplugin titlestatus=plugin-dashboard

O corpo de resposta tem as seguintes propriedades. Se outro painel tiver o mesmo título, ostatus valor será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" }

Obter painel por uid

GET /api/dashboards/uid/:uid

Retorna o painel correspondente ao uid. Os metadados retornados podem conter informações sobre o UID da pasta que contém o painel.

Exemplo de solicitação

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

Exemplo de resposta

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

HTTP Status Codes

  • 200 — Encontrado

  • 401 — Não autorizado

  • 403 — Acesso negado

  • 404 — Não encontrado

Excluir painel por uid

DELETE /api/dashboards/uid/:uid

Exclui o painel correspondente ao uid.

Exemplo de solicitação

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

Exemplo de resposta

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

HTTP Status Codes

  • 200 — Excluído

  • 401 — Não autorizado

  • 403 — Acesso negado

  • 404 — Não encontrado

Obtém o painel inicial

GET /api/dashboards/home

Retorna o painel inicial.

Exemplo de solicitação

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

Exemplo de resposta

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

Obter tags de painel

GET /api/dashboards/tags

Retorna todas as tags dos painéis.

Exemplo de solicitação

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

Exemplo de resposta

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