{% import (
	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmselect/netstorage"
	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmselect/promql"
	"github.com/VictoriaMetrics/VictoriaMetrics/lib/querytracer"
) %}

{% stripspace %}
QueryResponse generates response for /api/v1/query.
See https://prometheus.io/docs/prometheus/latest/querying/api/#instant-queries
{% func QueryResponse(rs []netstorage.Result, qt *querytracer.Tracer, qtDone func(), qs *promql.QueryStats) %}
{
	{% code seriesCount := len(rs) %}
	"status":"success",
	"data":{
		"resultType":"vector",
		"result":[
			{% if len(rs) > 0 %}
				{
					"metric": {%= metricNameObject(&rs[0].MetricName) %},
					"value": {%= metricRow(rs[0].Timestamps[0], rs[0].Values[0]) %}
				}
				{% code rs = rs[1:] %}
				{% for i := range rs %}
					{% code r := &rs[i] %}
					,{
						"metric": {%= metricNameObject(&r.MetricName) %},
						"value": {%= metricRow(r.Timestamps[0], r.Values[0]) %}
					}
				{% endfor %}
			{% endif %}
		]
	},
	"stats":{
	    "seriesFetched": "{%d qs.SeriesFetched %}"
	}
	{% code
		qt.Printf("generate /api/v1/query response for series=%d", seriesCount)
		qtDone()
	%}
	{%= dumpQueryTrace(qt) %}
}
{% endfunc %}
{% endstripspace %}