Importar painéis do Grafana para o Cloud Monitoring

Este documento descreve como importar arquivos de painel no formato JSON do Grafana para o Cloud Monitoring. É possível importar painéis do Grafana das seguintes maneiras:

O processo de importação converte arquivos de painel no formato JSON usado pelo Grafana no formato JSON usado pelo Cloud Monitoring. Um painel convertido pode ser diferente do painel original do Grafana. Se, por exemplo, um painel do Grafana usar recursos que não estão disponíveis nos painéis do Cloud Monitoring, esses aspectos do painel do Grafana não serão convertidos. Essas diferenças são listadas nos resultados da importação.

Só é possível importar painéis que usam expressões do PromQL e fontes de dados do Prometheus. Os painéis que usam outras formas de consulta ou fontes de dados podem não ser importados.

Para informações sobre como importar alertas do Prometheus para o Cloud Monitoring, consulte Migrar regras de alerta e receptores do Prometheus.

Para informações gerais sobre como gerenciar os painéis importados, consulte Criar e gerenciar painéis personalizados.

Antes de começar

Se você usa o console do Google Cloud ou a ferramenta de importação para importar os seus painéis, precisa ter autorização suficiente e painéis para importar. Ao usar a ferramenta de importação, há pré-requisitos adicionais.

Autorização

Para receber as permissões necessárias para criar e modificar painéis personalizados, peça ao administrador para conceder a você o Papel do IAM de editor do Monitoring (roles/monitoring.editor) no seu projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.

Para mais informações sobre papéis, consulte Controlar o acesso com o Identity and Access Management.

Coletar os painéis do Grafana para importar

Para importar painéis do Grafana, eles precisam estar armazenados localmente como arquivos no formato JSON. Talvez seja melhor criar um diretório especificamente para esses arquivos de painel.

Importar painéis usando o console do Google Cloud

É possível importar painéis do Grafana para o Cloud Monitoring nos seguintes locais do console do Google Cloud:

  • A guia Lista de painéis na página Painéis do Monitoring.
  • Seção do painel da lista de verificação de integração na página Visão geral do Monitoring.

Importar painéis do Grafana

Para importar um ou mais painéis do Grafana, faça o seguinte:

  1. Acesse a página Painéis ou Visão geral no Monitoring:

    • No console do Google Cloud, acesse a página  Painéis:

      Ir para Painéis

      Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.

    • No console do Google Cloud, acesse a página Visão geral do monitoramento:

      Acesse Visão geral

      Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.

  2. Clique em  Importar painéis do Grafana.

  3. Clique em Procurar para navegar até o diretório em que você armazenou os painéis do Grafana no formato JSON e selecione os painéis que você quer importar.

    Cada arquivo JSON é preparado depois de ser selecionado. O painel Files em estágio indica se há algum problema na conversão.

    • Clique em  Mostrar JSON convertido para conferir os resultados da conversão.
    • Clique em  Remover arquivo para remover um painel da operação de importação.
  4. Clique em  Importar. O painel Importar resultados indica se cada painel foi importado ou não.

  5. Para acessar um painel importado, clique em  Visualizar.

Conferir os painéis importados

Para conferir os painéis importados, faça o seguinte:

  1. No console do Google Cloud, acesse a página  Painéis:

    Ir para Painéis

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.

  2. Localize o painel que você quer acessar na lista. Para filtrar a lista de painéis, faça o seguinte:

    • Selecione a categoria Personalizado para ver apenas os painéis definidos pelo usuário.
    • Selecione o rótulo cloud-monitoring-dashboard-importer para ver apenas os painéis do Grafana importados usando o console do Google Cloud.
    • Use a barra de filtro para pesquisar por nome.

Importar painéis usando a ferramenta de importação

Use a ferramenta de importação para converter os painéis do Grafana e fazer upload deles para o Cloud Monitoring como uma única operação. Também é possível executar as etapas de conversão e upload separadamente. Escolha essa abordagem se quiser editar os painéis convertidos antes de fazer o upload deles.

Pré-requisitos adicionais

Antes de instalar e executar o importador de painel, faça o seguinte:

  1. Use um ambiente compatível com scripts de shell Bash.
  2. Tenha ou instale o Git.
  3. Ter ou instalar o Node.js, versão 20.4.1 ou mais recente.
  4. Ter ou instalar a CLI do Google Cloud. Se você já tiver a CLI gcloud instalada, verifique se tem a versão mais recente executando o comando gcloud components update.

Conseguir o importador do dashboard

O importador do painel é armazenado no repositório monitoring-dashboard-samples do GitHub. Para conseguir o importador, faça o seguinte:

  1. Clone o repositório:

    git clone https://github.com/GoogleCloudPlatform/monitoring-dashboard-samples
    
  2. Mude para o diretório do importador do dashboard:

    cd monitoring-dashboard-samples/scripts/dashboard-importer
    

O importador do painel inclui os seguintes scripts:

  • import.sh, que converte painéis e, opcionalmente, faz o upload dos painéis convertidos para o Cloud Monitoring.

  • upload.sh, que faz upload dos painéis convertidos (ou de qualquer painel do Monitoring) para o Cloud Monitoring. O script import.sh o chama para fazer o upload.

Ao usar o script import.sh, especifique o local dos painéis do Grafana que serão convertidos. O importador cria um diretório que contém os painéis convertidos e outras informações. As seções a seguir descrevem esses diretórios.

Painéis do Grafana para conversão

É possível usar o importador de painel para converter um ou mais painéis de uma vez especificando um caminho para os arquivos dos painéis.

  • É possível especificar o caminho para um diretório que contém dashboards. Somente arquivos no diretório que têm a extensão .json são processados.

  • Você pode especificar o caminho para um único arquivo JSON. O nome do arquivo precisa ter a extensão .json.

Painéis convertidos e outras informações

Quando o importador é executado pela primeira vez, ele cria um subdiretório reports. Sempre que você executar o importador, receberá um novo diretório de saída no diretório reports, nomeado pela data e hora. O nome do diretório de saída tem a seguinte estrutura:
reports/YYYY-M-D/HH:MM:SS

Para cada invocação do importador, o diretório de saída contém o seguinte:

  • Um arquivo ou arquivos com os mesmos nomes dos painéis originais do Grafana, mas agora no formato JSON do Cloud Monitoring.
  • Um arquivo report.json, que registra as seguintes informações para cada painel convertido:
    • O nome e o local do arquivo do painel do Grafana que foi convertido.
    • O nome e o local do arquivo convertido do painel do Monitoring.
    • Avisos sobre recursos no painel do Grafana que não têm recurso correspondente no Cloud Monitoring e, portanto, não podem ser incluídos no painel convertido.
    • Todos os erros que ocorreram na conversão.

Se você fez upload dos painéis, o diretório de relatórios também incluirá um arquivo upload_HH:MM:SS.txt, que inclui o URL para o qual o painel foi enviado.

Importar painéis do Grafana

Para converter os painéis do Grafana e fazer upload deles para o Cloud Monitoring, use o script import.sh:

./import.sh PATH_TO_DIRECTORY_OR_FILE PROJECT_ID

Esse script faz o seguinte:

  1. Converte painéis em PATH_TO_DIRECTORY_OR_FILE do formato JSON usado pelo Grafana no formato JSON usado pelo Cloud Monitoring.
  2. Faz upload dos painéis convertidos no seu projeto do Google Cloud PROJECT_ID usando a CLI do Google Cloud.

    Se você não estiver autenticado na CLI gcloud, execute o comando gcloud auth login antes de executar o script import.sh.

É possível importar todos os painéis do Grafana em um diretório ou especificar um único painel nesse diretório.

  • Para importar todos os painéis do diretório GRAFANA_DASHBOARDS_DIR para o projeto PROJECT_ID do Google Cloud, especifique o diretório, em relação ao diretório do importador e o ID do projeto de destino ao invocar o script:

    ./import.sh GRAFANA_DASHBOARDS_DIR PROJECT_ID
    
  • Para converter apenas o painel MY_GRAFANA_DASHBOARD.json no diretório GRAFANA_DASHBOARDS_DIR, inclua o nome do arquivo do painel, relativo ao diretório importador, ao invocar o script:

    ./import.sh GRAFANA_DASHBOARDS_DIR/MY_GRAFANA_DASHBOARD.json PROJECT_ID
    

O importador de painel inclui um painel de amostra do Grafana como examples/k8s_cluster_example.json. O comando a seguir importa esse painel para o projeto especificado:

./import.sh examples/k8s_cluster_example.json PROJECT_ID

Quando invocada com o PROJECT_ID my-project-test-1, a saída é semelhante a esta:

Converting: Kubernetes Cluster Overview
✓ Kubernetes Cluster Overview converted successfully

Conversion of examples/k8s_cluster_example.json complete. Conversion Report located at: reports/2023-9-28/22:14:57/report.json


