MCPcopy
hub / github.com/grafana/dskit / NewProvider

Function NewProvider

dns/provider.go:60–95  ·  view source on GitHub ↗

NewProvider returns a new empty provider with a given resolver type. If empty resolver type is net.DefaultResolver.

(resolverType ResolverType, maxIdleConnections uint, logger log.Logger, reg prometheus.Registerer)

Source from the content-addressed store, hash-verified

58// NewProvider returns a new empty provider with a given resolver type.
59// If empty resolver type is net.DefaultResolver.
60func NewProvider(resolverType ResolverType, maxIdleConnections uint, logger log.Logger, reg prometheus.Registerer) *Provider {
61 var backend ipLookupResolver
62 switch resolverType {
63 case GolangResolverType:
64 backend = &godns.Resolver{Resolver: net.DefaultResolver}
65 case MiekgdnsResolverType:
66 backend = miekgdns.NewResolver(miekgdns.DefaultResolvConfPath, maxIdleConnections, logger)
67 default:
68 level.Warn(logger).Log("msg", "no such resolver type, defaulting to golang", "type", resolverType)
69 backend = &godns.Resolver{Resolver: net.DefaultResolver}
70 }
71
72 p := &Provider{
73 resolver: NewResolver(backend, logger),
74 resolved: make(map[string][]string),
75 logger: logger,
76 resolverAddrsDesc: prometheus.NewDesc(
77 "dns_provider_results",
78 "The number of resolved endpoints for each configured address",
79 []string{"addr"},
80 nil),
81 resolverLookupsCount: promauto.With(reg).NewCounter(prometheus.CounterOpts{
82 Name: "dns_lookups_total",
83 Help: "The number of DNS lookups resolutions attempts",
84 }),
85 resolverFailuresCount: promauto.With(reg).NewCounter(prometheus.CounterOpts{
86 Name: "dns_failures_total",
87 Help: "The number of DNS lookup failures",
88 }),
89 }
90 if reg != nil {
91 reg.MustRegister(p)
92 }
93
94 return p
95}
96
97// Clone returns a new provider from an existing one.
98func (p *Provider) Clone() *Provider {

Callers 3

newMemcachedClientFunction · 0.92
SimpleMemberlistKVFunction · 0.92
TestProviderFunction · 0.85

Calls 5

NewResolverFunction · 0.92
WithMethod · 0.80
MustRegisterMethod · 0.80
NewResolverFunction · 0.70
LogMethod · 0.45

Tested by 1

TestProviderFunction · 0.68