Consultar através do Grafana

Depois de implementar o serviço gerido do Google Cloud para o Prometheus, pode consultar os dados enviados para o serviço gerido e apresentar os resultados em gráficos e painéis de controlo.

Este documento descreve os âmbitos das métricas, que determinam os dados que pode consultar, e como usar o Grafana para obter e usar os dados que recolheu.

Todas as interfaces de consulta do serviço gerido para Prometheus estão configuradas para obter dados do Monarch através da Cloud Monitoring API. Ao consultar o Monarch em vez de consultar dados de servidores Prometheus locais, recebe monitorização global em grande escala.

Antes de começar

Se ainda não implementou o serviço gerido, configure a recolha gerida ou a recolha autodeployada. Pode ignorar este passo se só tiver interesse em consultar métricas do Cloud Monitoring através do PromQL.

Configure o seu ambiente

Para evitar introduzir repetidamente o ID do projeto ou o nome do cluster, faça a seguinte configuração:

  • Configure as ferramentas de linha de comandos da seguinte forma:

    • Configure a CLI gcloud para fazer referência ao ID do seu Google Cloud projeto:

      gcloud config set project PROJECT_ID
      
    • Configure a CLI kubectl para usar o seu cluster:

      kubectl config set-cluster CLUSTER_NAME
      

    Para mais informações sobre estas ferramentas, consulte o seguinte:

Configure um espaço de nomes

Crie o espaço de nomes do Kubernetes NAMESPACE_NAME para os recursos que criar como parte da aplicação de exemplo:

kubectl create ns NAMESPACE_NAME

Valide as credenciais da conta de serviço

Se o seu cluster do Kubernetes tiver a federação de identidade da carga de trabalho para o GKE ativada, pode ignorar esta secção.

Quando executado no GKE, o Managed Service for Prometheus obtém automaticamente as credenciais do ambiente com base na conta de serviço predefinida do Compute Engine. A conta de serviço predefinida tem as autorizações necessárias, monitoring.metricWriter e monitoring.viewer, por predefinição. Se não usar a Workload Identity Federation para o GKE e tiver removido anteriormente uma dessas funções da conta de serviço do nó predefinida, tem de readicionar essas autorizações em falta antes de continuar.

Se não estiver a usar o GKE, consulte a secção Forneça credenciais explicitamente.

Configure uma conta de serviço para a federação de identidades da carga de trabalho para o GKE

Se o seu cluster do Kubernetes não tiver a Workload Identity Federation para o GKE ativada, pode ignorar esta secção.

O Managed Service for Prometheus captura dados de métricas através da API Cloud Monitoring. Se o seu cluster estiver a usar a Workload Identity Federation para o GKE, tem de conceder autorização à sua conta de serviço do Kubernetes para a API Monitoring. Esta secção descreve o seguinte:

Crie e associe a conta de serviço

Este passo aparece em vários locais na documentação do Managed Service for Prometheus. Se já realizou este passo como parte de uma tarefa anterior, não precisa de o repetir. Avance para a secção Autorize a conta de serviço.

A seguinte sequência de comandos cria a conta de serviço gmp-test-sa e associa-a à conta de serviço Kubernetes predefinida no espaço de nomes NAMESPACE_NAME:

gcloud config set project PROJECT_ID \
&&
gcloud iam service-accounts create gmp-test-sa \
&&
gcloud iam service-accounts add-iam-policy-binding \
  --role roles/iam.workloadIdentityUser \
  --member "serviceAccount:PROJECT_ID.svc.id.goog[NAMESPACE_NAME/default]" \
  gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \
&&
kubectl annotate serviceaccount \
  --namespace NAMESPACE_NAME \
  default \
  iam.gke.io/gcp-service-account=gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com

Se estiver a usar um espaço de nomes ou uma conta de serviço do GKE diferente, ajuste os comandos adequadamente.

Autorize a conta de serviço

Os grupos de autorizações relacionadas são recolhidos em funções e concede as funções a um principal, neste exemplo, a Google Cloud conta de serviço. Para mais informações sobre as funções de monitorização, consulte o artigo Controlo de acesso.

O comando seguinte concede à Google Cloud conta de serviçogmp-test-sa as funções da Monitoring API de que precisa para ler dados de métricas.

