diff --git a/config/config.go b/config/config.go index b02fdb5a69..482671182c 100644 --- a/config/config.go +++ b/config/config.go @@ -124,6 +124,7 @@ var ( // DefaultMarathonSDConfig is the default Marathon SD configuration. DefaultMarathonSDConfig = MarathonSDConfig{ + Timeout: model.Duration(30 * time.Second), RefreshInterval: model.Duration(30 * time.Second), } @@ -776,6 +777,7 @@ func (c *NerveSDConfig) UnmarshalYAML(unmarshal func(interface{}) error) error { // MarathonSDConfig is the configuration for services running on Marathon. type MarathonSDConfig struct { Servers []string `yaml:"servers,omitempty"` + Timeout model.Duration `yaml:"timeout,omitempty"` RefreshInterval model.Duration `yaml:"refresh_interval,omitempty"` TLSConfig TLSConfig `yaml:"tls_config,omitempty"` diff --git a/config/config_test.go b/config/config_test.go index 03fbfe79ee..1da06cf0f5 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -269,6 +269,7 @@ var expectedConf = &Config{ Servers: []string{ "https://marathon.example.com:443", }, + Timeout: model.Duration(30 * time.Second), RefreshInterval: model.Duration(30 * time.Second), TLSConfig: TLSConfig{ CertFile: "testdata/valid_cert_file", diff --git a/retrieval/discovery/marathon/marathon.go b/retrieval/discovery/marathon/marathon.go index a1c8c6181c..dc5c4c5951 100644 --- a/retrieval/discovery/marathon/marathon.go +++ b/retrieval/discovery/marathon/marathon.go @@ -87,6 +87,7 @@ func NewDiscovery(conf *config.MarathonSDConfig) (*Discovery, error) { } client := &http.Client{ + Timeout: time.Duration(conf.Timeout), Transport: &http.Transport{ TLSClientConfig: tls, },