{% import (
	"github.com/VictoriaMetrics/VictoriaMetrics/lib/querytracer"
	"github.com/VictoriaMetrics/VictoriaMetrics/lib/storage"
) %}

{% stripspace %}
TSDBStatusResponse generates response for /api/v1/status/tsdb .
{% func TSDBStatusResponse(isPartial bool, status *storage.TSDBStatus, qt *querytracer.Tracer) %}
{
	"status":"success",
	"isPartial":{% if isPartial %}true{% else %}false{% endif %},
	"data":{
		"totalSeries": {%dul= status.TotalSeries %},
		"totalLabelValuePairs": {%dul= status.TotalLabelValuePairs %},
		"seriesCountByMetricName":{%= tsdbStatusEntries(status.SeriesCountByMetricName) %},
		"seriesCountByLabelName":{%= tsdbStatusEntries(status.SeriesCountByLabelName) %},
		"seriesCountByFocusLabelValue":{%= tsdbStatusEntries(status.SeriesCountByFocusLabelValue) %},
		"seriesCountByLabelValuePair":{%= tsdbStatusEntries(status.SeriesCountByLabelValuePair) %},
		"labelValueCountByLabelName":{%= tsdbStatusEntries(status.LabelValueCountByLabelName) %}
	}
	{% code	qt.Done() %}
	{%= dumpQueryTrace(qt) %}
}
{% endfunc %}

{% func tsdbStatusEntries(a []storage.TopHeapEntry) %}
[
	{% for i, e := range a %}
		{
			"name":{%q= e.Name %},
			"value":{%d= int(e.Count) %}
		}
		{% if i+1 < len(a) %},{% endif %}
	{% endfor %}
]
{% endfunc %}

{% endstripspace %}