Todos os produtos
Search
Central de documentação

Compute Nest:Configure monitoring and alerts for fully managed services - ACK deployment solution

Última atualização: Aug 31, 2026

Este tópico descreve como os provedores de service podem configurar monitoramento e alertas para serviços totalmente gerenciados do Compute Nest implantados no Container Service for Kubernetes (ACK).

Nota

O processo de integração do Managed Service for Prometheus é o mesmo para serviços totalmente gerenciados single-tenant (com cluster dedicado por usuário) e multi-tenant (com cluster compartilhado). Em ambos os cenários, configure o Managed Service for Prometheus no cluster do Container Service for Kubernetes (ACK) para encaminhar as métricas do tenant. Assim, tenants e provedores de service podem visualizar as métricas de monitoramento da instância de service. (Para suporte técnico, entre no grupo do DingTalk: 31045016300)

Como funciona

image

  • O Compute Nest utiliza o Managed Service for Prometheus, recurso do Application Real-Time Monitoring Service (ARMS), como solução de monitoramento multi-tenant.

  • O Managed Service for Prometheus oferece suporte nativo a multi-tenancy. Na coleta de dados, o agente aplica rótulos específicos de tenant aos recursos de workload (no nível de Pod ou namespace) para diferenciar as métricas e encaminhá-las às respectivas instâncias de service na cloud.

  • O armazenamento fornece isolamento multi-tenant nativo. Os provedores de service precisam apenas adicionar rótulos específicos aos recursos de workload de cada tenant.

  • O Compute Nest usa namespaces para isolar recursos em instâncias de service totalmente gerenciadas multi-tenant. Ao adicionar os rótulos correspondentes a um namespace, o sistema encaminha automaticamente as métricas para a respectiva instância de service na cloud.

  • Também é possível configurar o remote write para enviar uma cópia dos dados de monitoramento de cada tenant à conta do provedor de service. Dessa forma, o provedor visualiza os dados de todos os tenants, enquanto cada tenant acessa apenas seus próprios dados.

Procedimento

Etapa 1: Configurar o Managed Service for Prometheus para o ACK

Por padrão, o Prometheus não suporta encaminhamento de métricas. Aplique configurações adicionais no Managed Service for Prometheus para encaminhar métricas de monitoramento de aplicações a usuários específicos.

Serviço single-tenant

Para serviços totalmente gerenciados single-tenant, o Compute Nest encapsula essa configuração em um módulo de modelo ROS pronto para uso.

  1. Ao criar o service, adicione o seguinte conteúdo ao modelo ROS. As seções abaixo apresentam um modelo de exemplo e descrevem seus parâmetros.

    • Modelo de exemplo:

      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:

      • WhetherSupplierNeedMetric: Especifica se o provedor de service precisa receber dados do tenant. Caso o provedor também precise receber métricas, defina este valor como true. Se WhetherSupplierNeedMetric for true, configure obrigatoriamente as propriedades AccessKeyID, AccessKeySecret e SupplierAliuid. O SupplierAliuid corresponde ao UID da conta Alibaba Cloud do provedor de service, enquanto AccessKeyID e AccessKeySecret formam o par de AccessKey do provedor.

        Importante

        Para seguir o princípio do menor privilégio, conceda à AccessKey (AK) apenas permissão para chamar a API arms:GetPrometheusApiToken. Isso basta para coleta de dados e consultas em cenários de monitoramento.

        {
          "Version": "1",
          "Statement": [
            {
              "Effect": "Allow",
              "Action": [
                "arms:GetPrometheusApiToken"
              ],
              "Resource": "*"
            }
          ]
        }
      • SyncServiceMonitor: Define se os recursos ServiceMonitor do cluster devem ser sincronizados automaticamente. Use esta opção para selecionar os recursos Service a monitorar. Para mais informações, consulte Create service discovery by using a ServiceMonitor.

      • SyncPodMonitor: Determina se os recursos PodMonitor do cluster serão sincronizados automaticamente.

  2. (Opcional) Caso crie um novo cluster ACK com um modelo ROS, adicione o parâmetro Addons ao recurso ACK conforme mostrado abaixo.

    LoginPassword:
            Ref: LoginPassword
          SnatEntry: true
          Addons:
            - Name: flannel
              Config: ''
            - Name: arms-prometheus

Serviço multi-tenant

Para serviços totalmente gerenciados multi-tenant, o Compute Nest disponibiliza o service Cenário multi-tenant totalmente gerenciado do ACK - implantação de infraestrutura de contêineres. Crie uma instância desse service para configurar o Managed Service for Prometheus no cluster ACK.

Importante

Para respeitar o princípio do menor privilégio, conceda à AK somente permissão para chamar a API arms:GetPrometheusApiToken. Essa permissão atende plenamente às necessidades de coleta e consulta de dados em cenários de monitoramento.

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

Etapa 2: Configurar o modelo ROS

  1. Crie um namespace com o nome do ID da instância de service e adicione rótulos de tenant a ele.

    Nota

    As chaves dos rótulos de tenant são tenant_userid, tenant_clusterid, tenant_token e tenant_cloudproductcode. O modelo ROS utiliza placeholders para esses valores. O namespace recebe o nome do placeholder {{ serviceInstanceId }}, substituído pelo ID da service instance 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 service no namespace criado na etapa anterior para garantir que as métricas de monitoramento sejam roteadas ao tenant correto.

  2. (Opcional) No cenário de service totalmente gerenciado single-tenant, use o módulo AckArmsConfig no modelo ROS para configurar o Managed Service for Prometheus em cada novo cluster ACK criado.

  3. (Opcional) Para coletar métricas personalizadas, exponha-as por uma porta HTTP ou com um exporter. Nomeie o Service que expõe as métricas como {{ serviceInstanceId }} e defina um ServiceMonitor para descoberta de serviços. O exemplo a seguir mostra o Service e o ServiceMonitor usados para coletar métricas do MySQL com o mysqld-exporter.

    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: Configurar o painel do Grafana

Cada instância de service suporta apenas um painel. Caso tenha múltiplos painéis, consolide-os em um único. O painel deve atender ao seguinte requisito:

Crie uma variável de painel chamada Namespace e use-a como filtro global para as métricas de monitoramento da aplicação. Crie o painel no Managed Service for Grafana e obtenha o link correspondente.

Etapa 4: Configurar o identificador do product e o link do painel

Para usar o Managed Service for Prometheus com um service totalmente gerenciado multi-tenant do Compute Nest, configure o identificador do product e as informações do painel de monitoramento.

  1. Identificador do product: Identifica exclusivamente o service no sistema de monitoramento. Para testes, use o identificador compartilhado cn-mariadb, disponível nas regiões China (Hangzhou) e China (Hong Kong).

    Nota

    O uso em produção exige um identificador de product dedicado. Para obter um, entre no grupo de suporte técnico mencionado no início deste tópico.

  2. As configurações do painel de monitoramento incluem título e link do painel do Grafana, com mapeamento um para um com o identificador de product.

    Nota

    Atualmente, esta configuração requer setup manual. Entre no grupo de suporte técnico para obter assistência.

  3. Abaixo está a configuração de um service de exemplo que usa o identificador cn-mariadb. Com cn-mariadb, é possível utilizar a configuração padrão do painel de monitoramento, cujo título é MySQL Exporter Quickstart and Dashboard.

Etapa 5: Configurar alertas

  1. Acesse o console do ARMS para Prometheus Monitoring e crie um modelo de regra de alerta do Prometheus. Para mais informações, consulte Create a Prometheus alert rule template.

  2. Após criar o modelo, obtenha o TemplateId nas requisições de rede do console, conforme descrito abaixo.

    Importante

    A requisição de rede correspondente aparece somente após aplicar um filtro de busca.

    Na página de modelos de regras de alerta, use a lista suspensa static threshold na parte superior para filtrar e pesquisar. Uma requisição alert.json?action=AlertTemplateAction aparecerá no painel Network das DevTools do navegador. Clique em na requisição e visualize a aba Response. No JSON retornado, localize o campo id (por exemplo, d9a9fb3b-47a9-4338-84f5-93240e03b4ee). Este valor corresponde ao TemplateId necessário.

  3. No modelo ROS, defina e aplique o modelo de regra de alerta ao cluster ACK com o recurso ALIYUN::ARMS::ApplyAlertRuleTemplate para criar as regras de alerta correspondentes no cluster. O exemplo a seguir mostra um trecho do modelo ROS.

    ROSTemplateFormatVersion: '2015-09-01'
    Description:
      en: ApplyAlertRule
      zh-cn: ApplyAlertRule
    Parameters:
      ClusterIds:
        AssociationPropertyMetadata:
          Parameter:
            Required: true
            Type: String
            Description:
              en: The ID of the Prometheus Instance.
        Description:
          en: The IDs list of 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 list of 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

Etapa 6: Visualizar dados de monitoramento

Após a implantação da instância de service, tanto o tenant quanto o provedor de service podem visualizar o painel de monitoramento na página de detalhes da instância.

  • Visualização do tenant:image

  • Visualização do provedor de service:image