performance - 等待 header 时超出客户端超时

标签 performance go newrelic newrelic-platform

我得到以下错误,我使用的是 go v1.10.4 linux/amd64。

我不在任何防火墙或任何防火墙后面。我们运行良好的java服务器(同一网段)中的新Relic。

我们已经尝试过:

  • 将超时增加到 60 秒
  • 在服务器中使用 http2
  • 使用 Postman 返回 503 响应:

    {"exception":{"message":"Server Error","error_type":"RuntimeError"}}

  • 使用 ./nrdiag 进行故障排除说“未发现问题”

  • 下面是我们的代码:

        config := newrelic.NewConfig(os.Getenv("NEW_RELIC_APP_NAME"), os.Getenv("NEW_RELIC_KEY"))
    
        config.Logger = newrelic.NewDebugLogger(os.Stdout)
    
        app, err := newrelic.NewApplication(config)
        if err != nil {
            fmt.Println("Failed to create newrelic application", err)
            os.Exit(1)
        }
    
    .................
    
            httpListener, err := net.Listen("tcp", *httpAddr)
            if err != nil {
                oldlog.Print("Error: ", err)
                logger.Log("transport", "HTTP", "during", "Listen", "err", err)
                os.Exit(1)
            }
            g.Add(func() error {
                logger.Log("transport", "HTTP", "addr", *httpAddr)
                return http.Serve(httpListener, nrgorilla.InstrumentRoutes(httpHandler, app))
            }, func(error) {
                httpListener.Close()
            })
        }
    

    然而这是我们得到的,注意 some_key 被删除了:

    (28422) 2019/07/29 18:08:50.058559 {"level":"warn","msg":"application connect failure","context":{"error":"Post https://collector-001.eu01.nr-data.net/agent_listener/invoke_raw_method?license_key=some_key\u0026marshal_format=json\u0026method=connect\u0026protocol_version=17: net/http: request canceled (Client.Timeout exceeded while awaiting headers)"}}

    最佳答案

    我认为这是由于 DNS 网络超时。

    您可以使用以下步骤轻松测试这一点(在 Ubuntu 中)

  • 选择 IPv4 设置选项卡。
  • 禁用“自动”切换开关并输入 DNS 解析器的 IP 地址,以逗号分隔。我们将使用 Google DNS 域名服务器:

    8.8.8.8,8.8.4.4

  • 如果它有效,那么您可以将 DNS 重置为“自动”

    关于performance - 等待 header 时超出客户端超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57269104/

    相关文章:

    Java:[性能]存储和搜索<Integer,Integer>最常出现的一个

    go - 如何模块化处理函数和路由

    go - 我想知道如何将 set struct 实现为映射值

    python - 希望量化 python django app 中 NewRelic 监控的性能开销

    ios - 新的Relic Agent iOS未捕获异常(std::runtime_error)

    java - 使用 MTOM 的 WS 下载操作

    ios - KineticJS 在 iPad 2 上非常慢

    go - 对具有大量指针(尤其是数字)的结构进行操作

    NewRelic incrementCounter 不工作

    powershell - 从 | 中删除 3,7 和 9 列的速度很慢使用 PowerShell 分离 txt 文件