Explorar o código

raise prometheus timeouts

AjayTripathy %!s(int64=6) %!d(string=hai) anos
pai
achega
a8c6794afd
Modificáronse 1 ficheiros con 12 adicións e 1 borrados
  1. 12 1
      main.go

+ 12 - 1
main.go

@@ -4,6 +4,7 @@ import (
 	"context"
 	"encoding/json"
 	"flag"
+	"net"
 	"net/http"
 	"os"
 	"reflect"
@@ -375,8 +376,18 @@ func main() {
 		klog.Fatalf("No address for prometheus set in $%s. Aborting.", prometheusServerEndpointEnvVar)
 	}
 
+	var LongTimeoutRoundTripper http.RoundTripper = &http.Transport{ // may be necessary for long prometheus queries. TODO: make this configurable
+		Proxy: http.ProxyFromEnvironment,
+		DialContext: (&net.Dialer{
+			Timeout:   300 * time.Second,
+			KeepAlive: 300 * time.Second,
+		}).DialContext,
+		TLSHandshakeTimeout: 10 * time.Second,
+	}
+
 	pc := prometheusClient.Config{
-		Address: address,
+		Address:      address,
+		RoundTripper: LongTimeoutRoundTripper,
 	}
 	promCli, _ := prometheusClient.NewClient(pc)