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  }