Todos os produtos
Search
Central de documentação

Compute Nest:Configure business monitoring and alerting for a fully managed service deployed in an ACK cluster

Última atualização: Jun 28, 2026

Provedores de serviços podem usar este guia para configurar o monitoramento e os alertas de ponta a ponta baseados no Prometheus para um serviço totalmente gerenciado executado em um cluster Container Service for Kubernetes (ACK). Após a configuração, tanto provedores de serviços quanto locatários podem visualizar as métricas de suas respectivas instâncias de serviço na página de detalhes da instância.

Serviços totalmente gerenciados single-tenant e multi-tenant usam o mesmo método de integração com o Managed Service for Prometheus. Em uma implantação single-tenant, cada cluster ACK é dedicado a um único cliente. Já em uma implantação multi-tenant, vários clientes compartilham o mesmo cluster ACK.

Como funciona

image

O Compute Nest usa o recurso de monitoramento multi-tenant do Managed Service for Prometheus, parte do Application Real-Time Monitoring Service (ARMS).

  • O agente do Prometheus no cluster aplica tags às métricas no nível de pod ou namespace usando tags de locatário. Isso direciona as métricas de cada locatário para a instância de serviço correspondente.

  • O backend de armazenamento oferece isolamento multi-tenant nativo. Como provedor de serviços, adicione tags de locatário apenas às cargas de trabalho de cada locatário.

  • Serviços totalmente gerenciados multi-tenant usam namespaces do Kubernetes para isolar os recursos dos locatários. Ao adicionar tags de locatário a um namespace, o backend encaminha automaticamente as métricas desse locatário para a instância de serviço correta.

  • O recurso de remote write permite receber todos os dados de monitoramento dos locatários na sua conta de provedor de serviços, enquanto cada locatário visualiza apenas seus próprios dados.

Resumo da visibilidade de dados:

Conta

Métricas visíveis

Provedor de serviços

Métricas de todas as instâncias de serviço dos locatários

Locatário

Apenas métricas da própria instância de serviço

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um cluster ACK onde o serviço totalmente gerenciado está implantado

  • Um AccessKey ID e AccessKey Secret para sua conta de provedor de serviços, com pelo menos a permissão arms:GetPrometheusApiToken (consulte a política de privilégio mínimo abaixo)

  • Um identificador de produto para seu serviço — use cn-mariadb para testes ou entre em contato com o suporte técnico para obter um identificador exclusivo para produção (ID do grupo DingTalk: 31045016300)

  • (Etapa 3) Um painel do Grafana criado no Alibaba Cloud Managed Grafana

Política de AccessKey de privilégio mínimo:

Conceda apenas a permissão arms:GetPrometheusApiToken ao AccessKey usado para encaminhamento de métricas. Essa prática segue o princípio do menor privilégio e limita a exposição caso a chave seja comprometida.

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "arms:GetPrometheusApiToken"
      ],
      "Resource": "*"
    }
  ]
}

Etapa 1: Configurar o Managed Service for Prometheus no cluster ACK

O método de configuração depende se o seu serviço é single-tenant ou multi-tenant.

Serviço totalmente gerenciado single-tenant

O Compute Nest encapsula a configuração do Managed Service for Prometheus em um módulo do Resource Orchestration Service (ROS). Adicione o bloco a seguir ao seu modelo ROS ao criar o serviço.

Trecho de exemplo de modelo ROS:

ClusterArmsConfig:
  Type: 'MODULE::ACS::ComputeNest::AckArmsConfig'
  Version: v1
  Properties:
    ClusterId:
      Fn::If:
        - Condition: CreateACKCondition
        - Ref: ManagedKubernetesCluster
        - Ref: ClusterId
    WhetherSupplierNeedMetric: true
    AccessKeyID: LTAI****************
    AccessKeySecret: yourAccessKeySecret
    SupplierAliuid: 15634578xxxxxx

Parâmetros:

Parâmetro

Obrigatório

Descrição

ClusterId

Sim

ID do cluster ACK. Faz referência a ManagedKubernetesCluster se CreateACKCondition for verdadeiro; caso contrário, referencia ClusterId.

WhetherSupplierNeedMetric

Sim

Defina como true para receber métricas do locatário na conta do provedor de serviços. Quando definido como true, especifique também AccessKeyID, AccessKeySecret e SupplierAliuid.

AccessKeyID

Condicional

AccessKey ID da conta do provedor de serviços. Necessário quando WhetherSupplierNeedMetric é true.

AccessKeySecret

Condicional

AccessKey Secret da conta do provedor de serviços. Necessário quando WhetherSupplierNeedMetric é true.

SupplierAliuid

Condicional

UID da conta Alibaba Cloud do provedor de serviços. Necessário quando WhetherSupplierNeedMetric é true.

SyncServiceMonitor

Não

Defina como true para sincronizar automaticamente os recursos ServiceMonitor no cluster. Use esta opção para selecionar quais Services monitorar. Para mais detalhes, consulte Usar ServiceMonitors para descobrir e monitorar Services.

SyncPodMonitor

Não

Defina como true para sincronizar automaticamente os recursos PodMonitor no cluster.

Se o modelo ROS criar o cluster ACK (em vez de usar um cluster existente), adicione o parâmetro Addons ao bloco de recursos do ACK no modelo.

image

Serviço totalmente gerenciado multi-tenant

Por padrão, o Managed Service for Prometheus não suporta o encaminhamento de métricas. Configure-o para encaminhar métricas relacionadas a aplicações de usuários para usuários específicos. Para serviços multi-tenant, crie uma instância do Managed Service for Prometheus no cluster ACK usando o serviço de infraestrutura de contêineres na página Catálogo de Serviços no console do Compute Nest.

Etapa 2: Configurar o modelo ROS

Criar um namespace com tags de locatário

Crie um namespace do Kubernetes nomeado com o ID da instância de serviço e adicione tags de locatário a ele. As quatro chaves de tag — tenant_userid, tenant_clusterid, tenant_token e tenant_cloudproductcode — são placeholders fixos resolvidos pelo Compute Nest durante a implantação. O placeholder {{ serviceInstanceId }} é resolvido para o ID da instância de serviço criada.

ClusterNameSpaceApplication:
    Type: ALIYUN::CS::ClusterApplication
    Properties:
      YamlContent:
        Fn::Sub:
          - |
            apiVersion: v1
            kind: Namespace
            metadata:
              name: '${Name}'
              labels:
                tenant_userid: '{{ aliUid }}'
                tenant_clusterid: '{{ tenantClusterId }}'
                tenant_token: '{{ tenantToken }}'
                tenant_cloudproductcode: '{{ tenantCloudProductCode }}'
          - Name: '{{ serviceInstanceId }}'
      ClusterId:
        Fn::If:
          - Condition: CreateACKCondition
          - Ref: ManagedKubernetesCluster
          - Ref: ClusterId
Importante

Implante a aplicação do provedor de serviços neste namespace. O sistema de monitoramento roteia as métricas da aplicação para os locatários com base no namespace; portanto, aplicações fora deste namespace não terão suas métricas encaminhadas corretamente.

(Opcional) Referenciar o módulo AckArmsConfig para serviços single-tenant

Para serviços totalmente gerenciados single-tenant, o modelo ROS deve referenciar o módulo AckArmsConfig para cada novo cluster ACK criado, a fim de configurar o Managed Service for Prometheus automaticamente.

(Opcional) Monitorar métricas personalizadas usando portas HTTP ou exporters

Para coletar métricas personalizadas via portas HTTP ou exporters, nomeie o Service como {{ serviceInstanceId }} e especifique ServiceMonitor para descoberta de serviço. O exemplo a seguir usa mysqld-exporter para coletar métricas do MySQL.

apiVersion: v1
kind: Service
metadata:
  name: {{ serviceInstanceId }}
  labels:
    io.mysql.service: {{ serviceInstanceId }}
spec:
  selector:
    app: mysql
  ports:
    - protocol: TCP
      port: 3306
      targetPort: 3306
      name: mysql
    - protocol: TCP
      port: 9104
      targetPort: 9104
      name: mysql-exporter
  type: LoadBalancer

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: prometheus-service-monitor
  annotations:
    arms.prometheus.io/discovery: 'true'
  labels:
    prometheus-service-monitor: prometheus-service-monitor
spec:
  selector:
    matchLabels:
      io.mysql.service: {{ serviceInstanceId }}
  namespaceSelector:
    matchNames:
      - {{ serviceInstanceId }}
  endpoints:
    - port: mysql-exporter
      scheme: http
      path: /metrics
      interval: 10s
      scrapeTimeout: 10s

Etapa 3: Criar o painel do Grafana

Cada instância de serviço suporta exatamente um painel. Caso tenha vários painéis, combine-os em um único antes de prosseguir.

O painel deve usar namespace como variável global fixa para filtrar métricas por aplicação. Crie o painel no Alibaba Cloud Managed Grafana e copie a URL resultante — você precisará dela na próxima etapa.

Etapa 4: Configurar o identificador de produto e o link do painel

Antes que um serviço totalmente gerenciado multi-tenant possa usar os recursos do Managed Service for Prometheus do Compute Nest, especifique o identificador de produto e as configurações do painel.

  1. Defina o identificador de produto. Este identificador distingue exclusivamente um serviço no sistema de monitoramento. Para testes, use o identificador compartilhado cn-mariadb, aplicável a todos os serviços nas regiões China (Hangzhou) e China (Hong Kong).

    Para obter um identificador de produto exclusivo antes de publicar um serviço, entre em contato com o suporte técnico pelo grupo DingTalk (ID: 31045016300).
  2. Configure as definições do painel. Forneça o título e a URL do painel do Grafana criado na Etapa 3.

    As configurações do painel devem ser definidas manualmente com o auxílio do grupo DingTalk.

A captura de tela a seguir mostra a configuração para um serviço Prometheus de exemplo usando o identificador de produto cn-mariadb.

image

Etapa 5: Criar e aplicar um modelo de regra de alerta do Prometheus

  1. Faça login no console ARMS. Na página Prometheus Alert Rule Templates, crie um modelo de regra de alerta. Para mais detalhes, consulte Criar e gerenciar um modelo de regra de alerta.

  2. Obtenha o TemplateId a partir da resposta de rede no console ARMS:

    • Na área superior direita da página, altere All Check Types para Static Threshold (área 1).

    • Pressione F12 para abrir as ferramentas de desenvolvedor do navegador.

    • Na aba Network, localize a resposta contendo TemplateId (área 2) e copie o valor.

  3. Adicione um recurso ALIYUN::ARMS::ApplyAlertRuleTemplate a um modelo ROS para aplicar o modelo de regra de alerta ao cluster ACK. Essa ação cria as regras de alerta correspondentes no cluster.

    ROSTemplateFormatVersion: '2015-09-01'
    Description:
      en: ApplyAlertRule
    
    Parameters:
      ClusterIds:
        AssociationPropertyMetadata:
          Parameter:
            Required: true
            Type: String
            Description:
              en: The ID of the Prometheus instance.
        Description:
          en: The IDs of the Prometheus instances.
        Default: Null
        MinLength: 1
        Required: false
        MaxLength: 100
        AssociationProperty: List[Parameter]
        Type: Json
      TemplateIds:
        AssociationPropertyMetadata:
          Parameter:
            Required: true
            Type: String
            Description:
              en: The ID of the Prometheus alert rule template.
        Description:
          en: The IDs of the Prometheus alert rule templates.
        Default: Null
        MinLength: 1
        Required: false
        MaxLength: 100
        AssociationProperty: List[Parameter]
        Type: Json
    Resources:
      ApplyAlertRuleTemplate:
        Type: ALIYUN::ARMS::ApplyAlertRuleTemplate
        Properties:
          ClusterIds:
            Ref: ClusterIds
          TemplateIds:
            Ref: TemplateIds

    Para a referência completa de parâmetros, consulte ALIYUN::ARMS::ApplyAlertRuleTemplate.

Etapa 6: Visualizar dados de monitoramento

Após a implantação da instância de serviço do Prometheus, tanto provedores de serviços quanto locatários podem visualizar o painel na página de detalhes da instância de serviço.

  • Visão do locatário: Os locatários veem apenas as métricas de suas próprias instâncias de serviço.

    image

  • Visão do provedor de serviços: Os provedores de serviços acessam métricas de todas as instâncias de serviço dos locatários.

    image