Files
frp/Release.md
T
fatedierandGitHub 69ec4f0145 feat(client): serve Go runtime metrics on metricsServer (#5579)
Add pkg/metrics/text, a small Prometheus text-format writer, and use it
for frpc's /metrics. The endpoint lives only on metricsServer and is
covered by its Basic Auth, like the other endpoints there.

The package emits the Go runtime families and, on Linux, the process
families read from /proc. Their names, types and help strings match
client_golang's default collectors, so existing Go runtime dashboards
keep working. It deliberately emits no frp_ business metrics and none of
client_golang's promhttp_ handler metrics.

Writing the subset ourselves keeps client_golang and protobuf out of the
frpc binary; both are still used by frps and by the tests here.
2026-10-20 16:13:38 +08:00

1.2 KiB

Features

  • frpc can verify server certificates using system CAs, optionally combined with CAs from trustedCaFile.

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

Fixes

  • Fixed proxy and visitor configuration changes being lost when reloading frpc during reconnection.