什么是内置服务
内置服务以多种形式展现服务器内部状态,提高你开发和调试服务的效率。brpc 通过 HTTP 协议提供内置服务,可通过浏览器或 curl 访问,服务器会根据 User-Agent 返回纯文本或 html,你也可以添加 ?console=1 要求返回纯文本。如果服务端口被限(比如不是所有的端口都能被笔记本访问到),可以使用 rpc_view 转发。
下面是分别从浏览器和终端访问的截图:
从浏览器访问

从命令行访问

安全模式
出于安全考虑,直接对外服务需要隐藏内置服务(包括经过 nginx 或其他 http server 转发流量的),具体方法见 server 一文中的安全模式部分。
主要服务
/status:显示所有服务的主要状态。/vars:用户可定制的,描绘各种指标的计数器。/connections:所有连接的统计信息。/flags:所有 gflags 的状态,可动态修改。/rpcz:查看所有的 RPC 的细节。- cpu profiler:分析 cpu 热点。
- heap profiler:分析内存占用。
- contention profiler:分析锁竞争。
其他服务
/version
查看服务器的版本。用户可通过 Server::set_version() 设置 Server 的版本,如果用户没有设置,框架会自动为用户生成,规则:brpc_server_<service-name1>_<service-name2> ...

/health
探测服务的存活情况。

/protobufs
查看程序中所有的 protobuf 结构体。

/vlog
查看程序中当前可开启的 VLOG(对 glog 无效)。

/dir 与 /threads
/dir:浏览服务器上的所有文件,方便但非常危险,默认关闭。/threads:查看进程内所有线程的运行状况,调用时对程序性能影响较大,默认关闭。