Se já tiver concedido à Google Cloud conta de serviço uma função específica como parte de uma tarefa anterior, não tem de o fazer novamente.

Para autorizar a sua conta de serviço a ler a partir de um âmbito de métricas de vários projetos, siga estas instruções e, em seguida, consulte Altere o projeto consultado.

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \
  --role=roles/monitoring.viewer \
&& \
gcloud projects add-iam-policy-binding PROJECT_ID \
  --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \
  --role=roles/iam.serviceAccountTokenCreator

Depure a configuração da federação de identidades de cargas de trabalho para o GKE

Se tiver problemas com a federação de identidade da carga de trabalho para o GKE, consulte a documentação para validar a configuração da federação de identidade da carga de trabalho para o GKE e o guia de resolução de problemas da federação de identidade da carga de trabalho para o GKE.

Uma vez que os erros ortográficos e as operações de copiar e colar parciais são as origens mais comuns de erros ao configurar a Workload Identity Federation para o GKE, recomendamos vivamente que use as variáveis editáveis e os ícones de copiar e colar clicáveis incorporados nos exemplos de código nestas instruções.

Workload Identity Federation para o GKE em ambientes de produção

O exemplo descrito neste documento associa a conta de serviço à conta de serviço predefinida do Kubernetes e concede à conta de serviço todas as autorizações necessárias para usar a API Monitoring. Google Cloud Google Cloud

Num ambiente de produção, pode querer usar uma abordagem mais detalhada, com uma conta de serviço para cada componente, cada uma com autorizações mínimas. Para mais informações sobre a configuração de contas de serviço para a gestão de identidades da carga de trabalho, consulte o artigo Usar a federação de identidades da carga de trabalho para o GKE.

Âmbitos das consultas e métricas

Os dados que pode consultar são determinados pela construção do Cloud Monitoring âmbito das métricas, independentemente do método que usa para consultar os dados. Por exemplo, se usar o Grafana para consultar dados do Managed Service for Prometheus, cada âmbito de métricas tem de ser configurado como uma origem de dados separada.

Um âmbito de métricas de monitorização é uma construção apenas de tempo de leitura que lhe permite consultar dados de métricas pertencentes a vários Google Cloud projetos. Cada âmbito de métricas é alojado por um Google Cloud projeto designado, denominado projeto de âmbito.

Por predefinição, um projeto é o projeto de âmbito para o seu próprio âmbito de métricas e o âmbito de métricas contém as métricas e a configuração desse projeto. Um projeto de âmbito pode ter mais do que um projeto monitorizado no respetivo âmbito de métricas, e as métricas e as configurações de todos os projetos monitorizados no âmbito de métricas são visíveis para o projeto de âmbito. Um projeto monitorizado também pode pertencer a mais do que um âmbito de métricas.

Quando consulta as métricas num projeto de âmbito, e se esse projeto de âmbito alojar um âmbito de métricas de vários projetos, pode obter dados de vários projetos. Se o âmbito das métricas contiver todos os seus projetos, as consultas e as regras são avaliadas globalmente.

Para mais informações sobre o âmbito dos projetos e o âmbito das métricas, consulte o artigo Âmbito das métricas. Para obter informações sobre a configuração do âmbito das métricas de vários projetos, consulte o artigo Veja métricas de vários projetos.

Serviço gerido para dados do Prometheus no Cloud Monitoring

A forma mais simples de verificar se os seus dados do Prometheus estão a ser exportados é usar a página do explorador de métricas do Cloud Monitoring na Google Cloud consola, que suporta PromQL. Para obter instruções, consulte o artigo Consultar com PromQL no Cloud Monitoring.

Também pode importar os seus painéis de controlo do Grafana para o Cloud Monitoring. Isto permite-lhe continuar a usar painéis de controlo do Grafana pessoais ou criados pela comunidade sem ter de configurar nem implementar uma instância do Grafana.

Grafana

O Managed Service for Prometheus usa a origem de dados do Prometheus incorporada para o Grafana, o que significa que pode continuar a usar todos os painéis de controlo do Grafana criados pela comunidade ou pessoais sem alterações.

Implemente o Grafana, se necessário

Se não tiver uma implementação do Grafana em execução no cluster, pode criar uma implementação de teste efémera para experimentar.

