diff --git a/conf/defaults.ini b/conf/defaults.ini index 4da3588bef2..788112ae67e 100644 --- a/conf/defaults.ini +++ b/conf/defaults.ini @@ -159,6 +159,9 @@ conn_max_lifetime = 14400 # This enables data proxy logging, default is false logging = false +# How long the data proxy should wait before timing out default is 30 (seconds) +timeout = 30 + #################################### Analytics ########################### [analytics] # Server reporting, sends usage counters to stats.grafana.org every 24 hours. diff --git a/conf/sample.ini b/conf/sample.ini index 8b731e43bd9..89880106345 100644 --- a/conf/sample.ini +++ b/conf/sample.ini @@ -146,6 +146,9 @@ log_queries = # This enables data proxy logging, default is false ;logging = false +# How long the data proxy should wait before timing out default is 30 (seconds) +;timeout = 30 + #################################### Analytics #################################### [analytics] # Server reporting, sends usage counters to stats.grafana.org every 24 hours. diff --git a/pkg/api/pluginproxy/ds_proxy.go b/pkg/api/pluginproxy/ds_proxy.go index 38a2fd187e3..b569b006531 100644 --- a/pkg/api/pluginproxy/ds_proxy.go +++ b/pkg/api/pluginproxy/ds_proxy.go @@ -54,7 +54,7 @@ func NewDataSourceProxy(ds *m.DataSource, plugin *plugins.DataSourcePlugin, ctx func newHTTPClient() httpClient { return &http.Client{ - Timeout: time.Second * 30, + Timeout: time.Duration(setting.DataProxyTimeout) * time.Second, Transport: &http.Transport{Proxy: http.ProxyFromEnvironment}, } } diff --git a/pkg/setting/setting.go b/pkg/setting/setting.go index d1eca777004..cf486a228ab 100644 --- a/pkg/setting/setting.go +++ b/pkg/setting/setting.go @@ -77,6 +77,7 @@ var ( SocketPath string RouterLogging bool DataProxyLogging bool + DataProxyTimeout int StaticRootPath string EnableGzip bool EnforceDomain bool @@ -597,6 +598,7 @@ func (cfg *Cfg) Load(args *CommandLineArgs) error { // read data proxy settings dataproxy := iniFile.Section("dataproxy") DataProxyLogging = dataproxy.Key("logging").MustBool(false) + DataProxyTimeout = dataproxy.Key("timeout").MustInt(30) // read security settings security := iniFile.Section("security")