> ## Documentation Index
> Fetch the complete documentation index at: https://villagesql.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Extensão prometheus_exporter para MySQL

> A extensão da comunidade prometheus_exporter serve um endpoint /metrics do Prometheus de dentro do MySQL, cobrindo variáveis de status, métricas do InnoDB e replicação.

Coletar métricas do MySQL para o Prometheus normalmente significa executar um
processo exportador separado, que faz login e consulta o servidor. O
`prometheus_exporter` serve o endpoint `/metrics` de dentro do servidor, então
há um processo a menos para implantar, autenticar e manter em funcionamento.

| | |
| - | - |
| **Mantenedor** | [ProxySQL](https://github.com/ProxySQL) |
| **Código-fonte e documentação** | [ProxySQL/vsql-prometheus-exporter](https://github.com/ProxySQL/vsql-prometheus-exporter) |
| **Licença** | GPL-2.0 |

> [!NOTE]
>
> Um terceiro escreve e mantém esta extensão. O VillageSQL não a compila, não a
> testa e não a distribui, e a descrição abaixo segue a documentação do próprio
> mantenedor. Leia essa documentação antes de depender dela.

## Instalar

> [!WARNING]
>
> O código no branch padrão do repositório não compila com o SDK atual: ele
> chama `make_sys_var_bool` e `make_status_var_int`, que saíram do SDK em maio
> de 2026. O código portado está no pull request aberto
> [#4](https://github.com/ProxySQL/vsql-prometheus-exporter/pull/4), que
> declara capabilities Preview, então o servidor que o carrega precisa ser
> iniciado com `--vsql_allow_preview_extensions=ON`.

Compile-o a partir desse branch com uma árvore de compilação do VillageSQL (`VillageSQL_BUILD_DIR`), copie o arquivo `.veb` para o `veb_dir` do servidor e, em seguida, instale-o:

```sql theme={null}
INSTALL EXTENSION prometheus_exporter;
```

## O que ela adiciona

Ela adiciona um listener HTTP e três configurações, e nenhuma função SQL.

| Configuração | Padrão | O que controla |
| - | - | - |
| `prometheus_exporter.enabled` | `OFF` | Se o listener está em execução |
| `prometheus_exporter.port` | `9104` | A porta em que ele escuta |
| `prometheus_exporter.bind_address` | `127.0.0.1` | O endereço ao qual ele se vincula |

Cinco famílias de métricas são exportadas, cada uma nomeada conforme a sua origem.

| Prefixo | Origem |
| - | - |
| `mysql_global_status_` | `SHOW GLOBAL STATUS` |
| `mysql_global_variables_` | As variáveis numéricas do servidor |
| `mysql_innodb_metrics_` | `information_schema.innodb_metrics` |
| `mysql_replica_` | As tabelas de replicação do `performance_schema`, em uma réplica |
| `mysql_binlog_` | `SHOW BINARY LOGS` |

O exportador também relata sobre si mesmo por meio de `requests_total`,
`scrape_duration_us` e `errors_total`.

## Exemplo

O início rápido do mantenedor ativa a extensão e escolhe uma porta:

```sql theme={null}
INSTALL EXTENSION prometheus_exporter;
SET GLOBAL prometheus_exporter.port = 9104;
SET GLOBAL prometheus_exporter.enabled = ON;
```

O Prometheus então coleta de `http://127.0.0.1:9104/metrics`. Se outro processo, como um `mysqld_exporter` independente, já ocupa a porta 9104, `enabled` continua mostrando `ON` e nada responde, então verifique o endpoint com `curl`.

> [!WARNING]
>
> O listener se vincula ao localhost a menos que você mude isso, o que é a
> escolha segura. As métricas descrevem o seu tráfego e a sua configuração,
> então coloque a porta atrás de algo que autentique antes de tirá-la do
> endereço de loopback.

## Veja também

* [Extensões disponíveis](https://villagesql.com/docs/pt-BR/extensions/catalog) — o catálogo completo
* [ProxySQL/vsql-prometheus-exporter](https://github.com/ProxySQL/vsql-prometheus-exporter) — código-fonte, a lista de métricas e a suíte de testes


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.