diff --git a/integration/getting_started_with_gossiped_ring_test.go b/integration/getting_started_with_gossiped_ring_test.go index a3626cd40cb..9de058240f7 100644 --- a/integration/getting_started_with_gossiped_ring_test.go +++ b/integration/getting_started_with_gossiped_ring_test.go @@ -129,4 +129,10 @@ func TestGettingStartedWithGossipedRing(t *testing.T) { // single ingester and so we have 1 block shipped from ingesters and loaded by both store-gateways. require.NoError(t, mimir1.WaitSumMetrics(e2e.Equals(1), "cortex_bucket_store_blocks_loaded")) require.NoError(t, mimir2.WaitSumMetrics(e2e.Equals(1), "cortex_bucket_store_blocks_loaded")) + + // Make sure that no DNS failures occurred. + // No actual DNS lookups are necessarily performed, so we can't really assert on that. + mlMatcher := labels.MustNewMatcher(labels.MatchEqual, "name", "memberlist") + require.NoError(t, mimir1.WaitSumMetricsWithOptions(e2e.Equals(0), []string{"cortex_dns_failures_total"}, e2e.WithLabelMatchers(mlMatcher))) + require.NoError(t, mimir2.WaitSumMetricsWithOptions(e2e.Equals(0), []string{"cortex_dns_failures_total"}, e2e.WithLabelMatchers(mlMatcher))) } diff --git a/pkg/mimir/modules.go b/pkg/mimir/modules.go index f8c9eb0686b..64cc895d5cc 100644 --- a/pkg/mimir/modules.go +++ b/pkg/mimir/modules.go @@ -733,18 +733,19 @@ func (t *Mimir) initStoreGateway() (serv services.Service, err error) { } func (t *Mimir) initMemberlistKV() (services.Service, error) { - t.Cfg.MemberlistKV.MetricsRegisterer = prometheus.DefaultRegisterer + reg := prometheus.DefaultRegisterer + t.Cfg.MemberlistKV.MetricsRegisterer = reg t.Cfg.MemberlistKV.Codecs = []codec.Codec{ ring.GetCodec(), } - var mr prometheus.Registerer - if t.Cfg.MemberlistKV.MetricsRegisterer != nil { - mr = prometheus.WrapRegistererWith( + dnsProviderReg := prometheus.WrapRegistererWithPrefix( + "cortex_", + prometheus.WrapRegistererWith( prometheus.Labels{"name": "memberlist"}, - t.Cfg.MemberlistKV.MetricsRegisterer, - ) - } - dnsProvider := dns.NewProvider(util_log.Logger, mr, dns.GolangResolverType) + reg, + ), + ) + dnsProvider := dns.NewProvider(util_log.Logger, dnsProviderReg, dns.GolangResolverType) t.MemberlistKV = memberlist.NewKVInitService(&t.Cfg.MemberlistKV, util_log.Logger, dnsProvider) t.API.RegisterMemberlistKV(t.MemberlistKV)