| title | TiProxy API |
|---|---|
| summary | 了解如何使用 TiProxy API 获取 TiProxy 的配置、健康状况和监控数据等信息。 |
TiProxy 提供 API 接口,用于获取其配置、健康状况以及监控数据等信息。
注意:
TiProxy API 主要用于诊断调试,不保证与 TiProxy 未来引入的新特性完全兼容。因此不推荐在应用程序开发或工具开发中利用 TiProxy API 获取结果。
TiProxy API 的地址为 http://${host}:${port}${path},其中 ${host}:${port} 为 TiProxy 配置项 api.addr 的值,${path} 为你要访问的具体 API 的路径。例如:
curl http://127.0.0.1:3080/api/admin/config/GET /api/admin/config/
查询参数:
format:(可选)指定返回配置的格式,可选值为json和toml,默认值为toml。
以下示例获取 JSON 格式的 TiProxy 配置:
curl "http://127.0.0.1:3080/api/admin/config/?format=json"目前,仅支持使用 TOML 格式修改 TiProxy 的配置。未指定的配置项将保持不变,因此只需指定需要更改的配置项。
PUT /api/admin/config/
TOML 格式的 TiProxy 的配置,例如:
[log]
level='warning'以下示例将 log.level 设置为 'warning',其他配置项的值保持不变。
-
查看当前 TiProxy 的配置:
curl http://127.0.0.1:3080/api/admin/config/
输出结果如下:
[log] encoder = 'tidb' level = 'info'
-
在
test.toml文件中指定log.level的值,并发送PUT /api/admin/config/请求更新log.level的值:$ cat test.toml [log] level='warning' $ curl -X PUT --data-binary @test.toml http://127.0.0.1:3080/api/admin/config/ -
查看修改后的 TiProxy 配置:
curl http://127.0.0.1:3080/api/admin/config/
输出结果如下:
[log] encoder = 'tidb' level = 'warning'
用于获取 TiProxy 的健康状况以及配置的校验和 (checksum)。当 TiProxy 正常运行时,返回配置的 checksum。当 TiProxy 处于关闭状态或者正在关闭时,返回错误。
GET /api/debug/health
curl http://127.0.0.1:3080/api/debug/health输出结果示例:
{"config_checksum":3006078629}GET /metrics/
curl http://127.0.0.1:3080/metrics/你可以通过启用 server-http-tls,并在 security 部分的 server-http-tls 子配置中设置 cert-allowed-cn 选项,来限制对 TiProxy API 的访问。TiProxy 会使用客户端证书中的通用名 (Common Name, CN) 来认证组件调用者身份。
如果未启用 TLS,你可以通过防火墙规则来控制访问。