Commit 72bd3f60 authored by Janos Guljas's avatar Janos Guljas

add metrics.PrometheusCollectorsFromFields

parent b8f4faa2
......@@ -2,9 +2,9 @@ package api
import (
"net/http"
"reflect"
"time"
m "github.com/janos/bee/pkg/metrics"
"github.com/prometheus/client_golang/prometheus"
)
......@@ -35,17 +35,8 @@ func newMetrics() (m metrics) {
}
}
func (s *server) Metrics() (cs []prometheus.Collector) {
v := reflect.Indirect(reflect.ValueOf(s.metrics))
for i := 0; i < v.NumField(); i++ {
if !v.Field(i).CanInterface() {
continue
}
if u, ok := v.Field(i).Interface().(prometheus.Collector); ok {
cs = append(cs, u)
}
}
return cs
func (s *server) Metrics() []prometheus.Collector {
return m.PrometheusCollectorsFromFields(s.metrics)
}
func (s *server) pageviewMetricsHandler(h http.Handler) http.Handler {
......
package metrics
import (
"reflect"
"github.com/prometheus/client_golang/prometheus"
)
func PrometheusCollectorsFromFields(i interface{}) (cs []prometheus.Collector) {
v := reflect.Indirect(reflect.ValueOf(i))
for i := 0; i < v.NumField(); i++ {
if !v.Field(i).CanInterface() {
continue
}
if u, ok := v.Field(i).Interface().(prometheus.Collector); ok {
cs = append(cs, u)
}
}
return cs
}
package pingpong
import (
"reflect"
m "github.com/janos/bee/pkg/metrics"
"github.com/prometheus/client_golang/prometheus"
)
......@@ -37,15 +36,6 @@ func newMetrics() (m metrics) {
}
}
func (s *Service) Metrics() (cs []prometheus.Collector) {
v := reflect.Indirect(reflect.ValueOf(s.metrics))
for i := 0; i < v.NumField(); i++ {
if !v.Field(i).CanInterface() {
continue
}
if u, ok := v.Field(i).Interface().(prometheus.Collector); ok {
cs = append(cs, u)
}
}
return cs
func (s *Service) Metrics() []prometheus.Collector {
return m.PrometheusCollectorsFromFields(s.metrics)
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment