prometheus
66 строк · 1.9 Кб
1// Copyright 2015 The Prometheus Authors
2// Licensed under the Apache License, Version 2.0 (the "License");
3// you may not use this file except in compliance with the License.
4// You may obtain a copy of the License at
5//
6// http://www.apache.org/licenses/LICENSE-2.0
7//
8// Unless required by applicable law or agreed to in writing, software
9// distributed under the License is distributed on an "AS IS" BASIS,
10// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11// See the License for the specific language governing permissions and
12// limitations under the License.
13
14package dns15
16import (17"github.com/prometheus/client_golang/prometheus"18
19"github.com/prometheus/prometheus/discovery"20)
21
22var _ discovery.DiscovererMetrics = (*dnsMetrics)(nil)23
24type dnsMetrics struct {25refreshMetrics discovery.RefreshMetricsInstantiator26
27dnsSDLookupsCount prometheus.Counter28dnsSDLookupFailuresCount prometheus.Counter29
30metricRegisterer discovery.MetricRegisterer31}
32
33func newDiscovererMetrics(reg prometheus.Registerer, rmi discovery.RefreshMetricsInstantiator) discovery.DiscovererMetrics {34m := &dnsMetrics{35refreshMetrics: rmi,36dnsSDLookupsCount: prometheus.NewCounter(37prometheus.CounterOpts{38Namespace: namespace,39Name: "sd_dns_lookups_total",40Help: "The number of DNS-SD lookups.",41}),42dnsSDLookupFailuresCount: prometheus.NewCounter(43prometheus.CounterOpts{44Namespace: namespace,45Name: "sd_dns_lookup_failures_total",46Help: "The number of DNS-SD lookup failures.",47}),48}49
50m.metricRegisterer = discovery.NewMetricRegisterer(reg, []prometheus.Collector{51m.dnsSDLookupsCount,52m.dnsSDLookupFailuresCount,53})54
55return m56}
57
58// Register implements discovery.DiscovererMetrics.
59func (m *dnsMetrics) Register() error {60return m.metricRegisterer.RegisterMetrics()61}
62
63// Unregister implements discovery.DiscovererMetrics.
64func (m *dnsMetrics) Unregister() {65m.metricRegisterer.UnregisterMetrics()66}
67