mirror of
https://github.com/grafana/grafana.git
synced 2025-07-28 06:52:08 +08:00

* Chore: Refactor api handlers to use web.Bind * fix comments * fix comment * trying to fix most of the tests and force routing.Wrap type check * fix library panels tests * fix frontend logging tests * allow passing nil as a response to skip writing * return nil instead of the response * rewrite login handler function types * remove handlerFuncCtx * make linter happy * remove old bindings from the libraryelements * restore comments
28 lines
756 B
Go
28 lines
756 B
Go
package api
|
|
|
|
import (
|
|
"net/http"
|
|
"strings"
|
|
|
|
"github.com/grafana/grafana/pkg/api/response"
|
|
"github.com/grafana/grafana/pkg/infra/metrics"
|
|
"github.com/grafana/grafana/pkg/models"
|
|
"github.com/grafana/grafana/pkg/web"
|
|
)
|
|
|
|
func (hs *HTTPServer) PostFrontendMetrics(c *models.ReqContext) response.Response {
|
|
cmd := metrics.PostFrontendMetricsCommand{}
|
|
if err := web.Bind(c.Req, &cmd); err != nil {
|
|
return response.Error(http.StatusBadRequest, "bad request data", err)
|
|
}
|
|
for _, event := range cmd.Events {
|
|
name := strings.Replace(event.Name, "-", "_", -1)
|
|
if recorder, ok := metrics.FrontendMetrics[name]; ok {
|
|
recorder(event)
|
|
} else {
|
|
c.Logger.Debug("Received unknown frontend metric", "metric", name)
|
|
}
|
|
}
|
|
return response.Empty(200)
|
|
}
|