Open maticmeznar opened 8 years ago
Did you ever figure this out?
@brianhama Yes, I think go-metrics
uses DefaultServeMux by default, while I was using github.com/julienschmidt/httprouter
.
When I used it like this it worked, although on a dedicated port:
// Prepare metrics
sink, _ := prometheus.NewPrometheusSink()
m, err := metrics.NewGlobal(metrics.DefaultConfig("apiserver"), sink)
m.EnableHostname = false
if err != nil {
logger.Fatal("Unable to create metrics",
zap.Error(err),
)
}
mux := http.NewServeMux()
mux.Handle("/metrics", prom.Handler())
metricsServer := &http.Server{
Addr: ":" + strconv.Itoa(*cfgHTTPMetricsPort),
Handler: mux,
}
go func() {
if err := metricsServer.ListenAndServe(); err != nil {
logger.Fatal("Unable to start metrics HTTP server", zap.Error(err))
}
}()
How can go-metrics be used with Prometheus? The farthest I came is:
Some parts are missing like setting up an HTTP handler, HTTP server, etc ... And I don't know how to enable Prometheus server to scrape this. I've looked at the source code and I have a feeling that something is missing.