Para criar uma implementação efémera do Grafana, aplique o manifesto do Managed Service for Prometheus grafana.yaml ao seu cluster e encaminhe a porta do serviço grafana para a sua máquina local. Devido a restrições de CORS, não pode aceder a uma implementação do Grafana através do Cloud Shell.

  1. Aplique o manifesto grafana.yaml:

    kubectl -n NAMESPACE_NAME apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.15.3/examples/grafana.yaml
    
  2. Encaminhe a porta do serviço grafana para a sua máquina local. Este exemplo encaminha o serviço para a porta 3000:

    kubectl -n NAMESPACE_NAME port-forward svc/grafana 3000
    

    Este comando não é devolvido e, enquanto está em execução, comunica os acessos ao URL.

    Pode aceder ao Grafana no seu navegador no URL http://localhost:3000 com o nome de utilizador:palavra-passe admin:admin.

Em seguida, adicione uma nova origem de dados do Prometheus ao Grafana fazendo o seguinte:

  1. Aceda à sua implementação do Grafana, por exemplo, navegando para o URL http://localhost:3000 para aceder à página de boas-vindas do Grafana.

  2. Selecione Connections (Associações) no menu principal do Grafana e, de seguida, selecione Data Sources (Origens de dados).

    Adicionar uma origem de dados no Grafana.

  3. Selecione Adicionar origem de dados e selecione Prometheus como a base de dados de séries cronológicas.

    Adicionar uma origem de dados do Prometheus.

  4. Atribua um nome à origem de dados, defina o campo URL como http://localhost:9090 e, de seguida, selecione Guardar e testar. Pode ignorar todos os erros que indiquem que a origem de dados não está configurada corretamente.

  5. Copie o URL do serviço local para a sua implementação, que terá o seguinte aspeto:

    http://grafana.NAMESPACE_NAME.svc:3000
    

Configure e autentique a origem de dados do Grafana

Google Cloud Todas as APIs requerem autenticação através do OAuth2. No entanto, o Grafana não suporta a autenticação OAuth2 para contas de serviço usadas com origens de dados do Prometheus. Para usar o Grafana com o Managed Service for Prometheus, usa o sincronizador de origens de dados para gerar credenciais OAuth2 para a sua conta de serviço e sincronizá-las com o Grafana através da API de origens de dados do Grafana.

Tem de usar o sincronizador de origens de dados para configurar e autorizar o Grafana a consultar dados globalmente. Se não seguir estes passos, o Grafana só executa consultas em relação aos dados no servidor Prometheus local.

O sincronizador de origens de dados é uma ferramenta de interface de linha de comandos que envia remotamente valores de configuração para uma determinada origem de dados do Grafana Prometheus. Isto garante que a origem de dados do Grafana tem o seguinte configurado corretamente:

  • Autenticação, feita através da atualização periódica de uma chave de acesso OAuth2
  • A API Cloud Monitoring definida como o URL do servidor Prometheus
  • O método HTTP definido como GET
  • O tipo e a versão do Prometheus definidos para um mínimo de 2.40.x
  • Os valores de limite de tempo HTTP e de consulta definidos para 2 minutos

O sincronizador de origens de dados tem de ser executado repetidamente. Como os tokens de acesso da conta de serviço têm um tempo de vida predefinido de uma hora, a execução do sincronizador da origem de dados a cada 10 minutos garante que tem uma ligação autenticada ininterrupta entre o Grafana e a API Cloud Monitoring.

Pode optar por executar o sincronizador de origens de dados através de um Kubernetes CronJob ou do Cloud Run e do Cloud Scheduler para uma experiência totalmente sem servidor. Se estiver a implementar o Grafana localmente, como com o Grafana de código aberto ou o Grafana Enterprise, recomendamos que execute o sincronizador da origem de dados no mesmo cluster em que o Grafana está a ser executado. Se estiver a usar o Grafana Cloud, recomendamos que escolha a opção totalmente sem servidor.

Use a tecnologia sem servidor

Para implementar e executar um sincronizador de origens de dados sem servidor através do Cloud Run e do Cloud Scheduler, faça o seguinte:

  1. Escolha um projeto no qual implementar o sincronizador de origens de dados. Recomendamos que escolha o projeto de âmbito de um âmbito de métricas de vários projetos. O sincronizador da origem de dados usa o Google Cloud projeto configurado como o projeto de âmbito.

    Em seguida, configure e autorize uma conta de serviço para o sincronizador da origem de dados. A seguinte sequência de comandos cria uma conta de serviço e atribui-lhe várias funções da IAM. As duas primeiras funções permitem que a conta de serviço leia a partir da API Cloud Monitoring e gere tokens de conta de serviço. Os dois últimos papéis permitem que a conta de serviço leia o token da conta de serviço do Grafana a partir do Secret Manager e invoque o Cloud Run:

    gcloud config set project PROJECT_ID \
    &&
    gcloud iam service-accounts create gmp-ds-syncer-sa \
    &&
    gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:gmp-ds-syncer-sa@PROJECT_ID.iam.gserviceaccount.com \
    --role=roles/monitoring.viewer \
    && \
    gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:gmp-ds-syncer-sa@PROJECT_ID.iam.gserviceaccount.com \
    --role=roles/iam.serviceAccountTokenCreator \
    && \
    gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:gmp-ds-syncer-sa@PROJECT_ID.iam.gserviceaccount.com \
    --role=roles/secretmanager.secretAccessor
    && \
    gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:gmp-ds-syncer-sa@PROJECT_ID.iam.gserviceaccount.com \
    --role=roles/run.invoker
    
  2. Determine o URL da sua instância do Grafana, por exemplo, https://yourcompanyname.grafana.net para uma implementação do Grafana Cloud. A instância do Grafana tem de ser acessível a partir do Cloud Run, o que significa que tem de ser acessível a partir da Internet em geral.

    Se a sua instância do Grafana não estiver acessível a partir da Internet em geral, recomendamos que implemente o sincronizador da origem de dados no Kubernetes.

  3. Escolha a origem de dados do Grafana Prometheus a usar para o Managed Service for Prometheus, que pode ser uma origem de dados do Prometheus nova ou pré-existente. Em seguida, encontre e anote o UID da origem de dados. Pode encontrar o UID da origem de dados na última parte do URL quando explora ou configura uma origem de dados, por exemplo, https://yourcompanyname.grafana.net/connections/datasources/edit/GRAFANA_DATASOURCE_UID. Não copie o URL completo da origem de dados. Copie apenas o identificador exclusivo no URL.

    Localize um UID da origem de dados no Grafana.

  4. Configure uma conta de serviço do Grafana criando a conta de serviço e gerando um token para a conta usar:

    1. Na barra lateral de navegação do Grafana, clique em Administração > Utilizadores e acesso > Contas de serviço.

    2. Crie a conta de serviço no Grafana clicando em Adicionar conta de serviço, atribuindo-lhe um nome e concedendo-lhe a função "Origens de dados > Escritor". Certifique-se de que clica no botão Aplicar para atribuir a função. Nas versões mais antigas do Grafana, pode usar a função "Administrador" em alternativa.

    3. Clique em Adicionar token da conta de serviço.

    4. Defina a expiração do token como "Sem expiração" e clique em Gerar token. Em seguida, copie o token gerado para a área de transferência para utilização como GRAFANA_SERVICE_ACCOUNT_TOKEN no passo seguinte:

      Gere e guarde um token de conta de serviço no Grafana.

  5. Defina as seguintes variáveis de documentação com os resultados dos passos anteriores. Não tem de colar isto num terminal:

    # These values are required.
    REGION # The Google Cloud region where you want to run your Cloud Run job, such as us-central1.
    PROJECT_ID # The Project ID from Step 1.
    GRAFANA_INSTANCE_URL # The Grafana instance URL from step 2. This is a URL. Include "http://" or "https://".
    GRAFANA_DATASOURCE_UID # The Grafana data source UID from step 3. This is not a URL.
    GRAFANA_SERVICE_ACCOUNT_TOKEN # The Grafana service account token from step 4.
    
  6. Crie um Secret no Secret Manager:

    gcloud secrets create datasource-syncer --replication-policy="automatic" && \
    echo -n GRAFANA_SERVICE_ACCOUNT_TOKEN | gcloud secrets versions add datasource-syncer --data-file=-
    
  7. Crie o seguinte ficheiro YAML e atribua-lhe o nome cloud-run-datasource-syncer.yaml:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
     name: datasource-syncer-job
    spec:
     template:
       spec:
         taskCount: 1
         template:
           spec:
             containers:
             - name: datasource-syncer
               image: gke.gcr.io/prometheus-engine/datasource-syncer:v0.15.3-gke.0
               args:
               - "--datasource-uids=GRAFANA_DATASOURCE_UID"
               - "--grafana-api-endpoint=GRAFANA_INSTANCE_URL"
               - "--project-id=PROJECT_ID"
               env:
               - name: GRAFANA_SERVICE_ACCOUNT_TOKEN
                 valueFrom:
                   secretKeyRef:
                     key: latest
                     name: datasource-syncer
             serviceAccountName: gmp-ds-syncer-sa@PROJECT_ID.iam.gserviceaccount.com
    

    Em seguida, execute o seguinte comando para criar uma tarefa do Cloud Run com o ficheiro YAML:

    gcloud run jobs replace cloud-run-datasource-syncer.yaml --region REGION
    
  8. Crie um agendamento no Cloud Scheduler para executar o trabalho do Cloud Run a cada 10 minutos:

    gcloud scheduler jobs create http datasource-syncer \
    --location REGION \
    --schedule="*/10 * * * *" \
    --uri="https://REGION-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/PROJECT_ID/jobs/datasource-syncer-job:run" \
    --http-method POST \
    --oauth-service-account-email=gmp-ds-syncer-sa@PROJECT_ID.iam.gserviceaccount.com
    

    Em seguida, force a execução do programador que acabou de criar:

    gcloud scheduler jobs run datasource-syncer --location REGION
    

    A atualização da origem de dados pode demorar até 15 segundos.

  9. Aceda à origem de dados do Grafana recém-configurada e verifique se o valor do URL do servidor Prometheus começa por https://monitoring.googleapis.com. Pode ter de atualizar a página. Após a validação, aceda à parte inferior da página, selecione Guardar e testar e certifique-se de que vê uma marca de verificação verde a indicar que a origem de dados está configurada corretamente. Tem de selecionar Guardar e testar, pelo menos, uma vez para garantir que a conclusão automática de etiquetas no Grafana funciona.

