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 Dashboard 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 de incremento automático e é exclusivo somente 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 do 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 no máximo 40 caracteres.

nota

Para usar uma API do Grafana com seu espaço de trabalho do Amazon Managed Grafana, você deve ter um token válido da API Grafana. Você inclui isso no Authorization campo na solicitação da API. Para obter informações sobre como criar um token para autenticar suas chamadas de API, consulteAutenticar com tokens.

Criar/atualizar 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 — O modelo completo do painel de controle. 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 for nulo, um novo uid será gerado.

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

  • folderUID — O Uid da pasta na qual salvar o painel. Substitui o valor de folderid

  • substituir — Especifique true a substituição de um painel existente por uma versão mais recente, o mesmo título do painel na pasta ou o 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 controle, declare um dashboard.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 }

Códigos de status:

  • 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 pessoa status=version-mismatch

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

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

  • O painel pertence ao plugin plugin title status=plugin-dashboard

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

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

Códigos de status:

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

Códigos de status:

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

Obtenha as tags do 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 } ]