To upload these dashboard(s) manually, you can run:
./upload.sh reports/2023-9-28/22:14:57/ <PROJECT_ID>

Conversion Complete. Proceeding to uploading...

Now running: ./upload.sh reports/2023-9-28/22:14:57/ my-project-test-1

Uploading 1 dashboard(s) from a directory with the following args:
Directory: reports/2023-9-28/22:14:57/
Project: my-project-test-1

The following are your dashboards:
- k8s_cluster_example.json

Depois que o script import.sh cria o diretório de saída e converte os painéis, mas antes de fazer upload dos painéis convertidos para o projeto, ele solicita uma confirmação. Insira y e o script faz upload do painel e imprime o URL do novo painel:

Would you like to continue? (y/n) y

✓ k8s_cluster_example.json successfully uploaded:
https://console.cloud.google.com/monitoring/dashboards/builder/9c341ef8-cfef-4bdd-98d5-821571c520ef?project=my-project-test-1

Upload log created in reports/2023-9-28/22:14:57/upload_22:14:57.txt

Need to troubleshoot? Please visit:
https://github.com/GoogleCloudPlatform/monitoring-dashboard-samples/tree/master/scripts/dashboard-importer/README.md#troubleshooting

Converter painéis do Grafana sem fazer upload

Se você quiser inspecionar ou editar os painéis convertidos antes de fazer o upload deles, omita o valor PROJECT_ID ao invocar o script import.sh:

./import.sh PATH_TO_DIRECTORY_OR_FILE

O importador converte os painéis conforme descrito em Importar painéis do Grafana, mas não faz upload dos painéis convertidos para o Cloud Monitoring.

É possível executar a etapa de upload mais tarde usando o script upload.sh manualmente.

Fazer upload de painéis manualmente

Para fazer o upload manual dos painéis no formato JSON do Cloud Monitoring, use o script upload.sh.

    ./upload.sh PATH_TO_DIRECTORY_OR_FILE PROJECT_ID

O script upload.sh usa a CLI do Google Cloud para fazer upload dos arquivos JSON. Se você não estiver autenticado na CLI gcloud, execute o comando gcloud auth login antes de executar o script upload.sh.

  • Para fazer upload de todos os painéis em um diretório reports/YYYY-M-D/HH:MM:SS, especifique o diretório, relativo ao diretório do importador e o ID do projeto de destino ao invocar o script:

    ./upload.sh reports/YYYY-M-D/HH:MM:SS PROJECT_ID
    

    Ao fazer o upload de todos os painéis de um diretório, o script solicita que você continue ou saia antes de fazer o upload dos painéis.

  • Para fazer upload de um painel específico em um diretório reports/YYYY-M-D/HH:MM:SS, especifique o diretório e o nome do arquivo, em relação ao diretório do importador e o ID do projeto de destino ao invocar o script:

    ./upload.sh reports/YYYY-M-D/HH:MM:SS/MY_MONITORING_DASHBOARD.json PROJECT_ID
    

    Ao fazer o upload de um único painel de um diretório, o script é executado sem solicitar que você faça o upload dos painéis.

Por exemplo, o comando a seguir faz upload de um painel armazenado em um subdiretório reports para o projeto my-project-test-1 do Google Cloud:

./upload.sh reports/2023-9-26/22:48:31/k8s_cluster_example.json my-project-test-1
Uploading json file: k8s_cluster_example.json to project: my-project-test-1...

✓ k8s_cluster_example.json successfully uploaded:
https://console.cloud.google.com/monitoring/dashboards/builder/25956d9a-93e2-410c-ada1-ec6872cb6665?project=my-project-test-1

Acessar os painéis enviados

Para conferir os painéis enviados, faça o seguinte:

  1. No console do Google Cloud, acesse a página  Painéis:

    Ir para Painéis

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.

  2. Localize o painel que você quer acessar na lista. Para filtrar a lista de painéis, faça o seguinte:

    • Selecione a categoria Personalizado para ver apenas os painéis definidos pelo usuário.
    • Selecione o rótulo cloud-ops-grafana-importer para ver apenas os painéis do Grafana importados usando a ferramenta de importação.
    • Use a barra de filtro para pesquisar por nome.

Solução de problemas

De vez em quando, publicamos pequenas atualizações e correções de bugs para a ferramenta. Antes de tentar solucionar outros problemas, primeiro tente corrigir o problema usando git pull para extrair a versão mais recente do repositório e importar novamente.

Para informações sobre problemas com os painéis convertidos, como gráficos que não mostram dados, consulte o arquivo README do importador.

A seguir