Use o Kubernetes

Para implementar e executar o sincronizador de origens de dados num cluster do Kubernetes, faça o seguinte:

  1. Escolha um projeto, um cluster e um espaço de nomes para implementar o sincronizador de origens de dados. Recomendamos a implementação do sincronizador de origens de dados num cluster pertencente ao projeto de âmbito de um âmbito de métricas de vários projetos. O sincronizador da origem de dados usa o Google Cloud projeto configurado como o projeto de âmbito.

    Em seguida, certifique-se de que configura e autoriza corretamente o sincronizador da origem de dados:

    Em seguida, determine se tem de autorizar ainda mais o sincronizador de origens de dados para consultas de vários projetos:

  2. Determine o URL da sua instância do Grafana, por exemplo, https://yourcompanyname.grafana.net para uma implementação do Grafana Cloud ou http://grafana.NAMESPACE_NAME.svc:3000 para uma instância local configurada usando o YAML de implementação de teste.

    Se implementar o Grafana localmente e o cluster estiver configurado para proteger todo o tráfego no cluster através do TLS, tem de usar https:// no URL e autenticar-se através de uma das opções de autenticação TLS suportadas.

  3. Escolha a origem de dados do Grafana Prometheus que quer usar para o Managed Service for Prometheus, que pode ser uma origem de dados nova ou pré-existente. Em seguida, encontre e anote o UID da origem de dados. Pode encontrar o UID da origem de dados na última parte do URL quando explora ou configura uma origem de dados, por exemplo, https://yourcompanyname.grafana.net/connections/datasources/edit/GRAFANA_DATASOURCE_UID. não copie o URL completo da origem de dados. Copie apenas o identificador exclusivo no URL. Localize um UID da origem de dados no Grafana.

  4. Configure uma conta de serviço do Grafana criando a conta de serviço e gerando um token para a conta usar:

    1. Na barra lateral de navegação do Grafana, clique em Administração > Utilizadores e acesso > Contas de serviço.
    2. Crie a conta de serviço clicando em Adicionar conta de serviço, atribuindo-lhe um nome e concedendo-lhe a função "Administrador" no Grafana. Se a sua versão do Grafana permitir autorizações mais detalhadas, pode usar a função Origens de dados > Escritor.

    3. Clique em Adicionar token da conta de serviço.

    4. Defina a expiração do token como "Sem expiração", clique em Gerar token e, de seguida, copie o token gerado para a área de transferência para utilização como GRAFANA_SERVICE_ACCOUNT_TOKEN no passo seguinte. Gere e guarde um token de conta de serviço no Grafana.

  5. Configure as seguintes variáveis de ambiente com os resultados dos passos anteriores:

    # These values are required.
    PROJECT_ID=SCOPING_PROJECT_ID # The value from Step 1.
    GRAFANA_API_ENDPOINT=GRAFANA_INSTANCE_URL # The value from step 2. This is a URL.
    DATASOURCE_UIDS=GRAFANA_DATASOURCE_UID # The value from step 3. This is not a URL.
    GRAFANA_API_TOKEN=GRAFANA_SERVICE_ACCOUNT_TOKEN # The value from step 4.
     
    
  6. Execute o seguinte comando para criar um CronJob que atualize a origem de dados na inicialização e, em seguida, a cada 10 minutos. Se estiver a usar a Workload Identity Federation para o GKE, o valor de NAMESPACE_NAME deve ser o mesmo espaço de nomes que associou anteriormente à conta de serviço.

    curl https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.15.3/cmd/datasource-syncer/datasource-syncer.yaml \
    | sed 's|$DATASOURCE_UIDS|'"$DATASOURCE_UIDS"'|; s|$GRAFANA_API_ENDPOINT|'"$GRAFANA_API_ENDPOINT"'|; s|$GRAFANA_API_TOKEN|'"$GRAFANA_API_TOKEN"'|; s|$PROJECT_ID|'"$PROJECT_ID"'|;'   \
    | kubectl -n NAMESPACE_NAME apply -f -
    
  7. Aceda à origem de dados do Grafana recém-configurada e verifique se o valor do URL do servidor Prometheus começa por https://monitoring.googleapis.com. Pode ter de atualizar a página. Após a validação, aceda à parte inferior da página e selecione Guardar e testar. Tem de selecionar este botão, pelo menos, uma vez para garantir que a funcionalidade de preenchimento automático de etiquetas no Grafana funciona.

Execute consultas através do Grafana

Agora, pode criar painéis de controlo do Grafana e executar consultas através da origem de dados configurada. A captura de ecrã seguinte mostra um gráfico do Grafana que apresenta a métrica:up

Gráfico do Grafana para a métrica de atividade do Managed Service for Prometheus.

Para obter informações sobre como consultar Google Cloud métricas do sistema através do PromQL, consulte o artigo PromQL para métricas do Cloud Monitoring.

Executar o sincronizador de origens de dados fora do GKE

Se estiver a executar o sincronizador de origens de dados num cluster do Google Kubernetes Engine ou se estiver a usar a opção sem servidor, pode ignorar esta secção. Se estiver a ter problemas de autenticação no GKE, consulte o artigo Valide as credenciais da conta de serviço.

Quando executado no GKE, o sincronizador da origem de dados obtém automaticamente as credenciais do ambiente com base na conta de serviço do nó ou na federação de identidades da carga de trabalho para a configuração do GKE. Em clusters do Kubernetes não GKE, as credenciais têm de ser fornecidas explicitamente ao sincronizador da origem de dados através da variável de ambiente GOOGLE_APPLICATION_CREDENTIALS.

  1. Defina o contexto para o projeto de destino:

    gcloud config set project PROJECT_ID
    
  2. Crie uma conta de serviço:

    gcloud iam service-accounts create gmp-test-sa
    

    Este passo cria a conta de serviço que pode já ter criado nas instruções da federação de identidades da carga de trabalho para o GKE.

  3. Conceda as autorizações necessárias à conta de serviço:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \
      --role=roles/monitoring.viewer \
    && \
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \
      --role=roles/iam.serviceAccountTokenCreator
    

  4. Crie e transfira uma chave para a conta de serviço:

    gcloud iam service-accounts keys create gmp-test-sa-key.json \
      --iam-account=gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com
    
  5. Defina o caminho do ficheiro de chave através da variável de ambiente GOOGLE_APPLICATION_CREDENTIALS.

Autorize o sincronizador da origem de dados a obter a monitorização de vários projetos

O Managed Service for Prometheus suporta a monitorização de vários projetos através de âmbitos de métricas.

Para quem usa a opção sem servidor, tem consultas em vários projetos se o projeto escolhido for o projeto de âmbito de um âmbito de métricas de vários projetos.

Para quem implementa o sincronizador de origens de dados no Kubernetes, se o seu projeto local for o projeto de âmbito, e tiver seguido as instruções para validar ou configurar uma conta de serviço para o projeto local, a consulta multiprojeto deve funcionar sem configuração adicional.

Se o seu projeto local não for o projeto de âmbito, tem de autorizar a conta de serviço de computação predefinida do projeto local ou a sua conta de serviço da Workload Identity Federation para o GKE a ter monitoring.viewer acesso ao projeto de âmbito. Em seguida, transmita o ID do projeto de âmbito como o valor da variável de ambiente PROJECT_ID.

Se usar a conta de serviço do Compute Engine, pode fazer uma das seguintes ações:default

Para conceder a uma conta de serviço as autorizações necessárias para aceder a um projeto Google Cloud diferente Google Cloud , faça o seguinte:

  1. Conceda à conta de serviço autorização para ler a partir do projeto de destino que quer consultar:

    gcloud projects add-iam-policy-binding SCOPING_PROJECT_ID \
      --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \
      --role=roles/monitoring.viewer
    
  2. Quando configurar o sincronizador da origem de dados, transmita o ID do projeto de âmbito como o valor da variável de ambiente PROJECT_ID.

Inspecione o CronJob do Kubernetes

Se estiver a implementar o sincronizador de origens de dados no Kubernetes, pode inspecionar o CronJob e garantir que todas as variáveis estão corretamente definidas executando o seguinte comando:

kubectl describe cronjob datasource-syncer

Para ver os registos da tarefa que configura inicialmente o Grafana, execute o seguinte comando imediatamente após aplicar o ficheiro datasource-syncer.yaml:

kubectl logs job.batch/datasource-syncer-init

Desmontagem

Para desativar o sincronizador de origens de dados Cronjob no Kubernetes, execute o seguinte comando:

kubectl delete -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.15.3/cmd/datasource-syncer/datasource-syncer.yaml

A desativação do sincronizador de origens de dados impede a atualização do Grafana associado com credenciais de autenticação atualizadas e, consequentemente, a consulta do Managed Service for Prometheus deixa de funcionar.

Compatibilidade da API

Os seguintes pontos finais da API HTTP do Prometheus são suportados pelo Managed Service for Prometheus no URL com o prefixo https://monitoring.googleapis.com/v1/projects/PROJECT_ID/location/global/prometheus/api/v1/.

Para aceder à documentação completa, consulte a documentação de referência da API Cloud Monitoring. Os pontos finais HTTP do Prometheus não estão disponíveis nas bibliotecas cliente específicas do idioma do Cloud Monitoring.

Para informações sobre a compatibilidade com o PromQL, consulte o suporte do PromQL.

  • Os seguintes pontos finais são totalmente suportados:

  • O ponto final /api/v1/label/<label_name>/values só funciona se a etiqueta __name__ for fornecida através da sua utilização como o valor <label_name> ou através da correspondência exata com a mesma usando um seletor de séries. Por exemplo, as seguintes chamadas são totalmente suportadas:

    • /api/v1/label/__name__/values
    • /api/v1/label/__name__/values?match[]={__name__=~".*metricname.*"}
    • /api/v1/label/labelname/values?match[]={__name__="metricname"}

    Esta limitação faz com que as consultas de variáveis no Grafana falhem.label_values($label) Em alternativa, pode usar label_values($metric, $label). Este tipo de consulta é recomendado porque evita obter valores para etiquetas em métricas que não são relevantes para o painel de controlo especificado.

  • O ponto final /api/v1/series é suportado para pedidos GET, mas não para pedidos POST. Quando usa o sincronizador de origens de dados ou o proxy de front-end, esta restrição é gerida por si. Também pode configurar as suas origens de dados do Prometheus no Grafana para emitir apenas pedidos GET. O parâmetro match[] não suporta a correspondência de expressões regulares na etiqueta __name__.

O que se segue?