Skip to content

Commit

Permalink
Suppress AlreadyRegisteredError to fix test retries (#16501)
Browse files Browse the repository at this point in the history
* Suppress AlreadyRegisteredError to fix test retries

* Remove duplicate sink
  • Loading branch information
kisunji committed Mar 2, 2023
1 parent 21c3095 commit b177dc4
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions lib/telemetry.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (
"github.com/armon/go-metrics/prometheus"
"github.com/hashicorp/go-hclog"
"github.com/hashicorp/go-multierror"
prometheuscore "github.com/prometheus/client_golang/prometheus"

"github.com/hashicorp/consul/lib/retry"
)
Expand Down Expand Up @@ -258,20 +259,27 @@ func dogstatdSink(cfg TelemetryConfig, hostname string) (metrics.MetricSink, err
return sink, nil
}

func prometheusSink(cfg TelemetryConfig, hostname string) (metrics.MetricSink, error) {
func prometheusSink(cfg TelemetryConfig, _ string) (metrics.MetricSink, error) {

if cfg.PrometheusOpts.Expiration.Nanoseconds() < 1 {
return nil, nil
}

sink, err := prometheus.NewPrometheusSinkFrom(cfg.PrometheusOpts)
if err != nil {
// During testing we may try to register the same metrics collector
// multiple times in a single run (e.g. a metrics test fails and
// we attempt a retry), resulting in an AlreadyRegisteredError.
// Suppress this and move on.
if errors.As(err, &prometheuscore.AlreadyRegisteredError{}) {
return nil, nil
}
return nil, err
}
return sink, nil
}

func circonusSink(cfg TelemetryConfig, hostname string) (metrics.MetricSink, error) {
func circonusSink(cfg TelemetryConfig, _ string) (metrics.MetricSink, error) {
token := cfg.CirconusAPIToken
url := cfg.CirconusSubmissionURL
if token == "" && url == "" {
Expand Down Expand Up @@ -337,7 +345,6 @@ func configureSinks(cfg TelemetryConfig, memSink metrics.MetricSink) (metrics.Fa
addSink(statsdSink)
addSink(dogstatdSink)
addSink(circonusSink)
addSink(circonusSink)
addSink(prometheusSink)

if len(sinks) > 0 {
Expand Down

0 comments on commit b177dc4

Please sign in to comment.