fix: Add metric name is a label with name "__name" to Loki output plugin (#10001)
This commit is contained in:
parent
0133f1206b
commit
e73ffe56c4
|
|
@ -1,6 +1,6 @@
|
|||
# Loki Output Plugin
|
||||
|
||||
This plugin sends logs to Loki, using tags as labels,
|
||||
This plugin sends logs to Loki, using metric name and tags as labels,
|
||||
log line will content all fields in `key="value"` format which is easily parsable with `logfmt` parser in Loki.
|
||||
|
||||
Logs within each stream are sorted by timestamp before being sent to Loki.
|
||||
|
|
|
|||
|
|
@ -143,6 +143,8 @@ func (l *Loki) Write(metrics []telegraf.Metric) error {
|
|||
})
|
||||
|
||||
for _, m := range metrics {
|
||||
m.AddTag("__name", m.Name())
|
||||
|
||||
tags := m.TagList()
|
||||
var line string
|
||||
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ func TestContentEncodingGzip(t *testing.T) {
|
|||
require.Len(t, s.Streams, 1)
|
||||
require.Len(t, s.Streams[0].Logs, 1)
|
||||
require.Len(t, s.Streams[0].Logs[0], 2)
|
||||
require.Equal(t, map[string]string{"key1": "value1"}, s.Streams[0].Labels)
|
||||
require.Equal(t, map[string]string{"__name": "log", "key1": "value1"}, s.Streams[0].Labels)
|
||||
require.Equal(t, "123000000000", s.Streams[0].Logs[0][0])
|
||||
require.Contains(t, s.Streams[0].Logs[0][1], "line=\"my log\"")
|
||||
require.Contains(t, s.Streams[0].Logs[0][1], "field=\"3.14\"")
|
||||
|
|
@ -404,7 +404,7 @@ func TestMetricSorting(t *testing.T) {
|
|||
require.Len(t, s.Streams, 1)
|
||||
require.Len(t, s.Streams[0].Logs, 2)
|
||||
require.Len(t, s.Streams[0].Logs[0], 2)
|
||||
require.Equal(t, map[string]string{"key1": "value1"}, s.Streams[0].Labels)
|
||||
require.Equal(t, map[string]string{"__name": "log", "key1": "value1"}, s.Streams[0].Labels)
|
||||
require.Equal(t, "456000000000", s.Streams[0].Logs[0][0])
|
||||
require.Contains(t, s.Streams[0].Logs[0][1], "line=\"older log\"")
|
||||
require.Contains(t, s.Streams[0].Logs[0][1], "field=\"3.14\"")
|
||||
|
|
|
|||
Loading…
Reference in New Issue