diff --git a/Release.md b/Release.md index ee1c07c6..678449d2 100644 --- a/Release.md +++ b/Release.md @@ -4,7 +4,7 @@ * `frpc reload` now refreshes certificate files for unchanged `https2http` and `https2https` proxies without interrupting existing connections. Failed refreshes keep the previous certificate and report the error in proxy status and logs while reload still succeeds. * Added `metricsServer` to both frps and frpc, a separate listener for health checks, metrics and optional profiling that does not expose the dashboard or the admin API. It is disabled unless `metricsServer.port` is set, defaults to `127.0.0.1`, and has its own credentials and TLS. Setting the port serves `/metrics` on both: frps exposes runtime and business metrics, so `enablePrometheus` is not needed there, and frpc exposes Go runtime metrics only, without linking an extra metrics library. - The `/healthz`, `/metrics` and pprof endpoints on `webServer`, and `enablePrometheus`, still work but are deprecated: configure `metricsServer` instead. They will be removed in a later release. + The `/healthz`, `/metrics` and pprof endpoints on `webServer`, `webServer.pprofEnable` and `enablePrometheus` still work but are deprecated: configure `metricsServer` instead. They will continue to work until v0.80.0 is released, and may be removed in v0.80.0 or later. ## Fixes diff --git a/doc/deprecations.md b/doc/deprecations.md index a5d394c5..48d5e425 100644 --- a/doc/deprecations.md +++ b/doc/deprecations.md @@ -6,6 +6,21 @@ For the version compatibility policy that bounds these support windows, see the ## Active +### Observability endpoints on `webServer` + +- **Deprecated since:** v0.72.0 (when `metricsServer` was added). +- **Removal target:** v0.80.0 or later. v0.71.x is the last line without `metricsServer` and is supported until v0.80.0 is released, so v0.79.x is the last release that must keep these endpoints. +- **Replacement:** `metricsServer`. Point health probes at its `/healthz`, scrapes at its `/metrics` (frps exposes business metrics there without `enablePrometheus`), and use `metricsServer.pprofEnable` for profiling. +- **Deprecated items:** `/healthz` on `webServer` in both frps and frpc; `/metrics` on the frps `webServer` and the top-level `enablePrometheus` that gates it; the pprof handlers on `webServer` and `webServer.pprofEnable` in both frps and frpc. +- **Code references:** + - `server/api_router.go` — `/healthz`, and `/metrics` when `enablePrometheus` is set. + - `client/api_router.go` — `/healthz`. + - `pkg/util/http/server.go` — pprof handlers registered when `webServer.pprofEnable` is set. + - `server/service.go` — startup deprecation warnings and `metricsCollectors`. + - `client/service.go` — startup deprecation warnings. + - `pkg/config/v1/server.go` — `EnablePrometheus`; `pkg/config/v1/common.go` — `WebServerConfig.PprofEnable`. +- **Notes:** Removal drops the startup warnings and the deprecation notes in `README.md` and the two `conf/*_full_example.toml` files together. `webServer` then serves only the dashboard and the admin API. + ### Wire protocol v1 - **Deprecated since:** v0.70.0 (planned, when v2 becomes the default).