Todos os produtos
Search
Central de documentação

:Exibir métricas personalizadas e criar alertas no Grafana

Última atualização: Jun 28, 2026

O Managed Service for Prometheus permite visualizar dados de monitoramento por meio de painéis do Grafana. Você pode criar um painel personalizado ou importar um do site oficial do Grafana. Este tópico demonstra como criar um painel personalizado do Grafana para uma aplicação de exemplo implantada em um cluster do Container Service for Kubernetes (ACK) que utiliza o Container Registry.

Pré-requisitos

Procedimento

O diagrama a seguir ilustra o fluxo de trabalho para criar um painel personalizado do Grafana com o Managed Service for Prometheus.

自定义Grafana大盘

Etapa 1: Enviar a aplicação

Crie uma imagem para sua aplicação e envie-a para um repositório de imagens no Container Registry.

  1. Execute o comando a seguir para recompilar o módulo.

    mvn clean install -DskipTests
  2. Execute o comando a seguir para criar a imagem.

    docker build -t <your-image-name>:<your-image-tag> . --no-cache

    Exemplo:

    docker build -t promethues-demo:v0 . --no-cache
  3. Execute o comando a seguir para aplicar tag à imagem.

    sudo docker tag <your-image-name>:<your-image-tag> <registry-domain>/<namespace>/<image-name>:<image-tag>

    Exemplo:

    sudo docker tag promethues-demo:v0 registry.cn-hangzhou.aliyuncs.com/testnamespace/promethues-demo:v0
  4. Execute o comando a seguir para enviar a imagem ao repositório.

    sudo docker push <registry-domain>/<namespace>/<image-name>:<image-tag>

    Exemplo:

    sudo docker push registry.cn-hangzhou.aliyuncs.com/testnamespace/promethues-demo:v0

    No

    console do Container Registry

    , a imagem da aplicação enviada aparece na página

    Image Version

    .

    镜像

Etapa 2: Implantar a aplicação

Implante a aplicação no seu cluster ACK.

  1. Faça login no console do ACK.

  2. No painel de navegação à esquerda, clique em Cluster.

  3. Na página Clusters, localize seu cluster e, na coluna Actions, clique em Applications.

  4. Crie um deployment.

    1. No painel de navegação à esquerda, escolha Workloads > Deployments.

    2. Na página Deployments, clique em Create Resources in YAML.

    3. Na página Create, insira o yaml a seguir no editor Template e clique em Create.

      apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
      kind: Deployment
      metadata:
        name: prometheus-demo
      spec:
        replicas: 2
        template:
          metadata:
            annotations:
              prometheus.io/scrape: 'true'
              prometheus.io/path: '/prometheus-metrics'
              prometheus.io/port: '8081'
            labels:
              app: tomcat
          spec:
            containers:
            - name: tomcat
              imagePullPolicy: Always
              image: <registry-domain>/<namespace>/<image-name>:<image-tag>
              ports:
              - containerPort: 8080
                name: tomcat-normal
              - containerPort: 8081
                name: tomcat-monitor

      Exemplo:

      apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
      kind: Deployment
      metadata:
        name: prometheus-demo
        labels:
          app: tomcat
      spec:
        replicas: 2
        selector:
          matchLabels:
            app: tomcat
        template:
          metadata:
            annotations:
              prometheus.io/scrape: 'true'
              prometheus.io/path: '/prometheus-metrics'
              prometheus.io/port: '8081'
            labels:
              app: tomcat
          spec:
            containers:
            - name: tomcat
              imagePullPolicy: Always
              image: registry.cn-hangzhou.aliyuncs.com/peiyu-test/prometheus-demo:v0
              ports:
              - containerPort: 8080
                name: tomcat-normal
              - containerPort: 8081
                name: tomcat-monitor

    O deployment criado aparece na página

    Deployments

    .

    容器组

  5. Crie um service.

    1. No painel de navegação à esquerda, escolha Network > Services.

    2. Na página Services, clique em Create Resources in YAML.

    3. Na página Create, insira o yaml a seguir no editor Template e clique em Create.

      apiVersion: v1
      kind: Service
      metadata:
        labels:
          app: tomcat
        name: tomcat
        namespace: default
      spec:
        ports:
        - name: tomcat-normal
          port: 8080
          protocol: TCP
          targetPort: 8080
        - name: tomcat-monitor
          port: 8081
          protocol: TCP
          targetPort: 8081
        type: NodePort
        selector:
          app: tomcat

    O service criado aparece na página

    Services

    .

    服务

Etapa 3: Configurar uma regra de coleta

Por padrão, o Managed Service for Prometheus monitora métricas básicas de CPU, memória e rede. Para monitorar dados adicionais, como informações de pedidos, crie uma regra de coleta de dados personalizada no Managed Service for Prometheus.

  1. Faça login no console do ARMS.

  2. No painel de navegação à esquerda, escolha Managed Service for Prometheus > Instances.

  3. Faça login no console do Cloud Monitor.

  4. No painel de navegação à esquerda, escolha Managed Service for Prometheus > Instances para abrir a lista de instâncias do Managed Service for Prometheus.

  5. Clique no nome da sua instância do Prometheus.

  6. Configure uma regra de coleta de dados para sua aplicação conforme os cenários abaixo.

    • Para monitorar dados de negócios de uma aplicação implantada no cluster ACK, como informações de pedidos, siga estas etapas:

      1. No painel de navegação à esquerda, clique em Service Discovery e, em seguida, clique na aba Configure.

      2. Na página Configure, clique na aba ServiceMonitor e, em seguida, clique em Add ServiceMonitor.

      3. Na caixa de diálogo exibida, insira o conteúdo a seguir e clique em OK.

        apiVersion: monitoring.coreos.com/v1
        kind: ServiceMonitor
        metadata:
          # Enter a unique name.
          name: tomcat-demo
          # Enter the target namespace.
          namespace: default
        spec:
          endpoints:
          - interval: 30s
            # Set this to the `name` of the port for the Prometheus exporter, as defined in your Service YAML.
            port: tomcat-monitor
            # Set this to the path of the Prometheus exporter.
            path: /metrics
          namespaceSelector:
            any: true
            # The namespace of the demo application.
          selector:
            matchLabels:
              # Set this to the label value from your Service YAML to target the correct service.
              app: tomcat

        A aba ServiceMonitor exibe a descoberta de serviço configurada.

        服务发现

    • Para monitorar dados de negócios de uma source externa ao cluster ACK, como o número de conexões Redis, proceda da seguinte forma:

      1. No painel de navegação à esquerda, clique em Settings. Na página Settings, clique em Edit Prometheus.yaml.

      2. Na caixa de diálogo exibida, insira o conteúdo a seguir e clique em Save.

        global:
          scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
          evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
        scrape_configs:
          - job_name: 'prometheus'
            static_configs:
            - targets: ['localhost:9090']

Etapa 4: Configurar o painel

Configure um painel do Grafana para exibir seus dados.

  1. Acesse a página de visão geral dos painéis do Grafana.

    Nota

    A Expert Edition for Grafana deve estar ativada.

  2. No painel de navegação à esquerda, escolha er > + New dashboard.

  3. Na página New dashboard, clique em Add a new panel.

  4. Na página Edit Panel, na aba Query, selecione seu cluster na lista suspensa superior. Na seção A, selecione uma métrica, como go_gc_duration_seconds, na lista suspensa Metrics.

    Grafana Add Query

  5. No painel à direita, nomeie o gráfico, selecione um tipo de visualização (como gráfico de linhas, tabela ou mapa de calor) e configure outros parâmetros conforme necessário.

    Create Dashboard Visualization

  6. Clique em Save no canto superior direito. Na caixa de diálogo exibida, nomeie o painel, selecione um cluster e clique em Save.

    Crie múltiplos painéis e gráficos conforme a necessidade.

    Save Grafana Dashboard

    A figura a seguir mostra o painel do Grafana configurado.

    ARMS Prometheus Grafana Dashboard to Customize

Etapa 5: Monitorar métricas complexas

