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

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-mariadbpara 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 |
|
|
Sim |
ID do cluster ACK. Faz referência a |
|
|
Sim |
Defina como |
|
|
Condicional |
AccessKey ID da conta do provedor de serviços. Necessário quando |
|
|
Condicional |
AccessKey Secret da conta do provedor de serviços. Necessário quando |
|
|
Condicional |
UID da conta Alibaba Cloud do provedor de serviços. Necessário quando |
|
|
Não |
Defina como |
|
|
Não |
Defina como |
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.

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
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.
-
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).
-
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.

Etapa 5: Criar e aplicar um modelo de regra de alerta do Prometheus
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.
-
Obtenha o
TemplateIda 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.
-
Adicione um recurso
ALIYUN::ARMS::ApplyAlertRuleTemplatea 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: TemplateIdsPara 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.

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