API de 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 de 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 de 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 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 Grafana com seu espaço de trabalho Amazon Managed Grafana, você deve ter uma chave de API Grafana válida. Você inclui essa chave naAuthorizationcampo na solicitação da API. Para obter informações sobre como criar uma chave de API Grafana, consulteUsando APIs HTTP do Grafana.

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 de controle— O modelo completo do 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 será gerado.

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

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

  • sobrescrever— Especificartruepara substituir um painel existente por uma versão mais recente, mesmo título do 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.alertbloquear.

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

O412o código de status é 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 title status=plugin-dashboard

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