mirror of https://github.com/hashicorp/consul
Backport of Suppress AlreadyRegisteredError to fix test retries into release/1.15.x (#16504)
* backport of commitpull/16510/heada009b044e4
* backport of commit264f9777b0
--------- Co-authored-by: Chris S. Kim <ckim@hashicorp.com>
parent
8e0fd0e605
commit
86150c1c8e
|
@ -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"
|
||||
)
|
||||
|
@ -258,7 +259,7 @@ 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
|
||||
|
@ -266,12 +267,19 @@ func prometheusSink(cfg TelemetryConfig, hostname string) (metrics.MetricSink, e
|
|||
|
||||
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 == "" {
|
||||
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue