()
| 550 | } |
| 551 | |
| 552 | func (t *App) initMemberlistKV() (services.Service, error) { |
| 553 | reg := prometheus.DefaultRegisterer |
| 554 | t.cfg.MemberlistKV.MetricsNamespace = metricsNamespace |
| 555 | t.cfg.MemberlistKV.Codecs = append(t.cfg.MemberlistKV.Codecs, |
| 556 | ring.GetCodec(), |
| 557 | ring.GetPartitionRingCodec(), |
| 558 | usagestats.JSONCodec, |
| 559 | ) |
| 560 | |
| 561 | dnsProviderReg := prometheus.WrapRegistererWithPrefix( |
| 562 | "tempo_", |
| 563 | prometheus.WrapRegistererWith( |
| 564 | prometheus.Labels{"name": "memberlist"}, |
| 565 | reg, |
| 566 | ), |
| 567 | ) |
| 568 | |
| 569 | dnsProvider := dns.NewProvider(log.Logger, dnsProviderReg, dns.GolangResolverType) |
| 570 | t.MemberlistKV = memberlist.NewKVInitService(&t.cfg.MemberlistKV, log.Logger, dnsProvider, reg) |
| 571 | |
| 572 | t.cfg.Generator.Ring.KVStore.MemberlistKV = t.MemberlistKV.GetMemberlistKV |
| 573 | t.cfg.Distributor.DistributorRing.KVStore.MemberlistKV = t.MemberlistKV.GetMemberlistKV |
| 574 | t.cfg.BackendWorker.Ring.KVStore.MemberlistKV = t.MemberlistKV.GetMemberlistKV |
| 575 | t.cfg.LiveStore.PartitionRing.KVStore.MemberlistKV = t.MemberlistKV.GetMemberlistKV |
| 576 | t.cfg.LiveStore.Ring.KVStore.MemberlistKV = t.MemberlistKV.GetMemberlistKV |
| 577 | |
| 578 | // Only the memberlist endpoint uses static files currently |
| 579 | t.Server.HTTPRouter().PathPrefix("/static/").HandlerFunc(http.FileServer(http.FS(staticFiles)).ServeHTTP).Methods("GET") |
| 580 | |
| 581 | t.Server.HTTPRouter().Handle("/memberlist", memberlistStatusHandler("", t.MemberlistKV)) |
| 582 | |
| 583 | return t.MemberlistKV, nil |
| 584 | } |
| 585 | |
| 586 | func (t *App) initUsageReport() (services.Service, error) { |
| 587 | if !t.cfg.UsageReport.Enabled { |
nothing calls this directly
no test coverage detected