brpc icon indicating copy to clipboard operation
brpc copied to clipboard

support customized server bvar prefix

Open jenrryyou opened this issue 3 years ago • 3 comments

通过ServerOption自定义Server的Bvar prefix。 目前bvar默认的前缀是rpc_server_{server监听的port},但是存在如下问题:

  1. 由于port改变(如使用range port或者其他port可能会改变的场景)导致bvar name变化,使得配置的dashboard和监控失效
  2. 为了支持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为空,则保持原来的逻辑。

jenrryyou avatar Jul 24 '22 13:07 jenrryyou

百度内部是通过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;
    }
}

可以看下哪种方式更方便一些。

wwbmmm avatar Jul 25 '22 02:07 wwbmmm

百度内部是通过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更合理一些。

jenrryyou avatar Jul 25 '22 02:07 jenrryyou

用gflag如果有多个server的情况不能区分各自server的指标,个人觉得这类server spefic的属性放server option更合理一些。

LGTM

wwbmmm avatar Aug 01 '22 04:08 wwbmmm