Use FieldList in basicstats to improve performance (#4741)
This commit is contained in:
parent
38e5e103ce
commit
54e61aa78a
|
@ -72,9 +72,9 @@ func (m *BasicStats) Add(in telegraf.Metric) {
|
||||||
tags: in.Tags(),
|
tags: in.Tags(),
|
||||||
fields: make(map[string]basicstats),
|
fields: make(map[string]basicstats),
|
||||||
}
|
}
|
||||||
for k, v := range in.Fields() {
|
for _, field := range in.FieldList() {
|
||||||
if fv, ok := convert(v); ok {
|
if fv, ok := convert(field.Value); ok {
|
||||||
a.fields[k] = basicstats{
|
a.fields[field.Key] = basicstats{
|
||||||
count: 1,
|
count: 1,
|
||||||
min: fv,
|
min: fv,
|
||||||
max: fv,
|
max: fv,
|
||||||
|
@ -86,11 +86,11 @@ func (m *BasicStats) Add(in telegraf.Metric) {
|
||||||
}
|
}
|
||||||
m.cache[id] = a
|
m.cache[id] = a
|
||||||
} else {
|
} else {
|
||||||
for k, v := range in.Fields() {
|
for _, field := range in.FieldList() {
|
||||||
if fv, ok := convert(v); ok {
|
if fv, ok := convert(field.Value); ok {
|
||||||
if _, ok := m.cache[id].fields[k]; !ok {
|
if _, ok := m.cache[id].fields[field.Key]; !ok {
|
||||||
// hit an uncached field of a cached metric
|
// hit an uncached field of a cached metric
|
||||||
m.cache[id].fields[k] = basicstats{
|
m.cache[id].fields[field.Key] = basicstats{
|
||||||
count: 1,
|
count: 1,
|
||||||
min: fv,
|
min: fv,
|
||||||
max: fv,
|
max: fv,
|
||||||
|
@ -101,7 +101,7 @@ func (m *BasicStats) Add(in telegraf.Metric) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
tmp := m.cache[id].fields[k]
|
tmp := m.cache[id].fields[field.Key]
|
||||||
//https://en.m.wikipedia.org/wiki/Algorithms_for_calculating_variance
|
//https://en.m.wikipedia.org/wiki/Algorithms_for_calculating_variance
|
||||||
//variable initialization
|
//variable initialization
|
||||||
x := fv
|
x := fv
|
||||||
|
@ -126,7 +126,7 @@ func (m *BasicStats) Add(in telegraf.Metric) {
|
||||||
//sum compute
|
//sum compute
|
||||||
tmp.sum += fv
|
tmp.sum += fv
|
||||||
//store final data
|
//store final data
|
||||||
m.cache[id].fields[k] = tmp
|
m.cache[id].fields[field.Key] = tmp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue