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
70
plugins/outputs/loki/stream.go
Normal file
70
plugins/outputs/loki/stream.go
Normal file
|
@ -0,0 +1,70 @@
|
|||
package loki
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/influxdata/telegraf"
|
||||
)
|
||||
|
||||
type (
|
||||
Log []string
|
||||
|
||||
Streams map[string]*Stream
|
||||
|
||||
Stream struct {
|
||||
Labels map[string]string `json:"stream"`
|
||||
Logs []Log `json:"values"`
|
||||
}
|
||||
|
||||
Request struct {
|
||||
Streams []Stream `json:"streams"`
|
||||
}
|
||||
)
|
||||
|
||||
func (s Streams) insertLog(ts []*telegraf.Tag, l Log) {
|
||||
key := uniqKeyFromTagList(ts)
|
||||
|
||||
if _, ok := s[key]; !ok {
|
||||
s[key] = newStream(ts)
|
||||
}
|
||||
|
||||
s[key].Logs = append(s[key].Logs, l)
|
||||
}
|
||||
|
||||
func (s Streams) MarshalJSON() ([]byte, error) {
|
||||
r := Request{
|
||||
Streams: make([]Stream, 0, len(s)),
|
||||
}
|
||||
|
||||
for _, stream := range s {
|
||||
r.Streams = append(r.Streams, *stream)
|
||||
}
|
||||
|
||||
return json.Marshal(r)
|
||||
}
|
||||
|
||||
func uniqKeyFromTagList(ts []*telegraf.Tag) (k string) {
|
||||
for _, t := range ts {
|
||||
k += fmt.Sprintf("%s-%s-",
|
||||
strings.ReplaceAll(t.Key, "-", "--"),
|
||||
strings.ReplaceAll(t.Value, "-", "--"),
|
||||
)
|
||||
}
|
||||
|
||||
return k
|
||||
}
|
||||
|
||||
func newStream(ts []*telegraf.Tag) *Stream {
|
||||
s := &Stream{
|
||||
Logs: make([]Log, 0),
|
||||
Labels: make(map[string]string, len(ts)),
|
||||
}
|
||||
|
||||
for _, t := range ts {
|
||||
s.Labels[t.Key] = t.Value
|
||||
}
|
||||
|
||||
return s
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue