Todos os produtos
Search
Central de documentação

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

Última atualização: Sep 12, 2026

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

Pré-requisitos

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

Importante

Este recurso não é adequado para cenários com métricas de aplicação sensíveis. A coleta das métricas da aplicação ocorre em conjunto com as do Istio. Portanto, usuários autorizados a visualizar métricas do Istio também terão acesso às métricas da aplicação.

Descrição do recurso

Ao ativar a mesclagem de métricas do Istio com as da aplicação, o ASM combina ambos os conjuntos de dados. O sistema adiciona as anotações prometheus.io da aplicação a todos os pods no plano de dados, habilitando a coleta de métricas pelo Prometheus. Se essas anotações já existirem, serão sobrescritas. Os sidecar proxies mesclam as métricas do Istio com as da aplicação, permitindo que o Prometheus obtenha os dados mesclados no endpoint :15020/stats/prometheus.

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

  • Salva nas variáveis de ambiente dos sidecar proxies os métodos de coleta anotados com prometheus.io antes da introdução do ASM.

  • O sidecar proxy mescla as métricas do Prometheus da aplicação com as próprias métricas e expõe o resultado combinado no 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 informações, consulte Implante uma aplicação em uma instância do ASM.

O código abaixo exemplifica o arquivo de deployment da 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 da aplicação

Por padrão, esse recurso permanece desativado nas instâncias do ASM. Configure-o globalmente para uma instância do ASM 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 aplica-se à instância do ASM.

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

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

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

Nota

Se não precisar mais utilizar este recurso, desative-o executando uma das seguintes operações:

  • Globalmente: Na seção Config Info, clique em Disable ao lado de Merge Istio's Metrics with Application Metrics. Na caixa de diálogo Disable Merging of Istio's Metrics with Application Metrics, clique em OK.

  • Para workloads específicos, adicione a anotação prometheus.istio.io/merge-metrics: "false" ao pod correspondente.

Etapa 3: Visualizar o resultado

Após ativar a mesclagem de métricas do Istio com as da aplicação, reinicie o pod e visualize as informações atualizadas.

O código abaixo exemplifica o modelo YAML 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 anterior demonstra a atualização das anotações prometheus.io para o conteúdo abaixo. Além disso, o sistema adicionou a variável de ambiente ISTIO_PROMETHEUS_ANNOTATIONS. O exemplo de código a seguir confirma que o valor dessa variável corresponde às anotações prometheus.io configuradas originalmente na aplicação.

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