Criar painéis de visualização

Os painéis do Grafana permitem visualizar registros e métricas no dispositivo com isolamento físico do Google Distributed Cloud (GDC). Esses painéis oferecem visualizações dinâmicas da integridade e do desempenho do sistema por meio de painéis personalizáveis.

Um painel fornece uma representação visual dinâmica do desempenho do seu sistema. Ele consiste em um ou mais painéis personalizáveis, cada um configurado para consultar e exibir métricas específicas dos componentes do GDC. Com esses painéis, é possível:

  • Visualize métricas em vários tipos de gráficos.
  • Defina limites de alerta para acionar notificações com base em valores de métricas.
  • Personalize as propriedades de exibição, como rótulos, unidades e períodos.
  • Defina resoluções de tempo consistentes para comparações precisas.

Ao usar os painéis do Grafana de maneira eficaz, você pode receber insights valiosos sobre o desempenho e a integridade do seu ambiente do GDC.

Painéis disponíveis

Se o ambiente estiver em execução, você vai ver imediatamente alguns painéis de métricas na página inicial da instância de monitoramento. Por exemplo, é possível observar o status do switch e a integridade dos componentes do sistema.

Use os painéis de switch e cluster para monitorar as métricas de clusters e nós.

Página inicial com uma lista de painéis disponíveis e visualizados recentemente

As métricas mais relevantes para o administrador da plataforma (PA) são as seguintes:

  • Kubernetes / Servidor de API: mostra a integridade do servidor de API por cluster na organização.
  • Kubernetes / Recursos de computação / Multicluster: mostra a utilização de recursos em toda a organização.
  • Kubernetes / Recursos de computação / Cluster: mostra a utilização de recursos por cluster.
  • Kubernetes / Volumes permanentes: mostra a utilização de volumes permanentes do Kubernetes em cada cluster.
  • Status do nó: mostra o uso de recursos em cada nó de cada cluster.
  • Status do pod: mostra o consumo de recursos de cada pod em cada cluster.

A imagem a seguir mostra um exemplo do painel Kubernetes / Recursos de computação / Multicluster.

Gráfico de linhas mostrando o uso da CPU e lista de clusters mostrando as cotas de CPU

Antes de começar

Para receber as permissões necessárias para acessar e visualizar os painéis do Grafana, peça ao administrador do IAM da organização ou do projeto para conceder a você um dos papéis predefinidos de leitor do Grafana.

Além disso, para receber as permissões necessárias para gerenciar os objetos de API necessários para criar painéis do criador de conteúdo, peça ao administrador do IAM da organização ou do projeto para conceder a você os papéis ConfigMap e Dashboard associados.

Dependendo do nível de acesso e das permissões necessárias, é possível receber papéis de criador, editor ou leitor para esses recursos em uma organização ou um projeto. Para mais informações, consulte Preparar permissões do IAM.

Depois de receber os papéis correspondentes, siga estas etapas antes de criar painéis:

  1. Coletar métricas das cargas de trabalho.
  2. Defina o caminho do arquivo kubeconfig como uma variável de ambiente:

    export KUBECONFIG=KUBECONFIG_PATH
    

    Substitua KUBECONFIG_PATH pelo caminho para o arquivo kubeconfig do servidor de API Management em que você quer criar o painel.

Identificar o endpoint do Grafana

O URL a seguir é o endpoint da instância do Grafana do seu projeto:

https://GDC_URL/PROJECT_NAMESPACE/grafana

Substitua:

  • GDC_URL: o URL da sua organização no GDC.
  • PROJECT_NAMESPACE: o namespace do projeto.

Por exemplo, o endpoint do Grafana para o projeto platform-obs na organização org-1 é https://org-1/platform-obs/grafana.

Criar um painel personalizado

Siga estas etapas para criar um painel do Grafana e personalizar suas configurações:

  1. Abra o endpoint do Grafana para exibir a interface do usuário.
  2. No menu de navegação, clique em Adicionar.
  3. No menu suspenso, clique em Painel. O Grafana cria um painel vazio.
  4. No painel vazio, adicione todos os painéis que quiser.

  5. No menu Fonte de dados de cada painel, selecione a fonte de dados que você quer para o painel, incluindo métricas (prometheus), registros de auditoria (auditloki) e registros operacionais (oploki).

    Para universos de várias zonas, o Grafana tem fontes de dados rotuladas por zona que podem ser usadas para criar visualizações de painel com métricas e registros de várias zonas. Essas fontes de dados são nomeadas com o formato DATA_SOURCE-ZONE_ID, em que:

    • DATA_SOURCE pode usar um dos seguintes valores:

      • Prometheus (prometheus ou metrics) para exibir métricas.
      • Registros de auditoria (auditloki) para exibir registros de auditoria.
      • Registros operacionais (oploki) para exibir registros operacionais.
    • ZONE_ID é o ID da zona em que você quer exibir dados no painel.

    Além disso, para criar um painel de visualização para recursos entre zonas, o nome da fonte de dados é --Mixed--. Essa fonte de dados permite adicionar várias consultas por zona e ter visualizações de dados entre zonas em um único painel. É possível usar esse recurso para fazer comparações de comportamento entre, por exemplo, uma única métrica ou consulta de registro em várias zonas do seu universo.

  6. Personalize os detalhes e edite os painéis para fornecer as consultas ou fazer outras atualizações.

  7. Na barra de menus, clique em Configurações do painel para abrir a página Configurações.

  8. No menu de navegação, selecione Modelo JSON.

  9. Copie o modelo JSON do painel e cole-o em um arquivo de texto simples para uso futuro.

