> ## 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을 스크래핑하려면 보통 로그인해서 폴링하는 별도의
exporter 프로세스를 실행해야 합니다. `prometheus_exporter`는 대신 서버 안에서
`/metrics` 엔드포인트를 제공하므로, 배포하고 인증하고 살려 두어야 할 프로세스가
하나 줄어듭니다.

| | |
| - | - |
| **관리자** | [ProxySQL](https://github.com/ProxySQL) |
| **소스 및 문서** | [ProxySQL/vsql-prometheus-exporter](https://github.com/ProxySQL/vsql-prometheus-exporter) |
| **라이선스** | GPL-2.0 |

> [!NOTE]
>
> 이 확장 기능은 제3자가 작성하고 관리합니다. VillageSQL은 이를 빌드, 테스트,
> 배포하지 않으며, 아래 설명은 관리자의 자체 문서를 따릅니다. 이 확장 기능에
> 의존하기 전에 해당 문서를 읽으세요.

## 설치

> [!WARNING]
>
> 저장소의 기본 브랜치에 있는 코드는 현재 SDK로 빌드되지 않습니다. 해당 코드는
> 2026년 5월에 SDK에서 제거된 `make_sys_var_bool`과 `make_status_var_int`를
> 호출합니다. 포팅된 코드는 열려 있는 풀 리퀘스트
> [#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` |

exporter는 `requests_total`, `scrape_duration_us`, `errors_total`을 통해
자기 자신의 상태도 보고합니다.

## 예제

관리자의 빠른 시작은 exporter를 켜고 포트를 지정합니다:

```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/ko/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.