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

# MySQL 的 prometheus_exporter 扩展

> 社区扩展 prometheus_exporter 从 MySQL 内部提供 Prometheus /metrics 端点，覆盖状态变量、InnoDB 指标和复制。

为 Prometheus 抓取 MySQL 指标通常意味着运行一个单独的导出器进程，
由它登录并轮询。`prometheus_exporter` 改为从服务器内部提供 `/metrics`
端点，因此少了一个需要部署、认证和保持运行的进程。

| | |
| - | - |
| **维护者** | [ProxySQL](https://github.com/ProxySQL) |
| **源代码和文档** | [ProxySQL/vsql-prometheus-exporter](https://github.com/ProxySQL/vsql-prometheus-exporter) |
| **许可证** | GPL-2.0 |

> [!NOTE]
>
> 此扩展由第三方编写和维护。VillageSQL 不构建、测试或发布它，
> 下面的描述遵循维护者自己的文档。在依赖它之前，请先阅读该文档。

## 安装

> [!WARNING]
>
> 存储库默认分支上的代码无法针对当前 SDK 构建：它调用了
> `make_sys_var_bool` 和 `make_status_var_int`，这两个函数已于 2026 年 5 月
> 从 SDK 中移除。移植后的代码在未合并的拉取请求
> [#4](https://github.com/ProxySQL/vsql-prometheus-exporter/pull/4) 上，
> 该代码声明了预览能力，因此加载它的服务器必须以
> `--vsql_allow_preview_extensions=ON` 启动。

针对 VillageSQL 构建树（`VillageSQL_BUILD_DIR`）从该分支构建它，将 `.veb` 文件复制到服务器的 `veb_dir` 中，然后安装它：

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

## 新增内容

它添加了一个 HTTP 监听器和三个设置，不添加 SQL 函数。

| 设置 | 默认值 | 控制内容 |
| - | - | - |
| `prometheus_exporter.enabled` | `OFF` | 监听器是否运行 |
| `prometheus_exporter.port` | `9104` | 监听的端口 |
| `prometheus_exporter.bind_address` | `127.0.0.1` | 绑定的地址 |

导出五类指标，每类按其来源命名。

| 前缀 | 来源 |
| - | - |
| `mysql_global_status_` | `SHOW GLOBAL STATUS` |
| `mysql_global_variables_` | 数值型服务器变量 |
| `mysql_innodb_metrics_` | `information_schema.innodb_metrics` |
| `mysql_replica_` | 副本上的 `performance_schema` 复制表 |
| `mysql_binlog_` | `SHOW BINARY LOGS` |

导出器还通过 `requests_total`、`scrape_duration_us` 和 `errors_total`
报告自身状态。

## 示例

维护者的快速入门会启用它并选择一个端口：

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

然后 Prometheus 抓取 `http://127.0.0.1:9104/metrics`。如果另一个进程（例如独立的 `mysqld_exporter`）已经占用了端口 9104，`enabled` 仍会显示 `ON`，但没有任何进程响应，因此请用 `curl` 检查该端点。

> [!WARNING]
>
> 除非您更改设置，否则监听器绑定到 localhost，这是安全的选择。
> 指标描述了您的流量和配置，因此在把端口移出环回地址之前，
> 请先把它放在某种认证机制之后。

## 另请参阅

* [可用扩展](https://villagesql.com/docs/zh/extensions/catalog) — 完整目录
* [ProxySQL/vsql-prometheus-exporter](https://github.com/ProxySQL/vsql-prometheus-exporter) — 源代码、指标列表和测试套件


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