2023-06-20 05:55:12 +00:00
|
|
|
{% import (
|
|
|
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/logstorage"
|
|
|
|
) %}
|
|
|
|
|
|
|
|
{% stripspace %}
|
|
|
|
|
|
|
|
// JSONRow creates JSON row from the given fields.
|
|
|
|
{% func JSONRow(columns []logstorage.BlockColumn, rowIdx int) %}
|
2024-10-14 21:39:29 +00:00
|
|
|
{% code
|
|
|
|
i := 0
|
|
|
|
for i < len(columns) && columns[i].Values[rowIdx] == "" {
|
|
|
|
i++
|
|
|
|
}
|
|
|
|
columns = columns[i:]
|
|
|
|
%}
|
|
|
|
{% if len(columns) == 0 %}
|
|
|
|
{% return %}
|
|
|
|
{% endif %}
|
|
|
|
{
|
|
|
|
{% code c := &columns[0] %}
|
2023-06-20 05:55:12 +00:00
|
|
|
{%q= c.Name %}:{%q= c.Values[rowIdx] %}
|
|
|
|
{% code columns = columns[1:] %}
|
|
|
|
{% for colIdx := range columns %}
|
2024-10-14 21:39:29 +00:00
|
|
|
{% code
|
|
|
|
c := &columns[colIdx]
|
|
|
|
v := c.Values[rowIdx]
|
|
|
|
%}
|
|
|
|
{% if v == "" %}
|
|
|
|
{% continue %}
|
|
|
|
{% endif %}
|
2023-06-20 05:55:12 +00:00
|
|
|
,{%q= c.Name %}:{%q= c.Values[rowIdx] %}
|
|
|
|
{% endfor %}
|
2024-10-14 21:39:29 +00:00
|
|
|
}{% newline %}
|
2023-06-20 05:55:12 +00:00
|
|
|
{% endfunc %}
|
|
|
|
|
2023-06-21 08:10:45 +00:00
|
|
|
// JSONRows prints formatted rows
|
|
|
|
{% func JSONRows(rows [][]logstorage.Field) %}
|
|
|
|
{% if len(rows) == 0 %}
|
|
|
|
{% return %}
|
|
|
|
{% endif %}
|
|
|
|
{% for _, fields := range rows %}
|
2024-10-14 21:39:29 +00:00
|
|
|
{% code fields = logstorage.SkipLeadingFieldsWithoutValues(fields) %}
|
|
|
|
{% if len(fields) == 0 %}
|
|
|
|
{% continue %}
|
|
|
|
{% endif %}
|
|
|
|
{
|
2023-06-21 08:10:45 +00:00
|
|
|
{% if len(fields) > 0 %}
|
|
|
|
{% code
|
|
|
|
f := fields[0]
|
|
|
|
fields = fields[1:]
|
|
|
|
%}
|
|
|
|
{%q= f.Name %}:{%q= f.Value %}
|
|
|
|
{% for _, f := range fields %}
|
2024-10-14 21:39:29 +00:00
|
|
|
{% if f.Value == "" %}
|
|
|
|
{% continue %}
|
|
|
|
{% endif %}
|
2023-06-21 08:10:45 +00:00
|
|
|
,{%q= f.Name %}:{%q= f.Value %}
|
|
|
|
{% endfor %}
|
|
|
|
{% endif %}
|
2024-10-14 21:39:29 +00:00
|
|
|
}{% newline %}
|
2023-06-21 08:10:45 +00:00
|
|
|
{% endfor %}
|
|
|
|
{% endfunc %}
|
|
|
|
|
2023-06-20 05:55:12 +00:00
|
|
|
{% endstripspace %}
|