Consultar e visualizar métricas

Depois de coletar métricas das cargas de trabalho implantadas no appliance isolado do Google Distributed Cloud (GDC), é possível começar a analisá-las. Para analisar métricas, visualize e filtre-as em painéis informativos do Grafana ou acesse-as diretamente do Cortex usando a ferramenta curl para scripts e automação flexíveis.

É possível acessar as métricas usando um dos dois métodos a seguir:

  • Dashboards do Grafana: analise tendências e identifique anomalias com visualizações intuitivas de métricas importantes, como utilização da CPU, consumo de armazenamento e atividade de rede. O Grafana oferece uma interface fácil de usar para filtrar e analisar os dados de carga de trabalho em painéis.
  • Endpoint do Cortex: para casos de uso mais avançados, consulte diretamente a instância do Cortex do seu projeto usando a ferramenta curl em uma linha de comando. O Cortex armazena as métricas do Prometheus do seu projeto e fornece um endpoint HTTP para acesso programático. Com esse acesso, é possível exportar dados, automatizar tarefas e criar integrações personalizadas.

Antes de começar

Para receber as permissões necessárias para consultar e visualizar métricas em 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 da organização ou do projeto. Dependendo do nível de acesso e das permissões necessárias, você pode receber papéis do Grafana em uma organização ou um projeto.

Como alternativa, para receber as permissões necessárias para consultar métricas do endpoint do Cortex, peça ao administrador do IAM do projeto para conceder a você o papel de leitor do Prometheus do Cortex do projeto no namespace do projeto.

Para mais informações sobre esses papéis, consulte Preparar permissões do IAM.

Extrair e filtrar suas métricas

Selecione um dos seguintes métodos para criar consultas, visualizar tendências e filtrar métricas das cargas de trabalho do projeto:

Painéis do Grafana

Nesta seção, descrevemos como acessar suas métricas usando painéis do Grafana.

Identificar seu 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.

Ver métricas na interface do usuário do Grafana

Recupere métricas na interface do usuário do Grafana:

  1. No console do GDC, selecione seu projeto.
  2. No menu de navegação, selecione Operações > Monitoramento.
  3. Clique em Ver tudo no Grafana.

    Uma nova página abre seu endpoint do Grafana e mostra a interface do usuário.

  4. Na interface do usuário,clique em Análise Análise no menu de navegação para abrir a página Análise.

  5. No menu da barra Explorar, selecione uma fonte de dados para extrair métricas, de acordo com o tipo de universo:

    • Universos de zona única: selecione prometheus para mostrar as métricas da única zona do seu universo.
  6. Insira uma consulta para pesquisar métricas usando expressões da PromQL (linguagem de consulta do Prometheus). Você pode fazer isso de duas maneiras:

    • Selecione uma métrica e um rótulo para sua consulta nos menus Métrica e Filtros de rótulo. Clique em Adicionar Adicionar para incluir mais rótulos na consulta. Em seguida, clique em Executar consulta.
    • Digite sua consulta diretamente no campo de texto Métricas e pressione Shift+Enter para executar a consulta.

    A página mostra as métricas que correspondem à sua consulta.

    A opção "prometheus" é selecionada na página "Explorar" para receber métricas.

    Figura 1. Opção de menu para consultar métricas na interface do usuário do Grafana.

    Na figura 1, a opção prometheus mostra a interface que permite criar consultas do Grafana para recuperar métricas.

    Para exemplos de valores de rótulos que podem ser usados para consultar métricas, consulte Exemplos de consultas e rótulos.

Endpoint do Cortex

Nesta seção, descrevemos como acessar suas métricas usando o Cortex.

Identificar seu endpoint do Cortex

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

  https://GDC_URL/PROJECT_NAMESPACE/cortex/prometheus/

Substitua:

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

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

Autenticar a solicitação curl

  1. Faça o download e instale a CLI gdcloud.
  2. Defina a propriedade core/organization_console_url do gdcloud:

    gdcloud config set core/organization_console_url
    https://GDC_URL
    
  3. Faça login com o provedor de identidade configurado:

    gdcloud auth login
    
  4. Use seu nome de usuário e senha para autenticar e fazer login.

    Quando o login for concluído, use o cabeçalho de autorização na solicitação cURL com o comando gdcloud auth print-identity-token. Para mais informações, consulte gdcloud auth.

Chamar o endpoint do Cortex

Siga estas etapas para acessar o endpoint do Cortex usando a ferramenta curl:

  1. Autentique a solicitação curl.
  2. Use curl para chamar o endpoint do Cortex e estenda o URL usando a API HTTP padrão do Prometheus (https://prometheus.io/docs/prometheus/latest/querying/api/) para consultar métricas.

    Veja a seguir um exemplo de solicitação curl:

    curl https://GDC_URL/PROJECT_NAME/cortex/prometheus/api/v1/query?query=my_metric{cluster="my-cluster"}&time=2015-07-01T20:10:51.781Z \
    -H "Authorization: Bearer $(gdcloud auth print-identity-token \
    --audiences=https://GDC_URL)"
    

    Você vai receber a saída após o comando. A resposta da API está no formato JSON.

Exemplos de consultas e rótulos

É possível consultar métricas usando o nome delas e pares de chave-valor para rótulos. Uma consulta em PromQL tem a seguinte sintaxe:

metric_name{label_one="value", label_two="value"}

Com os rótulos, é possível diferenciar as características de uma métrica. Dessa forma, os autores de contêineres fazem com que as cargas de trabalho gerem métricas e adicionem tags para filtrar essas métricas.

Por exemplo, é possível ter uma métrica api_http_requests_total para contar o número de solicitações HTTP recebidas. Em seguida, adicione um rótulo request_method a essa métrica, que usa um valor POST, GET ou PUT. Assim, você cria três fluxos de métricas para cada tipo de solicitação que pode receber. Nesse caso, para encontrar o número de solicitações HTTP GET, execute a seguinte consulta:

api_http_requests_total{request_method="GET"}

Consulte https://prometheus.io/docs/practices/naming/ para mais informações sobre métricas e rótulos.

A seguir, veja alguns dos rótulos padrão que o recurso personalizado MonitoringTarget adiciona. É possível usar estes marcadores padrão para consultar métricas:

  • _gdch_service: o nome abreviado do serviço.
  • cluster: o nome do cluster.
  • container_name: o nome do contêiner em um pod.
  • namespace_name: o namespace do projeto.
  • pod_name: o prefixo do nome do pod.

A tabela a seguir descreve os rótulos que o Prometheus adiciona automaticamente:

Rótulos padrão
Rótulo da métrica Descrição
job O nome interno do job de extração usado para coletar a métrica. Os jobs criados pelo recurso personalizado MonitoringTarget têm um nome com o seguinte padrão:

obs-system/OBS_SHADOW_PROJECT_NAME/MONITORINGTARGET_NAME.MONITORINGTARGET_NAMESPACE/I/J

I e J são números exclusivos determinados internamente para evitar conflitos de nomes.
instance O $IP:$PORT do serviço descartado. Se um recurso de carga de trabalho tiver várias réplicas, use esse campo para diferenciá-las.

Os exemplos de código a seguir mostram o uso de pares de chave-valor para rótulos e consultas de métricas diferentes:

  • Confira todos os fluxos de métricas das operações processadas no seu projeto:

    processed_ops_total
    
  • Veja as operações processadas coletadas em um cluster do Kubernetes:

    processed_ops_total{cluster="CLUSTER_NAME"}
    
  • Confira o uso da CPU coletado em um cluster do Kubernetes:

    cpu_usage{cluster="CLUSTER_NAME"}
    

Use a ferramenta de redefinição de rótulos de métricas para adicionar rótulos não expostos inicialmente pelos contêineres descartados e renomear as métricas produzidas. É necessário configurar o recurso personalizado MonitoringTarget para adicionar rótulos às métricas coletadas. Especifique esses rótulos no campo metricsRelabelings do recurso personalizado. Para mais informações, consulte Métricas de rótulo.

Consultar métricas da API Cortex

O Cortex é o armazenamento de longo prazo para métricas do Prometheus no GDC. A plataforma de observabilidade expõe um endpoint de API HTTP do Cortex para consultar e ler métricas, alertas e outros dados de série temporal do Prometheus no seu projeto.

Consulte métricas diretamente da API HTTP para ler e exportar métricas e outros dados de série temporal para ferramentas externas, configurar tarefas automatizadas, adaptar respostas e criar integrações de acordo com seu caso de uso de monitoramento do sistema. Por exemplo, insira a saída em outro comando, exporte detalhes para formatos de arquivo de texto ou configure um cron job do Linux. É possível chamar a API na interface de linha de comando (CLI) ou em um navegador da Web e usar expressões da linguagem de consulta como parâmetros de endpoint para receber o resultado em formato JSON.

Esta seção explica como chamar o endpoint de API Cortex na CLI usando a especificação da API Prometheus para consultar métricas de capacidade de observação de dados.

Antes de começar

Você precisa receber autorização para consultar métricas na CLI. Para receber as permissões necessárias para acessar o endpoint de API Cortex, peça ao administrador do IAM do projeto para conceder a você a função de leitor do Prometheus do Cortex do projeto (project-cortex-prometheus-viewer).

Crie as seguintes vinculações de função usando os comandos kubectl para o Prometheus do Cortex para cada persona:

  1. Administrador raiz do operador de infraestrutura (IO) - Project Cortex Prometheus Viewer:

    kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding 
    io-cortex-prometheus-viewer-binding -n infra-obs 
    --user=fop-infrastructure-operator@example.com 
    --role=project-cortex-prometheus-viewer
    
  2. Administrador da plataforma (PA) Administrador raiz: Project Cortex Prometheus Viewer

    kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding 
    pa-cortex-prometheus-viewer-binding -n platform-obs 
    --user=fop-platform-admin@example.com --role=project-cortex-prometheus-viewer
    
  3. Administrador raiz do operador de aplicativos (AO) - Project Cortex Prometheus Viewer :

    kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding 
    project-cortex-prometheus-viewer-binding -n PROJECT_NAME 
    --user=USER_NAME --role=project-cortex-prometheus-viewer
    

    Substitua:

    • PROJECT_NAME: o nome do projeto.
    • USER_NAME: o nome da conta do usuário que precisa da vinculação de papel.

Depois que a vinculação de função for criada, você poderá acessar a API Prometheus com seu nome de usuário de login.

Endpoint de API HTTP

O URL a seguir é o endpoint de API HTTP para acessar métricas no projeto platform-obs:

https://GDC_URL/PROJECT_NAME/cortex/prometheus/

Substitua:

  • GDC_URL: o URL da sua organização no GDC.
  • PROJECT_NAME: o nome do projeto.

Chamar o endpoint de API

Siga estas etapas para acessar o endpoint de API Cortex na CLI e consultar métricas:

  1. Verifique se você atende aos pré-requisitos.
  2. Abra a CLI.
  3. Use a ferramenta curl para chamar o endpoint do Cortex e estenda o URL usando o padrão https://prometheus.io/docs/prometheus/latest/querying/api/ para consultar métricas. Exemplo:

    curl https://console.org-1.zone1.google.gdch.test/alice/cortex/prometheus/api/v1/query?query=my_metric{cluster="org-1-system"}&time=2015-07-01T20:10:51.781Z
    

Você vai receber a saída na CLI após o comando. O formato de resposta da API é JSON.