brpc
brpc copied to clipboard
support customized server bvar prefix
通过ServerOption自定义Server的Bvar prefix。 目前bvar默认的前缀是rpc_server_{server监听的port},但是存在如下问题:
- 由于port改变(如使用range port或者其他port可能会改变的场景)导致bvar name变化,使得配置的dashboard和监控失效
- 为了支持IPV6和Unix Domain socket,引入了ExtendedEndPoint,不过生成prefix存在BUG,会固定用EXTENDED_ENDPOINT_PORT(123456789)生成前缀(rpc_server_123456789),导致不同的Server bvar前缀相同。虽然修复不难,但是Unix Domain socket不太好处理,因为没有port信息,如果用file_path的话又太长。
基于以上考虑,最好还是用户通过ServerOption传入Server name生成prefix,如果name为空,则保持原来的逻辑。
百度内部是通过gflag来自定义server prefix的,代码大致如下:
std::string Server::ServerPrefix() const {
if (FLAGS_customized_server_prefix.empty()) {
return base::string_printf("%s_%d", g_server_info_prefix, listen_address().port);
} else {
return FLAGS_customized_server_prefix;
}
}
可以看下哪种方式更方便一些。
百度内部是通过gflag来自定义server prefix的,代码大致如下:
std::string Server::ServerPrefix() const { if (FLAGS_customized_server_prefix.empty()) { return base::string_printf("%s_%d", g_server_info_prefix, listen_address().port); } else { return FLAGS_customized_server_prefix; } }可以看下哪种方式更方便一些。
用gflag如果有多个server的情况不能区分各自server的指标,个人觉得这类server spefic的属性放server option更合理一些。
用gflag如果有多个server的情况不能区分各自server的指标,个人觉得这类server spefic的属性放server option更合理一些。
LGTM