in observability/workload-metrics/main.go [96:123]
func main() {
parseFlags()
go Random()
go PollItself()
// Example HTTP handler
http.Handle("/", promhttp.InstrumentHandlerCounter(
requestCount,
http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
random := rand.Intn(100)
if random < 20 {
w.WriteHeader(500)
_, _ = fmt.Fprint(w, "Something went wrong :(")
return
}
_, _ = fmt.Fprint(w, "Hello, world!")
}),
))
// Expose Prometheus metrics
http.Handle("/metrics", promhttp.HandlerFor(reg, promhttp.HandlerOpts{}))
logger.Info("Starting HTTP server")
err := http.ListenAndServe(":1234", nil)
if err != nil {
logger.Sugar().Errorf("ListenAndServe failed: %w", err)
}
}