Para monitorar métricas que exigem cálculos complexos, crie e teste a consulta PromQL no Managed Service for Prometheus.

  1. Acesse a página de visão geral dos painéis do Grafana.

  2. No painel de navegação à esquerda, clique no ícone Explore.

  3. Na página Explore, selecione seu cluster na lista suspensa no topo. Insira uma instrução PromQL no campo Metrics e clique em Run Query no canto superior direito para testá-la.

    Prometheus Data Debug

  4. Após a execução bem-sucedida da consulta, adicione um novo painel ou dashboard. Para mais informações, consulte Etapa 4: Configurar o painel.

Etapa 6: Criar um alerta

Para criar uma regra de alerta destinada ao monitoramento de métricas, consulte Criar uma regra de alerta do Prometheus.

  1. Faça login no console do Managed Service for Prometheus.

  2. Faça login no console do ARMS.

  3. No painel de navegação à esquerda, clique em Prometheus Monitoring.

  4. Na barra de navegação superior da página Prometheus Monitoring, selecione a região onde reside o cluster Kubernetes monitorado. Em seguida, clique no nome do cluster Kubernetes.

  5. No painel de navegação à esquerda, clique em Alarm configuration.

  6. Na página Alarm configuration, clique em Create Alert no canto superior direito.

  7. No painel Create Alert, defina os parâmetros.

    1. Opcional:Selecione um modelo na lista suspensa Alarm template.

    2. Insira um nome de regra no campo Rule Name. Exemplo: Alerta para tráfego de entrada.

    3. Insira uma instrução PromQL como expressão no campo Alarm expression. Exemplo: (sum(rate(kube_state_metrics_list_total{job="kube-state-metrics",result="error"}[5m])) / sum(rate(kube_state_metrics_list_total{job="kube-state-metrics"}[5m]))) > 0.01.

      Importante

      Se uma instrução PromQL contiver um cifrão (

      $

      ), um erro será retornado. É necessário remover o sinal de igual (

      =

      ) e os parâmetros em ambos os lados desse sinal na instrução que contém o cifrão ($). Por exemplo, altere

      sum (rate (container_network_receive_bytes_total{instance=~"^$HostIp.*"}[1m]))

      para

      sum (rate (container_network_receive_bytes_total[1m]))

      .

    4. Insira um número N no campo duration. Após a criação da regra de alerta, uma notificação será enviada somente se a condição de alerta for atendida por N minutos consecutivos. Por exemplo, ao inserir 1, a notificação de alerta será disparada apenas quando a condição persistir por um minuto contínuo.

      Nota

      A condição de alerta refere-se à condição especificada pela instrução PromQL. Por padrão, o Prometheus coleta dados em intervalos de 15 segundos. Se menos de 4N registros de dados coletados consecutivamente atenderem à condição de alerta, nenhuma notificação será enviada. O limiar 4N é calculado pela fórmula: N × 60/15 = 4N. Neste exemplo, N está definido como 1. Portanto, uma notificação de alerta é enviada apenas quando quatro registros de dados coletados consecutivamente atendem à condição de alerta. Para garantir que uma notificação seja enviada sempre que um registro de dados coletado atender à condição de alerta, defina N como 0.

    5. Insira o conteúdo da notificação no campo Alarm message.

    6. Opcional:Na seção Labels da Advanced Configuration, clique em Create Tag para adicionar uma ou mais tags à regra de alerta. As tags especificadas podem ser usadas como opções em uma regra de notificação.

    7. Opcional:Na seção Annotations da Advanced Configuration, clique em Create Annotation. Em seguida, insira message no campo Key e {{variable name}} alert message no campo Value. A anotação especificada terá o formato message:{{variable name}} alert message. Exemplo: message:{{$labels.pod_name}} restart.

      Personalize um nome de variável ou selecione uma tag existente como nome de variável. O conteúdo a seguir descreve as tags existentes:

      • Clique em OK.

      Após a criação da regra de alerta, a página Alarm configuration exibe a regra, conforme mostrado na figura a seguir.

      8