【问题标题】:Failed to debug grpc channelz with web tool使用 web 工具调试 grpc channelz 失败
【发布时间】:2021-07-25 05:42:18
【问题描述】:

在这个文档A short introduction to Channelz 中,有一个名为grpc-zpages 的网络工具可以方便地通过网页提供channelz 数据。

但是,我们无法从该网络工具中找到任何 TopChannels 数据。有人遇到同样的问题吗?

为了让这个网络工具运行,代码有一些变化

  1. 将以下代码添加到http_filters of zprox.sh
                function envoy_on_response(response_handle)
                  filter_name = "ENVOY"
                  response_handle:headers():add("my_Filter", filter_name)
                end

解决错误envoy_on_response() function not found. lua filter will not hook responses

  1. 评论network_mode: 'host'start_docker.sh解决错误docker.errors.InvalidArgument: "host" network_mode is incompatible with port_bindings

  2. manual.GenerateAndRegisterManualResolver() 替换为

    r := manual.NewBuilderWithScheme("whatever")
    r.InitialState(resolver.State{Addresses: []resolver.Address{{Addr: ":10001"}, {Addr: ":10002"}, {Addr: ":10003"}}})

    // Set up a connection to the server.
    conn, err := grpc.Dial(r.Scheme()+":///test.server",
        grpc.WithInsecure(),
        grpc.WithResolvers(r),
        grpc.WithDefaultServiceConfig(`{"loadBalancingPolicy":"round_robin"}`),
    )

grpc 1.37.1

【问题讨论】:

    标签: grpc grpc-go


    【解决方案1】:

    请确保您已将 channelz 服务和反射服务添加到服务器。如果你的服务是客户端,你需要让客户端也有一个 grpc 服务器。调用服务器和通道连接后,即可获取相关数据。

    grpc-zpages 不再维护,很难使用。我建议使用channelzcli 替换。

    【讨论】:

      猜你喜欢
      • 2021-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-19
      • 1970-01-01
      相关资源
      最近更新 更多