Adding upstream version 1.34.4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
e393c3af3f
commit
4978089aab
4963 changed files with 677545 additions and 0 deletions
157
plugins/outputs/loki/stream_test.go
Normal file
157
plugins/outputs/loki/stream_test.go
Normal file
|
@ -0,0 +1,157 @@
|
|||
package loki
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/influxdata/telegraf"
|
||||
)
|
||||
|
||||
type tuple struct {
|
||||
key, value string
|
||||
}
|
||||
|
||||
func generateLabelsAndTag(tt ...tuple) (map[string]string, []*telegraf.Tag) {
|
||||
labels := map[string]string{}
|
||||
tags := make([]*telegraf.Tag, 0, len(tt))
|
||||
for _, t := range tt {
|
||||
labels[t.key] = t.value
|
||||
tags = append(tags, &telegraf.Tag{Key: t.key, Value: t.value})
|
||||
}
|
||||
|
||||
return labels, tags
|
||||
}
|
||||
|
||||
func TestGenerateLabelsAndTag(t *testing.T) {
|
||||
labels, tags := generateLabelsAndTag(
|
||||
tuple{key: "key1", value: "value1"},
|
||||
tuple{key: "key2", value: "value2"},
|
||||
tuple{key: "key3", value: "value3"},
|
||||
)
|
||||
|
||||
expectedTags := []*telegraf.Tag{
|
||||
{Key: "key1", Value: "value1"},
|
||||
{Key: "key2", Value: "value2"},
|
||||
{Key: "key3", Value: "value3"},
|
||||
}
|
||||
|
||||
require.Len(t, labels, 3)
|
||||
require.Len(t, tags, 3)
|
||||
require.Equal(t, map[string]string{"key1": "value1", "key2": "value2", "key3": "value3"}, labels)
|
||||
require.Equal(t, map[string]string{"key1": "value1", "key2": "value2", "key3": "value3"}, labels)
|
||||
require.Equal(t, expectedTags, tags)
|
||||
}
|
||||
|
||||
func TestStream_insertLog(t *testing.T) {
|
||||
s := Streams{}
|
||||
log1 := Log{"123", "this log isn't useful"}
|
||||
log2 := Log{"124", "this log isn't useful neither"}
|
||||
log3 := Log{"122", "again"}
|
||||
|
||||
key1 := "key1-value1-key2-value2-key3-value3-"
|
||||
labels1, tags1 := generateLabelsAndTag(
|
||||
tuple{key: "key1", value: "value1"},
|
||||
tuple{key: "key2", value: "value2"},
|
||||
tuple{key: "key3", value: "value3"},
|
||||
)
|
||||
|
||||
key2 := "key2-value2-"
|
||||
labels2, tags2 := generateLabelsAndTag(
|
||||
tuple{key: "key2", value: "value2"},
|
||||
)
|
||||
|
||||
s.insertLog(tags1, log1)
|
||||
|
||||
require.Len(t, s, 1)
|
||||
require.Contains(t, s, key1)
|
||||
require.Len(t, s[key1].Logs, 1)
|
||||
require.Equal(t, labels1, s[key1].Labels)
|
||||
require.Equal(t, "123", s[key1].Logs[0][0])
|
||||
require.Equal(t, "this log isn't useful", s[key1].Logs[0][1])
|
||||
|
||||
s.insertLog(tags1, log2)
|
||||
|
||||
require.Len(t, s, 1)
|
||||
require.Len(t, s[key1].Logs, 2)
|
||||
require.Equal(t, "124", s[key1].Logs[1][0])
|
||||
require.Equal(t, "this log isn't useful neither", s[key1].Logs[1][1])
|
||||
|
||||
s.insertLog(tags2, log3)
|
||||
|
||||
require.Len(t, s, 2)
|
||||
require.Contains(t, s, key2)
|
||||
require.Len(t, s[key2].Logs, 1)
|
||||
require.Equal(t, labels2, s[key2].Labels)
|
||||
require.Equal(t, "122", s[key2].Logs[0][0])
|
||||
require.Equal(t, "again", s[key2].Logs[0][1])
|
||||
}
|
||||
|
||||
func TestUniqKeyFromTagList(t *testing.T) {
|
||||
tests := []struct {
|
||||
in []*telegraf.Tag
|
||||
out string
|
||||
}{
|
||||
{
|
||||
in: []*telegraf.Tag{
|
||||
{Key: "key1", Value: "value1"},
|
||||
{Key: "key2", Value: "value2"},
|
||||
{Key: "key3", Value: "value3"},
|
||||
},
|
||||
out: "key1-value1-key2-value2-key3-value3-",
|
||||
},
|
||||
{
|
||||
in: []*telegraf.Tag{
|
||||
{Key: "key1", Value: "value1"},
|
||||
{Key: "key3", Value: "value3"},
|
||||
{Key: "key4", Value: "value4"},
|
||||
},
|
||||
out: "key1-value1-key3-value3-key4-value4-",
|
||||
},
|
||||
{
|
||||
in: []*telegraf.Tag{
|
||||
{Key: "target", Value: "local"},
|
||||
{Key: "host", Value: "host"},
|
||||
{Key: "service", Value: "dns"},
|
||||
},
|
||||
out: "target-local-host-host-service-dns-",
|
||||
},
|
||||
{
|
||||
in: []*telegraf.Tag{
|
||||
{Key: "target", Value: "localhost"},
|
||||
{Key: "hostservice", Value: "dns"},
|
||||
},
|
||||
out: "target-localhost-hostservice-dns-",
|
||||
},
|
||||
{
|
||||
in: []*telegraf.Tag{
|
||||
{Key: "target-local", Value: "host-"},
|
||||
},
|
||||
out: "target--local-host---",
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
require.Equal(t, test.out, uniqKeyFromTagList(test.in))
|
||||
}
|
||||
}
|
||||
|
||||
func Test_newStream(t *testing.T) {
|
||||
labels, tags := generateLabelsAndTag(
|
||||
tuple{key: "key1", value: "value1"},
|
||||
tuple{key: "key2", value: "value2"},
|
||||
tuple{key: "key3", value: "value3"},
|
||||
)
|
||||
|
||||
s := newStream(tags)
|
||||
|
||||
require.Empty(t, s.Logs)
|
||||
require.Equal(t, s.Labels, labels)
|
||||
}
|
||||
|
||||
func Test_newStream_noTag(t *testing.T) {
|
||||
s := newStream(nil)
|
||||
|
||||
require.Empty(t, s.Logs)
|
||||
require.Empty(t, s.Labels)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue