---
title: Exportar Metricas do Istio
slug: aiops/exportar-metricas-do-istio
docTags: 
createdAt: 2025-07-02T21:56:53.410Z
---

Essa documentação fornece uma visão de como configurar a exportação de métricas de um cluster com Istio via Prometheus.

## Pré requisitos

- Verifique o melhor método para instalar o Istio no seu ambiente e siga uma das duas formas de instalação: [ambient mode](https://istio.io/latest/docs/ambient/) ou [sidecar mode](https://istio.io/latest/docs/setup/). Se quiser saber mais sobre os métodos de instalação leia ["sidecar ou ambient mode?"](https://istio.io/latest/docs/overview/dataplane-modes/) e também ["qual método devo usar?"](https://istio.io/latest/about/faq/#install-method-selection).
- Ter instalado o **prometheus** no cluster. A melhor maneira é usar os arquivos de implantação fornecidos pelo Istio como é mostrado neste [link](https://istio.io/latest/docs/ambient/getting-started/secure-and-visualize/#add-bookinfo-to-the-mesh). Instalar o Kilai é opcional.
- Se instalado pelo "sidecar mode" adicionar os sidecars nos pods colocando as labels nos namespaces desejados: "**istio-injection=enabled**". Siga essas [instruções](https://istio.io/latest/docs/setup/additional-setup/sidecar-injection/).

:::hint{type="info"}
Lembre-se de instalar o CLI do Istio e também o **Gateway API CRDs** como mostrado neste [link](https://istio.io/latest/docs/ambient/getting-started/).

Rode o comando "rollout" nos pods para a injeçãos dos sidecars.
:::

:::hint{type="warning"}
Por segurança adicionar mTLS authentication ou outro tipo de autenticação como explicado nesse [link](https://istio.io/latest/docs/tasks/security/authentication/).
:::

## Adicionando anotações ao Istio Ingress Gateway e Pilot

Crie ou edite um recurso **IstioOperator** para incluir as anotações necessárias. As anotações devem ser adicionadas tanto ao **ingressGateway** quanto ao **pilot** para que o Prometheus possa coletar métricas corretamente como mostrado abaixo:

:::CodeblockTabs
yaml

```yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  namespace: istio-system
  name: istio-operator
spec:
  profile: default
  components:
    pilot:
      k8s:
        podAnnotations:
          prometheus.io/port: "15014"
          prometheus.io/scrape: "true"
          prometheus.io/path: "/metrics"
    ingressGateways:
    - name: istio-ingressgateway
      enabled: true
      k8s:
        podAnnotations:
          prometheus.io/port: "15090"
          prometheus.io/scrape: "true"
          prometheus.io/path: "/stats/prometheus"
  values:
    gateways:
      istio-egressgateway:
        enabled: false
```
:::

O proxy sidecar do Istio (geralmente Envoy) expõe métricas na porta **15090** e no caminho **'/stats/prometheus'**.

Aplique o recurso:

:::CodeblockTabs
bash

```linux
istioctl manifest apply -f istio-operator.yaml
```
:::

### Atualizar a configuração do Prometheus:

Edite o ConfigMap do Prometheus para adicionar a URL de **remote\_write.** Isso indicará ao Prometheus onde enviar as métricas:

:::CodeblockTabs
bash

```yaml
kubectl edit cm prometheus -n istio-system
```
:::

Adicionar na mesma indentaç ão de "global" o `remote_write`:

:::CodeblockTabs
yaml

```yaml
global:
  scrape_interval: 15s
remote_write:
  - url: http://<AIOPS-VMETRICS-IP>:8428/api/v1/write
```
:::

Substitua **\<AIOPS-VMETRICS-IP>** pelo endereço IP ou hostname para receber as métricas.

### Reiniciar o Servidor Prometheus

Após feita as alterações, é necessário reiniciar o deployment do Prometheus para que as novas configurações sejam aplicadas:

:::CodeblockTabs
bash

```linux
kubectl rollout restart deployment/prometheus -n istio-system
```
:::