Criar um objeto ConfigMap.

Siga estas etapas para criar um objeto ConfigMap que contenha o modelo JSON do painel:

  1. Abra uma janela do terminal.
  2. Criar um objeto ConfigMap. Na seção data do objeto ConfigMap, cole o modelo JSON que você copiou anteriormente:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      namespace: PROJECT_NAMESPACE
      name: CONFIGMAP_NAME
    data:
      JSON_FILE_NAME.json: |
        {
        JSON_MODEL
        }
    

    Substitua:

    • PROJECT_NAMESPACE: o namespace do projeto.
    • CONFIGMAP_NAME: o nome que você quer dar ao objeto ConfigMap.
    • JSON_FILE_NAME: o nome que você quer dar ao arquivo do modelo JSON do painel.
    • JSON_MODEL: o modelo JSON do seu painel personalizado.

    Para ver um exemplo de como esse objeto precisa ser, consulte um exemplo de ConfigMap.

  3. Aplique o objeto ConfigMap ao servidor de API Management:

    kubectl --kubeconfig ${KUBECONFIG} apply -f CONFIGMAP_NAME.yaml
    

Exemplo de ConfigMap

O arquivo YAML a seguir mostra um exemplo do objeto ConfigMap de um painel no namespace platform-obs:

  apiVersion: v1
  kind: ConfigMap
  metadata:
    namespace: platform-obs
    name: my-project-dashboard-configmap
  data:
    my-project-dashboard.json: |
      {
      "annotations": {
        "list": [
          {
            "builtIn": 1,
            "datasource": "--",
            "enable": true,
            "hide": true,
            "iconColor": "rgba(0, 211, 255, 1)",
            "name": "Annotations & Alerts",
            "type": "dashboard"
          }
        ]
      },
      "editable": true,
      "graphTooltip": 0,
      "id": null,
      "links": [],
      "panels": [],
      "schemaVersion": 27,
      "style": "dark",
      "tags": [],
      "templating": {
        "list": []
      },
      "time": {
        "from": "now-6h",
        "to": "now"
      },
      "timepicker": {},
      "timezone": "",
      "title": "Sample dashboard",
      "uid": null,
      "version": 0
      }

Criar um recurso personalizado Dashboard

Siga estas etapas para criar um recurso personalizado Dashboard e importar o painel personalizado para a instância do Grafana do seu projeto:

  1. Abra uma janela do terminal.
  2. Crie um recurso personalizado Dashboard e configure o arquivo com o nome que você deu ao objeto ConfigMap:

    apiVersion: observability.gdc.goog/v1
    kind: Dashboard
    metadata:
      namespace: PROJECT_NAMESPACE
      name: DASHBOARD_NAME
    spec:
      configMapRef:
        name: CONFIGMAP_NAME
        namespace: PROJECT_NAMESPACE
        key: JSON_FILE_NAME.json
      foldername: Default
    

    Substitua:

    • PROJECT_NAMESPACE: o namespace do projeto.
    • DASHBOARD_NAME: o nome que você quer dar ao recurso personalizado Dashboard.
    • CONFIGMAP_NAME: o nome que você deu ao objeto ConfigMap.
    • JSON_FILE_NAME: o nome que você deu ao arquivo que contém o modelo JSON do painel no objeto ConfigMap.
  3. Aplique o recurso personalizado Dashboard ao servidor de API Management:

    kubectl --kubeconfig ${KUBECONFIG} apply -f DASHBOARD_NAME.yaml
    

O sistema monitora as mudanças no recurso personalizado Dashboard e no objeto ConfigMap associado. Para atualizar ou excluir um painel, modifique esses recursos. Qualquer modificação aciona uma atualização do Grafana. Não é possível salvar as atualizações feitas diretamente na interface do usuário do Grafana.