gitee.com/woood2/luca@v1.0.4/internal/status/prometheus.go (about) 1 package status 2 3 import ( 4 kitprometheus "github.com/go-kit/kit/metrics/prometheus" 5 stdprometheus "github.com/prometheus/client_golang/prometheus" 6 "github.com/prometheus/client_golang/prometheus/promhttp" 7 "log" 8 "net/http" 9 ) 10 11 func Prometheus(addr string) { 12 m := http.NewServeMux() 13 m.Handle("/metrics", promhttp.Handler()) 14 if err := http.ListenAndServe(addr, m); err != nil { 15 log.Panicf("listen: %s\n", err) 16 } 17 } 18 19 var RequestCount *kitprometheus.Counter 20 var RequestLatency *kitprometheus.Summary 21 22 func InitMetrics(project, entrance string) { 23 fieldKeys := []string{"method"} 24 25 RequestCount = kitprometheus.NewCounterFrom(stdprometheus.CounterOpts{ 26 Namespace: project, 27 Subsystem: entrance, 28 Name: "request_count", 29 Help: "Number of requests received.", 30 }, fieldKeys) 31 32 RequestLatency = kitprometheus.NewSummaryFrom(stdprometheus.SummaryOpts{ 33 Namespace: project, 34 Subsystem: entrance, 35 Name: "request_latency", 36 Help: "Total duration of requests.", 37 Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, 38 }, fieldKeys) 39 }