mirror of
https://github.com/prymitive/karma
synced 2026-08-19 11:36:24 +00:00
feat(backend): add http server timeouts
This commit is contained in:
committed by
Łukasz Mierzwa
parent
6dbbcaa5ac
commit
6f496cf450
@@ -7,6 +7,11 @@
|
||||
- Header values are now sanitised before logging when `log:config` is
|
||||
enabled #2930.
|
||||
|
||||
### Added
|
||||
|
||||
- `listen:timeout:read` and `listen:timeout:write` config options for
|
||||
setting HTTP server request read and response write timeouts.
|
||||
|
||||
## v0.81
|
||||
|
||||
### Fixed
|
||||
|
||||
+4
-2
@@ -465,8 +465,10 @@ func serve(errorHandling pflag.ErrorHandling) error {
|
||||
}
|
||||
|
||||
httpServer := &http.Server{
|
||||
Addr: listen,
|
||||
Handler: router,
|
||||
Addr: listen,
|
||||
Handler: router,
|
||||
ReadTimeout: config.Config.Listen.Timeout.Read,
|
||||
WriteTimeout: config.Config.Listen.Timeout.Write,
|
||||
}
|
||||
|
||||
quit := make(chan os.Signal, 1)
|
||||
|
||||
@@ -163,6 +163,9 @@ level=info msg=" - instance"
|
||||
level=info msg=" - cluster"
|
||||
level=info msg="listen:"
|
||||
level=info msg=" address: 127.0.0.1"
|
||||
level=info msg=" timeout:"
|
||||
level=info msg=" read: 10s"
|
||||
level=info msg=" write: 20s"
|
||||
level=info msg=" tls:"
|
||||
level=info msg=" cert: \"\""
|
||||
level=info msg=" key: \"\""
|
||||
|
||||
@@ -188,6 +188,9 @@ level=info msg=" - instance"
|
||||
level=info msg=" - '@receiver'"
|
||||
level=info msg="listen:"
|
||||
level=info msg=" address: \"\""
|
||||
level=info msg=" timeout:"
|
||||
level=info msg=" read: 10s"
|
||||
level=info msg=" write: 20s"
|
||||
level=info msg=" tls:"
|
||||
level=info msg=" cert: \"\""
|
||||
level=info msg=" key: \"\""
|
||||
|
||||
@@ -77,6 +77,9 @@ level=info msg=" static: []"
|
||||
level=info msg=" unique: []"
|
||||
level=info msg="listen:"
|
||||
level=info msg=" address: \"\""
|
||||
level=info msg=" timeout:"
|
||||
level=info msg=" read: 10s"
|
||||
level=info msg=" write: 20s"
|
||||
level=info msg=" tls:"
|
||||
level=info msg=" cert: \"\""
|
||||
level=info msg=" key: \"\""
|
||||
|
||||
@@ -77,6 +77,9 @@ level=info msg=" static: []"
|
||||
level=info msg=" unique: []"
|
||||
level=info msg="listen:"
|
||||
level=info msg=" address: \"\""
|
||||
level=info msg=" timeout:"
|
||||
level=info msg=" read: 10s"
|
||||
level=info msg=" write: 20s"
|
||||
level=info msg=" tls:"
|
||||
level=info msg=" cert: \"\""
|
||||
level=info msg=" key: \"\""
|
||||
|
||||
@@ -77,6 +77,9 @@ level=info msg=" static: []"
|
||||
level=info msg=" unique: []"
|
||||
level=info msg="listen:"
|
||||
level=info msg=" address: \"\""
|
||||
level=info msg=" timeout:"
|
||||
level=info msg=" read: 10s"
|
||||
level=info msg=" write: 20s"
|
||||
level=info msg=" tls:"
|
||||
level=info msg=" cert: \"\""
|
||||
level=info msg=" key: \"\""
|
||||
|
||||
@@ -79,6 +79,9 @@ level=info msg=" static: []"
|
||||
level=info msg=" unique: []"
|
||||
level=info msg="listen:"
|
||||
level=info msg=" address: 127.0.0.1"
|
||||
level=info msg=" timeout:"
|
||||
level=info msg=" read: 10s"
|
||||
level=info msg=" write: 20s"
|
||||
level=info msg=" tls:"
|
||||
level=info msg=" cert: \"\""
|
||||
level=info msg=" key: \"\""
|
||||
|
||||
@@ -87,6 +87,9 @@ level=info msg=" static: []"
|
||||
level=info msg=" unique: []"
|
||||
level=info msg="listen:"
|
||||
level=info msg=" address: \"\""
|
||||
level=info msg=" timeout:"
|
||||
level=info msg=" read: 10s"
|
||||
level=info msg=" write: 20s"
|
||||
level=info msg=" tls:"
|
||||
level=info msg=" cert: \"\""
|
||||
level=info msg=" key: \"\""
|
||||
|
||||
@@ -30,6 +30,10 @@ alertmanager:
|
||||
uri: http://127.0.0.1:9094
|
||||
proxy: true
|
||||
debug: true
|
||||
listen:
|
||||
timeout:
|
||||
read: 1m
|
||||
write: 1m
|
||||
-- test.sh --
|
||||
trap "echo got signal" SIGTERM SIGINT
|
||||
|
||||
|
||||
@@ -77,6 +77,9 @@ level=info msg=" static: []"
|
||||
level=info msg=" unique: []"
|
||||
level=info msg="listen:"
|
||||
level=info msg=" address: \"\""
|
||||
level=info msg=" timeout:"
|
||||
level=info msg=" read: 10s"
|
||||
level=info msg=" write: 20s"
|
||||
level=info msg=" tls:"
|
||||
level=info msg=" cert: \"\""
|
||||
level=info msg=" key: \"\""
|
||||
|
||||
@@ -852,6 +852,9 @@ Syntax:
|
||||
listen:
|
||||
address: string
|
||||
port: integer
|
||||
timeout:
|
||||
read: duration
|
||||
write: duration
|
||||
prefix: string
|
||||
tls:
|
||||
cert: string
|
||||
@@ -860,6 +863,8 @@ listen:
|
||||
|
||||
- `address` - Hostname or IP to listen on.
|
||||
- `port` - HTTP port to listen on.
|
||||
- `timeout:read` - HTTP server request read timeout
|
||||
- `timeout:write` - HTTP server response write timeout
|
||||
- `prefix` - URL root for karma, you can use to if you wish to serve it from
|
||||
location other than `/`. This option is mostly useful when using karma behind
|
||||
reverse proxy with other services on the same IP but different URL root.
|
||||
|
||||
@@ -114,6 +114,8 @@ func SetupFlags(f *pflag.FlagSet) {
|
||||
f.String("listen.prefix", "/", "URL prefix")
|
||||
f.String("listen.tls.cert", "", "TLS certificate path (enables HTTPS)")
|
||||
f.String("listen.tls.key", "", "TLS key path (enables HTTPS)")
|
||||
f.Duration("listen.timeout.read", time.Second*10, "HTTP request read timeout")
|
||||
f.Duration("listen.timeout.write", time.Second*20, "HTTP response write timeout")
|
||||
|
||||
f.String("sentry.public", "", "Sentry DSN for Go exceptions")
|
||||
f.String("sentry.private", "", "Sentry DSN for JavaScript exceptions")
|
||||
|
||||
@@ -102,6 +102,9 @@ labels:
|
||||
- gg
|
||||
listen:
|
||||
address: 0.0.0.0
|
||||
timeout:
|
||||
read: 10s
|
||||
write: 20s
|
||||
tls:
|
||||
cert: ""
|
||||
key: ""
|
||||
|
||||
@@ -137,7 +137,11 @@ type configSchema struct {
|
||||
}
|
||||
Listen struct {
|
||||
Address string
|
||||
TLS struct {
|
||||
Timeout struct {
|
||||
Read time.Duration
|
||||
Write time.Duration
|
||||
}
|
||||
TLS struct {
|
||||
Cert string
|
||||
Key string
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user