Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Mesclar métricas do Istio com métricas de aplicação

Última atualização: Jun 28, 2026

Em aplicações integradas ao Prometheus, use sidecar proxies para expor métricas da aplicação ao mesclar as métricas do Istio com as métricas da aplicação. Este tópico descreve como realizar essa mesclagem.

Pré-requisitos

Crie uma instância do Service Mesh (ASM) na versão 1.17.2.30 ou posterior. Para mais informações, consulte Criar uma instância ASM ou Atualizar uma instância ASM.

Importante

Este recurso não é adequado para cenários em que as métricas da aplicação são sensíveis. O sistema coleta as métricas da aplicação juntamente com as métricas do Istio. Usuários com permissão para visualizar métricas do Istio também podem visualizar as métricas da aplicação.

Descrição do recurso

Ao ativar a mesclagem de métricas do Istio com métricas de aplicação, o ASM combina ambas as fontes de dados. O sistema adiciona as anotações prometheus.io da aplicação a todos os pods no plano de dados para habilitar a coleta de métricas do Prometheus. Caso essas anotações já existam, elas serão sobrescritas. Os sidecar proxies mesclam as métricas do Istio com as da aplicação, e o Prometheus obtém o resultado consolidado pelo endpoint :15020/stats/prometheus.

Após a ativação deste recurso, o ASM executa as seguintes operações nos pods:

  • Os métodos de coleta definidos pelas anotações prometheus.io antes da introdução do ASM são preservados nas variáveis de ambiente dos sidecar proxies.

  • As métricas do Prometheus geradas pelas aplicações interceptadas pelo ASM e as métricas dos sidecar proxies são mescladas e exportadas para o endpoint :15020/stats/prometheus para coleta pelo Prometheus.

Etapa 1: Implantar uma aplicação de exemplo

Implante uma aplicação que contenha anotações prometheus.io. Para mais detalhes, consulte Implantar uma aplicação em uma instância ASM.

O código abaixo apresenta um exemplo de arquivo de deployment para a aplicação productpage:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: productpage-v1
  labels:
    app: productpage
    version: v1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: productpage
      version: v1
  template:
    metadata:
      annotations:
        prometheus.io/scrape: "true"
        prometheus.io/port: "9080"
        prometheus.io/path: "/metrics"
      labels:
        app: productpage
        version: v1
    spec:
      ......

Após a implantação da aplicação productpage, o sistema gera as seguintes informações de pod:

apiVersion: v1
kind: Pod
metadata:
  annotations:
    k8s.aliyun.com/pod-ips: 172.17.0.132
    kubectl.kubernetes.io/default-container: productpage
    kubectl.kubernetes.io/default-logs-container: productpage
    kubernetes.io/psp: ack.privileged
    prometheus.io/path: /metrics
    prometheus.io/port: '9080'
    prometheus.io/scrape: 'true'

No modelo YAML anterior, observe as seguintes anotações prometheus.io:

prometheus.io/path: /metrics
prometheus.io/port: '9080'
prometheus.io/scrape: 'true'

Etapa 2: Ativar a mesclagem de métricas do Istio com métricas de aplicação

Por padrão, esse recurso vem desativado nas instâncias ASM. Configure-o globalmente para toda a instância ou individualmente para cada workload adicionando a anotação prometheus.istio.io/merge-metrics: "true" aos pods da aplicação. Neste exemplo, a configuração será aplicada à instância ASM.

  1. Faça login no console ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique em nome da instância ASM. No painel de navegação à esquerda, escolha ASM Instance > Base Information.

  3. Na seção Config Info, clique em Enable ao lado de Merge Istio's Metrics with Application Metrics. Na mensagem Enable Merging of Istio's Metrics with Application Metrics, clique em OK.

Nota

Caso não precise mais utilizar este recurso, desative-o executando uma das operações a seguir:

  • Se o recurso estiver ativado para uma instância ASM, clique em Disable ao lado de Merge Istio's Metrics with Application Metrics na seção Config Info. Na mensagem Disable Merging of Istio's Metrics with Application Metrics, clique em OK.

  • Se o recurso estiver ativado para um workload específico, adicione a anotação prometheus.istio.io/merge-metrics: "false" ao pod correspondente.

Etapa 3: Visualize o resultado

Depois de ativar a mesclagem de métricas do Istio com as métricas da aplicação, reinicie o pod e verifique as novas informações.

O exemplo abaixo mostra o modelo YAML atualizado do pod:

apiVersion: v1
kind: Pod
metadata:
  annotations:
    k8s.aliyun.com/pod-ips: 172.17.0.126
    kubectl.kubernetes.io/default-container: productpage
    kubectl.kubernetes.io/default-logs-container: productpage
    kubernetes.io/psp: ack.privileged
    prometheus.io/path: /stats/prometheus
    prometheus.io/port: '15020'
    prometheus.io/scrape: 'true'
    ......
spec:
  containers:
    - args:
        - proxy
        - sidecar
        ......
      env:
        ......
        - name: ISTIO_PROMETHEUS_ANNOTATIONS
          value: '{"scrape":"true","path":"/metrics","port":"9080"}'
                

O modelo YAML acima demonstra que as anotações prometheus.io foram atualizadas para o conteúdo seguinte. Além disso, uma nova variável de ambiente chamada ISTIO_PROMETHEUS_ANNOTATIONS foi incluída. O trecho de código a seguir confirma que o valor dessa variável corresponde exatamente às anotações prometheus.io originalmente configuradas na aplicação.

prometheus.io/path: /stats/prometheus
prometheus.io/port: '15020'
prometheus.io/scrape: 'true'