chore: log errors when adding to quantile aggregator (#12191)
This commit is contained in:
parent
8e9a513157
commit
59966d390c
|
|
@ -21,6 +21,8 @@ type Quantile struct {
|
||||||
|
|
||||||
cache map[uint64]aggregate
|
cache map[uint64]aggregate
|
||||||
suffixes []string
|
suffixes []string
|
||||||
|
|
||||||
|
Log telegraf.Logger `toml:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type aggregate struct {
|
type aggregate struct {
|
||||||
|
|
@ -42,7 +44,10 @@ func (q *Quantile) Add(in telegraf.Metric) {
|
||||||
for k, algo := range cached.fields {
|
for k, algo := range cached.fields {
|
||||||
if field, ok := fields[k]; ok {
|
if field, ok := fields[k]; ok {
|
||||||
if v, isconvertible := convert(field); isconvertible {
|
if v, isconvertible := convert(field); isconvertible {
|
||||||
algo.Add(v)
|
err := algo.Add(v)
|
||||||
|
if err != nil {
|
||||||
|
q.Log.Errorf("adding cached field %s: %v", k, err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -59,7 +64,10 @@ func (q *Quantile) Add(in telegraf.Metric) {
|
||||||
if v, isconvertible := convert(field); isconvertible {
|
if v, isconvertible := convert(field); isconvertible {
|
||||||
// This should never error out as we tested it in Init()
|
// This should never error out as we tested it in Init()
|
||||||
algo, _ := q.newAlgorithm(q.Compression)
|
algo, _ := q.newAlgorithm(q.Compression)
|
||||||
algo.Add(v)
|
err := algo.Add(v)
|
||||||
|
if err != nil {
|
||||||
|
q.Log.Errorf("adding field %s: %v", k, err)
|
||||||
|
}
|
||||||
a.fields[k] = algo
|
a.fields[k] = algo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,10 @@ func TestConfigInvalidQuantiles(t *testing.T) {
|
||||||
func TestSingleMetricTDigest(t *testing.T) {
|
func TestSingleMetricTDigest(t *testing.T) {
|
||||||
acc := testutil.Accumulator{}
|
acc := testutil.Accumulator{}
|
||||||
|
|
||||||
q := Quantile{Compression: 100}
|
q := Quantile{
|
||||||
|
Compression: 100,
|
||||||
|
Log: testutil.Logger{},
|
||||||
|
}
|
||||||
err := q.Init()
|
err := q.Init()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
|
@ -113,7 +116,10 @@ func TestSingleMetricTDigest(t *testing.T) {
|
||||||
func TestMultipleMetricsTDigest(t *testing.T) {
|
func TestMultipleMetricsTDigest(t *testing.T) {
|
||||||
acc := testutil.Accumulator{}
|
acc := testutil.Accumulator{}
|
||||||
|
|
||||||
q := Quantile{Compression: 100}
|
q := Quantile{
|
||||||
|
Compression: 100,
|
||||||
|
Log: testutil.Logger{},
|
||||||
|
}
|
||||||
err := q.Init()
|
err := q.Init()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
|
@ -173,7 +179,10 @@ func TestMultipleMetricsTDigest(t *testing.T) {
|
||||||
func TestSingleMetricExactR7(t *testing.T) {
|
func TestSingleMetricExactR7(t *testing.T) {
|
||||||
acc := testutil.Accumulator{}
|
acc := testutil.Accumulator{}
|
||||||
|
|
||||||
q := Quantile{AlgorithmType: "exact R7"}
|
q := Quantile{
|
||||||
|
AlgorithmType: "exact R7",
|
||||||
|
Log: testutil.Logger{},
|
||||||
|
}
|
||||||
err := q.Init()
|
err := q.Init()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
|
@ -240,7 +249,10 @@ func TestSingleMetricExactR7(t *testing.T) {
|
||||||
func TestMultipleMetricsExactR7(t *testing.T) {
|
func TestMultipleMetricsExactR7(t *testing.T) {
|
||||||
acc := testutil.Accumulator{}
|
acc := testutil.Accumulator{}
|
||||||
|
|
||||||
q := Quantile{AlgorithmType: "exact R7"}
|
q := Quantile{
|
||||||
|
AlgorithmType: "exact R7",
|
||||||
|
Log: testutil.Logger{},
|
||||||
|
}
|
||||||
err := q.Init()
|
err := q.Init()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
|
@ -300,7 +312,10 @@ func TestMultipleMetricsExactR7(t *testing.T) {
|
||||||
func TestSingleMetricExactR8(t *testing.T) {
|
func TestSingleMetricExactR8(t *testing.T) {
|
||||||
acc := testutil.Accumulator{}
|
acc := testutil.Accumulator{}
|
||||||
|
|
||||||
q := Quantile{AlgorithmType: "exact R8"}
|
q := Quantile{
|
||||||
|
AlgorithmType: "exact R8",
|
||||||
|
Log: testutil.Logger{},
|
||||||
|
}
|
||||||
err := q.Init()
|
err := q.Init()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
|
@ -367,7 +382,10 @@ func TestSingleMetricExactR8(t *testing.T) {
|
||||||
func TestMultipleMetricsExactR8(t *testing.T) {
|
func TestMultipleMetricsExactR8(t *testing.T) {
|
||||||
acc := testutil.Accumulator{}
|
acc := testutil.Accumulator{}
|
||||||
|
|
||||||
q := Quantile{AlgorithmType: "exact R8"}
|
q := Quantile{
|
||||||
|
AlgorithmType: "exact R8",
|
||||||
|
Log: testutil.Logger{},
|
||||||
|
}
|
||||||
err := q.Init()
|
err := q.Init()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
|
@ -444,7 +462,10 @@ func BenchmarkDefaultTDigest(b *testing.B) {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
q := Quantile{Compression: 100}
|
q := Quantile{
|
||||||
|
Compression: 100,
|
||||||
|
Log: testutil.Logger{},
|
||||||
|
}
|
||||||
err := q.Init()
|
err := q.Init()
|
||||||
require.NoError(b, err)
|
require.NoError(b, err)
|
||||||
|
|
||||||
|
|
@ -481,7 +502,11 @@ func BenchmarkDefaultTDigest100Q(b *testing.B) {
|
||||||
quantiles[i] = 0.01 * float64(i)
|
quantiles[i] = 0.01 * float64(i)
|
||||||
}
|
}
|
||||||
|
|
||||||
q := Quantile{Compression: 100, Quantiles: quantiles}
|
q := Quantile{
|
||||||
|
Compression: 100,
|
||||||
|
Quantiles: quantiles,
|
||||||
|
Log: testutil.Logger{},
|
||||||
|
}
|
||||||
err := q.Init()
|
err := q.Init()
|
||||||
require.NoError(b, err)
|
require.NoError(b, err)
|
||||||
|
|
||||||
|
|
@ -514,7 +539,10 @@ func BenchmarkDefaultExactR7(b *testing.B) {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
q := Quantile{AlgorithmType: "exact R7"}
|
q := Quantile{
|
||||||
|
AlgorithmType: "exact R7",
|
||||||
|
Log: testutil.Logger{},
|
||||||
|
}
|
||||||
err := q.Init()
|
err := q.Init()
|
||||||
require.NoError(b, err)
|
require.NoError(b, err)
|
||||||
|
|
||||||
|
|
@ -551,7 +579,11 @@ func BenchmarkDefaultExactR7100Q(b *testing.B) {
|
||||||
quantiles[i] = 0.01 * float64(i)
|
quantiles[i] = 0.01 * float64(i)
|
||||||
}
|
}
|
||||||
|
|
||||||
q := Quantile{AlgorithmType: "exact R7", Quantiles: quantiles}
|
q := Quantile{
|
||||||
|
AlgorithmType: "exact R7",
|
||||||
|
Quantiles: quantiles,
|
||||||
|
Log: testutil.Logger{},
|
||||||
|
}
|
||||||
err := q.Init()
|
err := q.Init()
|
||||||
require.NoError(b, err)
|
require.NoError(b, err)
|
||||||
|
|
||||||
|
|
@ -584,7 +616,10 @@ func BenchmarkDefaultExactR8(b *testing.B) {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
q := Quantile{AlgorithmType: "exact R8"}
|
q := Quantile{
|
||||||
|
AlgorithmType: "exact R8",
|
||||||
|
Log: testutil.Logger{},
|
||||||
|
}
|
||||||
err := q.Init()
|
err := q.Init()
|
||||||
require.NoError(b, err)
|
require.NoError(b, err)
|
||||||
|
|
||||||
|
|
@ -621,7 +656,11 @@ func BenchmarkDefaultExactR8100Q(b *testing.B) {
|
||||||
quantiles[i] = 0.01 * float64(i)
|
quantiles[i] = 0.01 * float64(i)
|
||||||
}
|
}
|
||||||
|
|
||||||
q := Quantile{AlgorithmType: "exact R8", Quantiles: quantiles}
|
q := Quantile{
|
||||||
|
AlgorithmType: "exact R8",
|
||||||
|
Quantiles: quantiles,
|
||||||
|
Log: testutil.Logger{},
|
||||||
|
}
|
||||||
err := q.Init()
|
err := q.Init()
|
||||||
require.NoError(b, err)
|
require.NoError(b, err)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue