pkg/server/info.go (33 lines of code) (raw):
package server
import (
"net/http"
"github.com/JetBrains/ij-perf-report-aggregator/pkg/analyzer"
"github.com/valyala/bytebufferpool"
"github.com/valyala/quicktemplate"
)
func (t *StatsServer) handleMetaMeasureRequest(_ *http.Request) (*bytebufferpool.ByteBuffer, bool, error) {
buffer := byteBufferPool.Get()
isOk := false
defer func() {
if !isOk {
byteBufferPool.Put(buffer)
}
}()
measureNames := make([]string, len(analyzer.IjMetricDescriptors))
for index, descriptor := range analyzer.IjMetricDescriptors {
measureNames[index] = descriptor.Name
}
templateWriter := quicktemplate.AcquireWriter(buffer)
defer quicktemplate.ReleaseWriter(templateWriter)
jsonWriter := templateWriter.N()
jsonWriter.S("[")
for index, name := range measureNames {
if index != 0 {
jsonWriter.S(",")
}
jsonWriter.Q(name)
}
jsonWriter.S("]")
isOk = true
return buffer, true, nil
}