|
|
@@ -0,0 +1,84 @@
|
|
|
+package metrics
|
|
|
+
|
|
|
+type Registry interface{
|
|
|
+ RegisterCounter(string, Counter)
|
|
|
+ RegisterGauge(string, Gauge)
|
|
|
+ RegisterHealthcheck(string, Healthcheck)
|
|
|
+ RegisterHistogram(string, Histogram)
|
|
|
+ RegisterMeter(string, Meter)
|
|
|
+ RegisterTimer(string, Timer)
|
|
|
+}
|
|
|
+
|
|
|
+type registry struct {
|
|
|
+ counters map[string]Counter
|
|
|
+ gauges map[string]Gauge
|
|
|
+ healthchecks map[string]Healthcheck
|
|
|
+ histograms map[string]Histogram
|
|
|
+ meters map[string]Meter
|
|
|
+ timers map[string]Timer
|
|
|
+}
|
|
|
+
|
|
|
+func NewRegistry() Registry {
|
|
|
+ return ®istry {
|
|
|
+ make(map[string]Counter),
|
|
|
+ make(map[string]Gauge),
|
|
|
+ make(map[string]Healthcheck),
|
|
|
+ make(map[string]Histogram),
|
|
|
+ make(map[string]Meter),
|
|
|
+ make(map[string]Timer),
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func (r *registry) GetCounter(name string) (Counter, bool) {
|
|
|
+ c, ok := r.counters[name]
|
|
|
+ return c, ok
|
|
|
+}
|
|
|
+
|
|
|
+func (r *registry) GetGauge(name string) (Gauge, bool) {
|
|
|
+ g, ok := r.gauges[name]
|
|
|
+ return g, ok
|
|
|
+}
|
|
|
+
|
|
|
+func (r *registry) GetHealthcheck(name string) (Healthcheck, bool) {
|
|
|
+ h, ok := r.healthchecks[name]
|
|
|
+ return h, ok
|
|
|
+}
|
|
|
+
|
|
|
+func (r *registry) GetHistogram(name string) (Histogram, bool) {
|
|
|
+ h, ok := r.histograms[name]
|
|
|
+ return h, ok
|
|
|
+}
|
|
|
+
|
|
|
+func (r *registry) GetMeter(name string) (Meter, bool) {
|
|
|
+ m, ok := r.meters[name]
|
|
|
+ return m, ok
|
|
|
+}
|
|
|
+
|
|
|
+func (r *registry) GetTimer(name string) (Timer, bool) {
|
|
|
+ t, ok := r.timers[name]
|
|
|
+ return t, ok
|
|
|
+}
|
|
|
+
|
|
|
+func (r *registry) RegisterCounter(name string, c Counter) {
|
|
|
+ r.counters[name] = c
|
|
|
+}
|
|
|
+
|
|
|
+func (r *registry) RegisterGauge(name string, g Gauge) {
|
|
|
+ r.gauges[name] = g
|
|
|
+}
|
|
|
+
|
|
|
+func (r *registry) RegisterHealthcheck(name string, h Healthcheck) {
|
|
|
+ r.healthchecks[name] = h
|
|
|
+}
|
|
|
+
|
|
|
+func (r *registry) RegisterHistogram(name string, h Histogram) {
|
|
|
+ r.histograms[name] = h
|
|
|
+}
|
|
|
+
|
|
|
+func (r *registry) RegisterMeter(name string, m Meter) {
|
|
|
+ r.meters[name] = m
|
|
|
+}
|
|
|
+
|
|
|
+func (r *registry) RegisterTimer(name string, t Timer) {
|
|
|
+ r.timers[name] = t
|
|
|
+}
|