Skip to content

Commit

Permalink
Fetch Site or DdUrl before initializing MetricsForwarder
Browse files Browse the repository at this point in the history
  • Loading branch information
mantoine96 committed May 22, 2020
1 parent 607e3ce commit faf3254
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions pkg/controller/utils/datadog/metrics_forwarder.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ const (
reconcileMetricFormat = "%s.reconcile.success"
reconcileErrTagFormat = "reconcile_err:%s"
datadogOperatorSourceType = "datadog_operator"
defaultBaseUrl = "https://api.datadoghq.com"
)

var (
Expand Down Expand Up @@ -81,6 +82,7 @@ type metricsForwarder struct {
delegator delegatedAPI
decryptor secrets.Decryptor
creds sync.Map
baseUrl string
sync.Mutex
status *datadoghqv1alpha1.DatadogAgentCondition
}
Expand Down Expand Up @@ -108,6 +110,7 @@ func newMetricsForwarder(k8sClient client.Client, decryptor secrets.Decryptor, o
lastReconcileErr: errInitValue,
decryptor: decryptor,
creds: sync.Map{},
baseURL: defaultBaseUrl,
logger: log.WithValues("CustomResource.Namespace", obj.GetNamespace(), "CustomResource.Name", obj.GetName()),
}
}
Expand Down Expand Up @@ -200,6 +203,8 @@ func (mf *metricsForwarder) connectToDatadogAPI() (bool, error) {
}
mf.logger.Info("Getting Datadog credentials")
apiKey, appKey, err := mf.getCredentials(dda)
mf.logger.Info("Getting Datadog Site")
mf.baseUrl = getBaseUrl(dda)
defer mf.updateStatusIfNeeded(err)
if err != nil {
mf.logger.Error(err, "cannot get Datadog credentials, will retry later...")
Expand Down Expand Up @@ -350,6 +355,7 @@ func (mf *metricsForwarder) validateCreds(apiKey, appKey string) (*api.Client, e
// delegatedValidateCreds is separated from validateCreds to facilitate mocking the Datadog API
func (mf *metricsForwarder) delegatedValidateCreds(apiKey, appKey string) (*api.Client, error) {
datadogClient := api.NewClient(apiKey, appKey)
datadogClient.SetBaseUrl(mf.baseUrl)
valid, err := datadogClient.Validate()
if err != nil {
return nil, fmt.Errorf("cannot validate datadog credentials: %v", err)
Expand Down Expand Up @@ -653,3 +659,16 @@ func (mf *metricsForwarder) isErrChanFull() bool {
func (mf *metricsForwarder) isEventChanFull() bool {
return len(mf.eventChan) == cap(mf.eventChan)
}

func getBaseUrl(dda *datadoghqv1alpha1.DatadogAgent) string {
if dda.Spec.Agent.Config.DDUrl != nil {
return dda.Spec.Agent.Config.DDUrl
}
else if dda.Spec.Site != nil {
if dda.Spec.Site == "EU" {
return "https://api.datadoghq.eu"
} else {
return "https://api.datadoghq.com"
}
}
}

0 comments on commit faf3254

Please sign in to comment.