{% import ( "github.com/VictoriaMetrics/VictoriaMetrics/lib/querytracer" "github.com/VictoriaMetrics/VictoriaMetrics/lib/storage" ) %} {% stripspace %} {% func metricNameObject(mn *storage.MetricName) %} { {% if len(mn.MetricGroup) > 0 %} "__name__":{%qz= mn.MetricGroup %}{% if len(mn.Tags) > 0 %},{% endif %} {% endif %} {% for j := range mn.Tags %} {% code tag := &mn.Tags[j] %} {%qz= tag.Key %}:{%qz= tag.Value %}{% if j+1 < len(mn.Tags) %},{% endif %} {% endfor %} } {% endfunc %} {% func metricRow(timestamp int64, value float64) %} [{%f= float64(timestamp)/1e3 %},"{%f= value %}"] {% endfunc %} {% func valuesWithTimestamps(values []float64, timestamps []int64) %} {% if len(values) == 0 %} [] {% return %} {% endif %} [ {% code /* inline metricRow call here for the sake of performance optimization */ %} [{%f= float64(timestamps[0])/1e3 %},"{%f= values[0] %}"] {% code timestamps = timestamps[1:] values = values[1:] %} {% if len(values) > 0 %} {%code // Remove bounds check inside the loop below _ = timestamps[len(values)-1] %} {% for i, v := range values %} {% code /* inline metricRow call here for the sake of performance optimization */ %} ,[{%f= float64(timestamps[i])/1e3 %},"{%f= v %}"] {% endfor %} {% endif %} ] {% endfunc %} {% func dumpQueryTrace(qt *querytracer.Tracer) %} {% code traceJSON := qt.ToJSON() %} {% if traceJSON != "" %},"trace":{%s= traceJSON %}{% endif %} {% endfunc %} {% endstripspace %}