Commit 460b01f1 by Marcus Efraimsson Committed by GitHub

Datasource: Make sure data proxy timeout applies to HTTP client (#25865)

For backend data sources executing in the backend (not through data proxy) make 
sure that the timeout applies to cached HTTP client.

Fixes #25863

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
parent 383aa21a
...@@ -126,7 +126,8 @@ connstr = ...@@ -126,7 +126,8 @@ connstr =
# This enables data proxy logging, default is false # This enables data proxy logging, default is false
logging = false logging = false
# How long the data proxy should wait before timing out default is 30 (seconds) # How long the data proxy waits before timing out, default is 30 seconds.
# This setting also applies to core backend HTTP data sources where query requests use an HTTP client with timeout set.
timeout = 30 timeout = 30
# If enabled and user is not anonymous, data proxy will add X-Grafana-User header with username into the request, default is false. # If enabled and user is not anonymous, data proxy will add X-Grafana-User header with username into the request, default is false.
...@@ -234,7 +235,7 @@ versions_to_keep = 20 ...@@ -234,7 +235,7 @@ versions_to_keep = 20
min_refresh_interval = 5s min_refresh_interval = 5s
# Path to the default home dashboard. If this value is empty, then Grafana uses StaticRootPath + "dashboards/home.json" # Path to the default home dashboard. If this value is empty, then Grafana uses StaticRootPath + "dashboards/home.json"
default_home_dashboard_path = default_home_dashboard_path =
#################################### Users ############################### #################################### Users ###############################
[users] [users]
......
...@@ -127,7 +127,8 @@ ...@@ -127,7 +127,8 @@
# This enables data proxy logging, default is false # This enables data proxy logging, default is false
;logging = false ;logging = false
# How long the data proxy should wait before timing out default is 30 (seconds) # How long the data proxy waits before timing out, default is 30 seconds.
# This setting also applies to core backend HTTP data sources where query requests use an HTTP client with timeout set.
;timeout = 30 ;timeout = 30
# If enabled and user is not anonymous, data proxy will add X-Grafana-User header with username into the request, default is false. # If enabled and user is not anonymous, data proxy will add X-Grafana-User header with username into the request, default is false.
...@@ -233,7 +234,7 @@ ...@@ -233,7 +234,7 @@
;min_refresh_interval = 5s ;min_refresh_interval = 5s
# Path to the default home dashboard. If this value is empty, then Grafana uses StaticRootPath + "dashboards/home.json" # Path to the default home dashboard. If this value is empty, then Grafana uses StaticRootPath + "dashboards/home.json"
;default_home_dashboard_path = ;default_home_dashboard_path =
#################################### Users ############################### #################################### Users ###############################
[users] [users]
...@@ -459,7 +460,7 @@ ...@@ -459,7 +460,7 @@
;from_name = Grafana ;from_name = Grafana
# EHLO identity in SMTP dialog (defaults to instance_name) # EHLO identity in SMTP dialog (defaults to instance_name)
;ehlo_identity = dashboard.example.com ;ehlo_identity = dashboard.example.com
# SMTP startTLS policy (defaults to 'OpportunisticStartTLS') # SMTP startTLS policy (defaults to 'OpportunisticStartTLS')
;startTLS_policy = NoStartTLS ;startTLS_policy = NoStartTLS
[emails] [emails]
......
...@@ -383,7 +383,9 @@ This enables data proxy logging, default is `false`. ...@@ -383,7 +383,9 @@ This enables data proxy logging, default is `false`.
### timeout ### timeout
How long the data proxy should wait before timing out. Default is `30` (seconds) How long the data proxy should wait before timing out. Default is 30 seconds.
This setting also applies to core backend HTTP data sources where query requests use an HTTP client with timeout set.
### send_user_header ### send_user_header
......
...@@ -51,7 +51,7 @@ func (ds *DataSource) GetHttpClient() (*http.Client, error) { ...@@ -51,7 +51,7 @@ func (ds *DataSource) GetHttpClient() (*http.Client, error) {
} }
return &http.Client{ return &http.Client{
Timeout: 30 * time.Second, Timeout: time.Duration(setting.DataProxyTimeout) * time.Second,
Transport: transport, Transport: transport,
}, nil }, nil
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment