mirror of
https://github.com/minio/minio.git
synced 2025-04-01 10:13:42 -04:00
Fix 0 httpTimeout for logger webhook (#20653)
Previously, not setting http.Config.HTTPTimeout for logger webhook was resulting in a timeout of 0, and causing "deadline exceeded" errors in log webhook. This change introduces a new env variable for configuring log webhook timeout and more importantly sets it when the config is initialised.
This commit is contained in:
parent
4ee3434854
commit
267f0ecea2
@ -79,6 +79,7 @@ const (
|
|||||||
EnvLoggerWebhookQueueDir = "MINIO_LOGGER_WEBHOOK_QUEUE_DIR"
|
EnvLoggerWebhookQueueDir = "MINIO_LOGGER_WEBHOOK_QUEUE_DIR"
|
||||||
EnvLoggerWebhookMaxRetry = "MINIO_LOGGER_WEBHOOK_MAX_RETRY"
|
EnvLoggerWebhookMaxRetry = "MINIO_LOGGER_WEBHOOK_MAX_RETRY"
|
||||||
EnvLoggerWebhookRetryInterval = "MINIO_LOGGER_WEBHOOK_RETRY_INTERVAL"
|
EnvLoggerWebhookRetryInterval = "MINIO_LOGGER_WEBHOOK_RETRY_INTERVAL"
|
||||||
|
EnvLoggerWebhookHTTPTimeout = "MINIO_LOGGER_WEBHOOK_HTTP_TIMEOUT"
|
||||||
|
|
||||||
EnvAuditWebhookEnable = "MINIO_AUDIT_WEBHOOK_ENABLE"
|
EnvAuditWebhookEnable = "MINIO_AUDIT_WEBHOOK_ENABLE"
|
||||||
EnvAuditWebhookEndpoint = "MINIO_AUDIT_WEBHOOK_ENDPOINT"
|
EnvAuditWebhookEndpoint = "MINIO_AUDIT_WEBHOOK_ENDPOINT"
|
||||||
@ -507,19 +508,30 @@ func lookupLoggerWebhookConfig(scfg config.Config, cfg Config) (Config, error) {
|
|||||||
if retryInterval > time.Minute {
|
if retryInterval > time.Minute {
|
||||||
return cfg, fmt.Errorf("maximum allowed value for retry interval is '1m': %s", retryIntervalCfgVal)
|
return cfg, fmt.Errorf("maximum allowed value for retry interval is '1m': %s", retryIntervalCfgVal)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
httpTimeoutCfgVal := getCfgVal(EnvLoggerWebhookHTTPTimeout, k, kv.Get(httpTimeout))
|
||||||
|
httpTimeout, err := time.ParseDuration(httpTimeoutCfgVal)
|
||||||
|
if err != nil {
|
||||||
|
return cfg, err
|
||||||
|
}
|
||||||
|
if httpTimeout < time.Second {
|
||||||
|
return cfg, fmt.Errorf("minimum value allowed for http_timeout is '1s': %s", httpTimeout)
|
||||||
|
}
|
||||||
|
|
||||||
cfg.HTTP[k] = http.Config{
|
cfg.HTTP[k] = http.Config{
|
||||||
Enabled: true,
|
HTTPTimeout: httpTimeout,
|
||||||
Endpoint: url,
|
Enabled: true,
|
||||||
AuthToken: getCfgVal(EnvLoggerWebhookAuthToken, k, kv.Get(AuthToken)),
|
Endpoint: url,
|
||||||
ClientCert: clientCert,
|
AuthToken: getCfgVal(EnvLoggerWebhookAuthToken, k, kv.Get(AuthToken)),
|
||||||
ClientKey: clientKey,
|
ClientCert: clientCert,
|
||||||
Proxy: getCfgVal(EnvLoggerWebhookProxy, k, kv.Get(Proxy)),
|
ClientKey: clientKey,
|
||||||
BatchSize: batchSize,
|
Proxy: getCfgVal(EnvLoggerWebhookProxy, k, kv.Get(Proxy)),
|
||||||
QueueSize: queueSize,
|
BatchSize: batchSize,
|
||||||
QueueDir: getCfgVal(EnvLoggerWebhookQueueDir, k, kv.Get(QueueDir)),
|
QueueSize: queueSize,
|
||||||
MaxRetry: maxRetry,
|
QueueDir: getCfgVal(EnvLoggerWebhookQueueDir, k, kv.Get(QueueDir)),
|
||||||
RetryIntvl: retryInterval,
|
MaxRetry: maxRetry,
|
||||||
Name: loggerTargetNamePrefix + k,
|
RetryIntvl: retryInterval,
|
||||||
|
Name: loggerTargetNamePrefix + k,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return cfg, nil
|
return cfg, nil
|
||||||
|
Loading…
x
Reference in New Issue
Block a user