mirror of
https://github.com/lukaszraczylo/graphql-monitoring-proxy.git
synced 2026-06-05 23:03:48 +00:00
Add configurable timeout for queries.
This commit is contained in:
@@ -122,6 +122,7 @@ In this case, both proxy and websockets will be available under the `/v1/graphql
|
||||
| `ENABLE_API` | Enable the monitoring API | `false` |
|
||||
| `API_PORT` | The port to expose the monitoring API | `9090` |
|
||||
| `BANNED_USERS_FILE` | The path to the file with banned users | `/go/src/app/banned_users.json` |
|
||||
| `PROXIED_CLIENT_TIMEOUT` | The timeout for the proxied client in seconds | `120` |
|
||||
|
||||
### Speed
|
||||
|
||||
|
||||
@@ -50,7 +50,8 @@ func parseConfig() {
|
||||
}
|
||||
return strings.Split(urls, ",")
|
||||
}()
|
||||
c.Client.FastProxyClient = createFasthttpClient()
|
||||
c.Client.ClientTimeout = envutil.GetInt("PROXIED_CLIENT_TIMEOUT", 120)
|
||||
c.Client.FastProxyClient = createFasthttpClient(c.Client.ClientTimeout)
|
||||
c.Server.EnableApi = envutil.GetBool("ENABLE_API", false)
|
||||
c.Server.ApiPort = envutil.GetInt("API_PORT", 9090)
|
||||
c.Api.BannedUsersFile = envutil.Getenv("BANNED_USERS_FILE", "/go/src/app/banned_users.json")
|
||||
|
||||
@@ -11,7 +11,7 @@ import (
|
||||
"github.com/valyala/fasthttp"
|
||||
)
|
||||
|
||||
func createFasthttpClient() *fasthttp.Client {
|
||||
func createFasthttpClient(timeout int) *fasthttp.Client {
|
||||
return &fasthttp.Client{
|
||||
Name: "graphql_proxy",
|
||||
NoDefaultUserAgentHeader: true,
|
||||
@@ -19,9 +19,9 @@ func createFasthttpClient() *fasthttp.Client {
|
||||
InsecureSkipVerify: true,
|
||||
},
|
||||
MaxConnsPerHost: 100,
|
||||
MaxIdleConnDuration: 2 * time.Minute,
|
||||
ReadTimeout: time.Second * 10,
|
||||
WriteTimeout: time.Second * 10,
|
||||
MaxIdleConnDuration: time.Duration(timeout*5) * time.Minute,
|
||||
ReadTimeout: time.Second * time.Duration(timeout),
|
||||
WriteTimeout: time.Second * time.Duration(timeout),
|
||||
DisableHeaderNamesNormalizing: true,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,6 +34,7 @@ type config struct {
|
||||
GQLClient *graphql.BaseClient
|
||||
FastProxyClient *fasthttp.Client
|
||||
proxy string
|
||||
ClientTimeout int
|
||||
}
|
||||
|
||||
Cache struct {
|
||||
|
||||
Reference in New Issue
Block a user