type assertion fix
This commit is contained in:
parent
6ef341193f
commit
7698ea3f86
|
|
@ -333,10 +333,6 @@ func (d *Downsampling) Sum(fields ...Aggregation) (telegraf.Metric, error) {
|
||||||
sums = make(map[string]interface{})
|
sums = make(map[string]interface{})
|
||||||
)
|
)
|
||||||
|
|
||||||
for _, field := range fields {
|
|
||||||
sums[field.Alias] = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
d.RLock()
|
d.RLock()
|
||||||
for _, metric := range d.Metrics {
|
for _, metric := range d.Metrics {
|
||||||
for _, field := range fields {
|
for _, field := range fields {
|
||||||
|
|
@ -344,19 +340,24 @@ func (d *Downsampling) Sum(fields ...Aggregation) (telegraf.Metric, error) {
|
||||||
if !ok {
|
if !ok {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
oldVal := sums[field.Alias]
|
|
||||||
|
oldVal, ok := sums[field.Alias]
|
||||||
|
if !ok {
|
||||||
|
sums[field.Alias] = value
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
switch value := value.(type) {
|
switch value := value.(type) {
|
||||||
case int:
|
case int:
|
||||||
sums[field.Alias] = oldVal.(int) + value
|
|
||||||
case int32:
|
|
||||||
sums[field.Alias] = oldVal.(int32) + value
|
|
||||||
case int64:
|
|
||||||
// TODO fix this
|
|
||||||
sums[field.Alias] = oldVal.(int) + int(value)
|
sums[field.Alias] = oldVal.(int) + int(value)
|
||||||
|
case int32:
|
||||||
|
sums[field.Alias] = oldVal.(int32) + int32(value)
|
||||||
|
case int64:
|
||||||
|
sums[field.Alias] = oldVal.(int64) + int64(value)
|
||||||
case float32:
|
case float32:
|
||||||
sums[field.Alias] = oldVal.(float32) + value
|
sums[field.Alias] = oldVal.(float32) + float32(value)
|
||||||
case float64:
|
case float64:
|
||||||
sums[field.Alias] = oldVal.(float64) + value
|
sums[field.Alias] = oldVal.(float64) + float64(value)
|
||||||
default:
|
default:
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
@ -381,11 +382,6 @@ func (d *Downsampling) Mean(fields ...Aggregation) (telegraf.Metric, error) {
|
||||||
size = len(d.Metrics)
|
size = len(d.Metrics)
|
||||||
)
|
)
|
||||||
|
|
||||||
// initialize sums map
|
|
||||||
for _, field := range fields {
|
|
||||||
sums[field.Alias] = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
d.RLock()
|
d.RLock()
|
||||||
for _, metric := range d.Metrics {
|
for _, metric := range d.Metrics {
|
||||||
for _, field := range fields {
|
for _, field := range fields {
|
||||||
|
|
@ -393,19 +389,24 @@ func (d *Downsampling) Mean(fields ...Aggregation) (telegraf.Metric, error) {
|
||||||
if !ok {
|
if !ok {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
oldVal := sums[field.Alias]
|
|
||||||
|
oldVal, ok := sums[field.Alias]
|
||||||
|
if !ok {
|
||||||
|
sums[field.Alias] = value
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
switch value := value.(type) {
|
switch value := value.(type) {
|
||||||
case int:
|
case int:
|
||||||
sums[field.Alias] = oldVal.(int) + value
|
|
||||||
case int32:
|
|
||||||
sums[field.Alias] = oldVal.(int32) + value
|
|
||||||
case int64:
|
|
||||||
// TODO: fix this
|
|
||||||
sums[field.Alias] = oldVal.(int) + int(value)
|
sums[field.Alias] = oldVal.(int) + int(value)
|
||||||
|
case int32:
|
||||||
|
sums[field.Alias] = oldVal.(int32) + int32(value)
|
||||||
|
case int64:
|
||||||
|
sums[field.Alias] = oldVal.(int64) + int64(value)
|
||||||
case float32:
|
case float32:
|
||||||
sums[field.Alias] = oldVal.(float32) + value
|
sums[field.Alias] = oldVal.(float32) + float32(value)
|
||||||
case float64:
|
case float64:
|
||||||
sums[field.Alias] = oldVal.(float64) + value
|
sums[field.Alias] = oldVal.(float64) + float64(value)
|
||||||
default:
|
default:
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ func TestDownsampling_mean(t *testing.T) {
|
||||||
require.Equal(t, int64(100), aggr.Fields()["mean_value"])
|
require.Equal(t, int64(100), aggr.Fields()["mean_value"])
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDownsamling_sum(t *testing.T) {
|
func TestDownsampling_sum(t *testing.T) {
|
||||||
ds := &Downsampling{}
|
ds := &Downsampling{}
|
||||||
|
|
||||||
err := ds.Add(testutil.TestMetric(120))
|
err := ds.Add(testutil.TestMetric(120))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue