refactor(setting): Allow public use of reading typed quota & dataproxy settings
This commit is contained in:
@@ -8,29 +8,68 @@ import (
|
||||
|
||||
const defaultDataProxyRowLimit = int64(1000000)
|
||||
|
||||
type ProxySettings struct {
|
||||
SendUserHeader bool
|
||||
Logging bool
|
||||
Timeout int
|
||||
DialTimeout int
|
||||
KeepAlive int
|
||||
TLSHandshakeTimeout int
|
||||
ExpectContinueTimeout int
|
||||
MaxConnsPerHost int
|
||||
MaxIdleConns int
|
||||
IdleConnTimeout int
|
||||
ResponseLimit int64
|
||||
RowLimit int64
|
||||
UserAgent string
|
||||
}
|
||||
|
||||
func readDataProxySettings(iniFile *ini.File, cfg *Cfg) error {
|
||||
dataproxy := iniFile.Section("dataproxy")
|
||||
cfg.SendUserHeader = dataproxy.Key("send_user_header").MustBool(false)
|
||||
cfg.DataProxyLogging = dataproxy.Key("logging").MustBool(false)
|
||||
cfg.DataProxyTimeout = dataproxy.Key("timeout").MustInt(30)
|
||||
cfg.DataProxyDialTimeout = dataproxy.Key("dialTimeout").MustInt(10)
|
||||
cfg.DataProxyKeepAlive = dataproxy.Key("keep_alive_seconds").MustInt(30)
|
||||
cfg.DataProxyTLSHandshakeTimeout = dataproxy.Key("tls_handshake_timeout_seconds").MustInt(10)
|
||||
cfg.DataProxyExpectContinueTimeout = dataproxy.Key("expect_continue_timeout_seconds").MustInt(1)
|
||||
cfg.DataProxyMaxConnsPerHost = dataproxy.Key("max_conns_per_host").MustInt(0)
|
||||
cfg.DataProxyMaxIdleConns = dataproxy.Key("max_idle_connections").MustInt()
|
||||
cfg.DataProxyIdleConnTimeout = dataproxy.Key("idle_conn_timeout_seconds").MustInt(90)
|
||||
cfg.ResponseLimit = dataproxy.Key("response_limit").MustInt64(0)
|
||||
cfg.DataProxyRowLimit = dataproxy.Key("row_limit").MustInt64(defaultDataProxyRowLimit)
|
||||
cfg.DataProxyUserAgent = dataproxy.Key("user_agent").String()
|
||||
proxy := ReadDataProxySettings(iniFile)
|
||||
|
||||
if cfg.DataProxyUserAgent == "" {
|
||||
cfg.DataProxyUserAgent = fmt.Sprintf("Grafana/%s", BuildVersion)
|
||||
}
|
||||
|
||||
if cfg.DataProxyRowLimit <= 0 {
|
||||
cfg.DataProxyRowLimit = defaultDataProxyRowLimit
|
||||
}
|
||||
cfg.SendUserHeader = proxy.SendUserHeader
|
||||
cfg.DataProxyLogging = proxy.Logging
|
||||
cfg.DataProxyTimeout = proxy.Timeout
|
||||
cfg.DataProxyDialTimeout = proxy.DialTimeout
|
||||
cfg.DataProxyKeepAlive = proxy.KeepAlive
|
||||
cfg.DataProxyTLSHandshakeTimeout = proxy.TLSHandshakeTimeout
|
||||
cfg.DataProxyExpectContinueTimeout = proxy.ExpectContinueTimeout
|
||||
cfg.DataProxyMaxConnsPerHost = proxy.MaxConnsPerHost
|
||||
cfg.DataProxyMaxIdleConns = proxy.MaxIdleConns
|
||||
cfg.DataProxyIdleConnTimeout = proxy.IdleConnTimeout
|
||||
cfg.ResponseLimit = proxy.ResponseLimit
|
||||
cfg.DataProxyRowLimit = proxy.RowLimit
|
||||
cfg.DataProxyUserAgent = proxy.UserAgent
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReadDataProxySettings(iniFile *ini.File) ProxySettings {
|
||||
section := iniFile.Section("dataproxy")
|
||||
|
||||
proxy := ProxySettings{
|
||||
SendUserHeader: section.Key("send_user_header").MustBool(false),
|
||||
Logging: section.Key("logging").MustBool(false),
|
||||
Timeout: section.Key("timeout").MustInt(30),
|
||||
DialTimeout: section.Key("dialTimeout").MustInt(10),
|
||||
KeepAlive: section.Key("keep_alive_seconds").MustInt(30),
|
||||
TLSHandshakeTimeout: section.Key("tls_handshake_timeout_seconds").MustInt(10),
|
||||
ExpectContinueTimeout: section.Key("expect_continue_timeout_seconds").MustInt(1),
|
||||
MaxConnsPerHost: section.Key("max_conns_per_host").MustInt(0),
|
||||
MaxIdleConns: section.Key("max_idle_connections").MustInt(),
|
||||
IdleConnTimeout: section.Key("idle_conn_timeout_seconds").MustInt(90),
|
||||
ResponseLimit: section.Key("response_limit").MustInt64(0),
|
||||
RowLimit: section.Key("row_limit").MustInt64(defaultDataProxyRowLimit),
|
||||
UserAgent: section.Key("user_agent").String(),
|
||||
}
|
||||
|
||||
if proxy.UserAgent == "" {
|
||||
proxy.UserAgent = fmt.Sprintf("Grafana/%s", BuildVersion)
|
||||
}
|
||||
|
||||
if proxy.RowLimit <= 0 {
|
||||
proxy.RowLimit = defaultDataProxyRowLimit
|
||||
}
|
||||
|
||||
return proxy
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user