Like Prometheus, but for logs.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
loki/pkg/analytics/handler.go

32 lines
574 B

package analytics
import (
"encoding/json"
"net/http"
"sync"
"time"
)
var (
seed = &ClusterSeed{}
rw sync.RWMutex
)
func setSeed(s *ClusterSeed) {
rw.Lock()
defer rw.Unlock()
seed = s
}
func Handler() http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
rw.RLock()
defer rw.RUnlock()
report := buildReport(seed, time.Now())
w.Header().Set("Content-Type", "application/json")
if err := json.NewEncoder(w).Encode(report); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
})
}