У меня есть следующий простой обратный прокси:
func main() {
go func() {
for range time.NewTicker(30 * time.Second).C {
log.Println("NUMBER OF OPEN CONNECTIONS")
}
}()
http.HandleFunc("/", handleRequestAndRedirect)
if err := http.ListenAndServe(getListenAddress(), nil); err != nil {
panic(err)
}
}
func handleRequestAndRedirect(res http.ResponseWriter, req *http.Request) {
serveReverseProxy("https://example.com", res, req)
}
func serveReverseProxy(target string, res http.ResponseWriter, req *http.Request) {
url, _ := url.Parse(target)
req.URL.Host = url.Host
req.URL.Scheme = url.Scheme
req.Host = url.Host
proxy := httputil.NewSingleHostReverseProxy(url)
proxy.ServeHTTP(res, req)
}
Все, что я пытаюсь выяснить, как это сделать, это печатать текущее количество открытых TCP-соединений каждые 30 секунд. Есть ли какое-либо свойство, к которому я могу получить доступ в http или httputil для этого? Есть ли способ, которым я могу отслеживать это сам с минимальными изменениями в коде?
Спасибо.