Skip to content

Commit

Permalink
fix name tag for moving* functions
Browse files Browse the repository at this point in the history
  • Loading branch information
npazosmendez committed Jul 31, 2024
1 parent 45c8e4f commit 7b0616b
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 24 deletions.
3 changes: 2 additions & 1 deletion expr/functions/moving/function.go
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,8 @@ func (f *moving) Do(ctx context.Context, eval interfaces.Evaluator, e parser.Exp
result := make([]*types.MetricData, len(adjustedArgs))

for j, a := range adjustedArgs {
r := a.CopyName(e.Target() + "(" + a.Name + "," + argstr + ")")
r := a.CopyLink()
r.Name = e.Target() + "(" + a.Name + "," + argstr + ")"
r.Tags[e.Target()] = argstr

if e.Arg(1).Type() == parser.EtString {
Expand Down
46 changes: 23 additions & 23 deletions expr/functions/moving/function_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 10, Until: 25}: {types.MakeMetricData("metric1", []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN()}, 1, 10)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingAverage(metric1,10)`,
[]float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN()}, 1, 20).SetTag("movingAverage", "10").SetNameTag(`movingAverage(metric1,10)`)},
[]float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN()}, 1, 20).SetTag("movingAverage", "10").SetNameTag(`metric1`)},
From: 20,
Until: 25,
},
Expand All @@ -47,7 +47,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 10, Until: 30}: {types.MakeMetricData("metric1", []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, 1, 10)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingAverage(metric1,10)`,
[]float64{0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5}, 1, 20).SetTag("movingAverage", "10").SetNameTag(`movingAverage(metric1,10)`)},
[]float64{0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5}, 1, 20).SetTag("movingAverage", "10").SetNameTag(`metric1`)},
From: 20,
Until: 30,
},
Expand All @@ -58,7 +58,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 550, Until: 710}: {types.MakeMetricData("metric1", th.GenerateValues(0, 100, 1), 1, 600)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingAverage(metric1,60)`,
[]float64{30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5}, 1, 660).SetTag("movingAverage", "60").SetNameTag(`movingAverage(metric1,60)`)},
[]float64{30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5}, 1, 660).SetTag("movingAverage", "60").SetNameTag(`metric1`)},
From: 610,
Until: 710,
},
Expand All @@ -69,7 +69,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 550, Until: 710}: {types.MakeMetricData("metric1", th.GenerateValues(0, 100, 1), 1, 600)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingAverage(metric1,'-1min')`,
[]float64{30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5}, 1, 660).SetTag("movingAverage", "'-1min'").SetNameTag(`movingAverage(metric1,'-1min')`)},
[]float64{30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5}, 1, 660).SetTag("movingAverage", "'-1min'").SetNameTag(`metric1`)},
From: 610,
Until: 710,
},
Expand All @@ -80,7 +80,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 10, Until: 30}: {types.MakeMetricData("metric1", []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, 1, 10)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingMedian(metric1,10)`,
[]float64{0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5}, 1, 20).SetTag("movingMedian", "10").SetNameTag(`movingMedian(metric1,10)`)},
[]float64{0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5}, 1, 20).SetTag("movingMedian", "10").SetNameTag(`metric1`)},
From: 20,
Until: 30,
},
Expand All @@ -91,7 +91,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 10, Until: 25}: {types.MakeMetricData("metric1", []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN()}, 1, 10)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingMedian(metric1,10)`,
[]float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN()}, 1, 20).SetTag("movingMedian", "10").SetNameTag(`movingMedian(metric1,10)`)},
[]float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN()}, 1, 20).SetTag("movingMedian", "10").SetNameTag(`metric1`)},
From: 20,
Until: 25,
},
Expand All @@ -102,7 +102,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 550, Until: 710}: {types.MakeMetricData("metric1", th.GenerateValues(0, 100, 1), 1, 600)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingMedian(metric1,60)`,
[]float64{30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5}, 1, 660).SetTag("movingMedian", "60").SetNameTag(`movingMedian(metric1,60)`)},
[]float64{30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5}, 1, 660).SetTag("movingMedian", "60").SetNameTag(`metric1`)},
From: 610,
Until: 710,
},
Expand All @@ -113,7 +113,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 550, Until: 710}: {types.MakeMetricData("metric1", th.GenerateValues(0, 100, 1), 1, 600)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingMedian(metric1,'1min')`,
[]float64{30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5}, 1, 660).SetTag("movingMedian", "'1min'").SetNameTag(`movingMedian(metric1,'1min')`)},
[]float64{30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5}, 1, 660).SetTag("movingMedian", "'1min'").SetNameTag(`metric1`)},
From: 610,
Until: 710,
},
Expand All @@ -124,7 +124,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 550, Until: 710}: {types.MakeMetricData("metric1", th.GenerateValues(0, 100, 1), 1, 600)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingMedian(metric1,'-1min')`,
[]float64{30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5}, 1, 660).SetTag("movingMedian", "'-1min'").SetNameTag(`movingMedian(metric1,'-1min')`)},
[]float64{30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5}, 1, 660).SetTag("movingMedian", "'-1min'").SetNameTag(`metric1`)},
From: 610,
Until: 710,
},
Expand All @@ -135,7 +135,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 607, Until: 710}: {types.MakeMetricData("metric1", []float64{1, 2, 3, 1, 2, 3}, 1, 607)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingWindow(metric1,'3sec')`,
[]float64{2, 2, 2}, 1, 610).SetTag("movingWindow", "'3sec'").SetNameTag(`movingWindow(metric1,'3sec')`)},
[]float64{2, 2, 2}, 1, 610).SetTag("movingWindow", "'3sec'").SetNameTag(`metric1`)},
From: 610,
Until: 710,
},
Expand All @@ -146,7 +146,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 607, Until: 710}: {types.MakeMetricData("metric1", []float64{1, 2, math.NaN(), 1, math.NaN(), 3}, 1, 607)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingWindow(metric1,'3sec')`,
[]float64{1, 0.3333333333333333, 1.3333333333333333}, 1, 610).SetTag("movingWindow", "'3sec'").SetNameTag(`movingWindow(metric1,'3sec')`)},
[]float64{1, 0.3333333333333333, 1.3333333333333333}, 1, 610).SetTag("movingWindow", "'3sec'").SetNameTag(`metric1`)},
From: 610,
Until: 710,
},
Expand All @@ -157,7 +157,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 607, Until: 710}: {types.MakeMetricData("metric1", []float64{1, 2, math.NaN(), 1, math.NaN(), 3}, 1, 607)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingWindow(metric1,'3sec')`,
[]float64{2, 1, 2}, 1, 610).SetTag("movingWindow", "'3sec'").SetNameTag(`movingWindow(metric1,'3sec')`)},
[]float64{2, 1, 2}, 1, 610).SetTag("movingWindow", "'3sec'").SetNameTag(`metric1`)},
From: 610,
Until: 710,
},
Expand All @@ -168,7 +168,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 607, Until: 710}: {types.MakeMetricData("metric1", []float64{1, 2, 3, 0, math.NaN(), 5}, 1, 607)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingWindow(metric1,'3sec')`,
[]float64{-1, 3, -5}, 1, 610).SetTag("movingWindow", "'3sec'").SetNameTag(`movingWindow(metric1,'3sec')`)},
[]float64{-1, 3, -5}, 1, 610).SetTag("movingWindow", "'3sec'").SetNameTag(`metric1`)},
From: 610,
Until: 710,
},
Expand All @@ -179,7 +179,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 607, Until: 710}: {types.MakeMetricData("metric1", []float64{1, 2, 3, 0, math.NaN(), 5}, 1, 607)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingWindow(metric1,'3sec')`,
[]float64{3, 3, 5}, 1, 610).SetTag("movingWindow", "'3sec'").SetNameTag(`movingWindow(metric1,'3sec')`)},
[]float64{3, 3, 5}, 1, 610).SetTag("movingWindow", "'3sec'").SetNameTag(`metric1`)},
From: 610,
Until: 710,
},
Expand All @@ -190,7 +190,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 607, Until: 710}: {types.MakeMetricData("metric1", []float64{1, 2, 3, 0, math.NaN(), 5}, 1, 607)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingWindow(metric1,'3sec')`,
[]float64{1.247219128924647, 1.5, 2.5}, 1, 610).SetTag("movingWindow", "'3sec'").SetNameTag(`movingWindow(metric1,'3sec')`)}, // StartTime = from
[]float64{1.247219128924647, 1.5, 2.5}, 1, 610).SetTag("movingWindow", "'3sec'").SetNameTag(`metric1`)}, // StartTime = from
From: 610,
Until: 710,
},
Expand All @@ -201,7 +201,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 607, Until: 710}: {types.MakeMetricData("metric1", []float64{1, 2, 3, 0, math.NaN(), 5}, 1, 607)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingWindow(metric1,'3sec')`,
[]float64{0, math.NaN(), 5}, 1, 610).SetTag("movingWindow", "'3sec'").SetNameTag(`movingWindow(metric1,'3sec')`)}, // StartTime = from
[]float64{0, math.NaN(), 5}, 1, 610).SetTag("movingWindow", "'3sec'").SetNameTag(`metric1`)}, // StartTime = from
From: 610,
Until: 710,
},
Expand All @@ -212,7 +212,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 607, Until: 710}: {types.MakeMetricData("metric1", []float64{1, 2, 3, 1, 2, 3}, 1, 607)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingWindow(metric1,'3sec')`,
[]float64{2, 2, 2}, 1, 610).SetTag("movingWindow", "'3sec'").SetNameTag(`movingWindow(metric1,'3sec')`)}, // StartTime = from
[]float64{2, 2, 2}, 1, 610).SetTag("movingWindow", "'3sec'").SetNameTag(`metric1`)}, // StartTime = from
From: 610,
Until: 710,
},
Expand All @@ -223,7 +223,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 606, Until: 710}: {types.MakeMetricData("metric1", []float64{1, 1, 1, 1, 2, 2, 2, 4, 6, 4, 6, 8}, 1, 606)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingAverage(metric1,4)`,
[]float64{1.25, 1.5, 1.75, 2.5, 3.5, 4.0, 5.0, 6.0}, 1, 610).SetTag("movingAverage", "4").SetNameTag(`movingAverage(metric1,4)`)}, // StartTime = from
[]float64{1.25, 1.5, 1.75, 2.5, 3.5, 4.0, 5.0, 6.0}, 1, 610).SetTag("movingAverage", "4").SetNameTag(`metric1`)}, // StartTime = from
From: 610,
Until: 710,
},
Expand All @@ -234,7 +234,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 605, Until: 710}: {types.MakeMetricData("metric1", []float64{1, 2, 3}, 10, 605)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingAverage(metric1,'5s')`,
[]float64{math.NaN(), math.NaN(), math.NaN()}, 10, 610).SetTag("movingAverage", "'5s'").SetNameTag(`movingAverage(metric1,'5s')`)}, // StartTime = from
[]float64{math.NaN(), math.NaN(), math.NaN()}, 10, 610).SetTag("movingAverage", "'5s'").SetNameTag(`metric1`)}, // StartTime = from
From: 610,
Until: 710,
},
Expand All @@ -245,7 +245,7 @@ func TestMoving(t *testing.T) {
{Metric: "metric1", From: 310, Until: 700}: {types.MakeMetricData("metric1", []float64{1, 2, 3}, 30, 310)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingAverage(metric1,10)`,
[]float64{}, 30, 610).SetTag("movingAverage", "10").SetNameTag(`movingAverage(metric1,10)`)},
[]float64{}, 30, 610).SetTag("movingAverage", "10").SetNameTag(`metric1`)},
From: 610,
Until: 700,
},
Expand All @@ -269,7 +269,7 @@ func TestMovingXFilesFactor(t *testing.T) {
{Metric: "metric1", From: 607, Until: 618}: {types.MakeMetricData("metric1", []float64{1, 2, 3, 1, math.NaN(), 2, math.NaN(), 3}, 1, 607)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingSum(metric1,'3sec')`,
[]float64{6, 4, 3, math.NaN(), 5}, 1, 610).SetTag("movingSum", "'3sec'").SetNameTag(`movingSum(metric1,'3sec')`)},
[]float64{6, 4, 3, math.NaN(), 5}, 1, 610).SetTag("movingSum", "'3sec'").SetNameTag(`metric1`)},
From: 610,
Until: 618,
},
Expand All @@ -280,7 +280,7 @@ func TestMovingXFilesFactor(t *testing.T) {
{Metric: "metric1", From: 606, Until: 622}: {types.MakeMetricData("metric1", []float64{1, 1, 1, 1, 2, math.NaN(), 2, 4, math.NaN(), 4, 6, 8}, 1, 606)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingAverage(metric1,4)`,
[]float64{1.25, 1.3333333333333333, 1.6666666666666667, 2.6666666666666665, math.NaN(), 3.3333333333333335, 4.666666666666667, 6}, 1, 610).SetTag("movingAverage", "4").SetNameTag(`movingAverage(metric1,4)`)},
[]float64{1.25, 1.3333333333333333, 1.6666666666666667, 2.6666666666666665, math.NaN(), 3.3333333333333335, 4.666666666666667, 6}, 1, 610).SetTag("movingAverage", "4").SetNameTag(`metric1`)},
From: 610,
Until: 622,
},
Expand All @@ -291,7 +291,7 @@ func TestMovingXFilesFactor(t *testing.T) {
{Metric: "metric1", From: 608, Until: 616}: {types.MakeMetricData("metric1", []float64{1, 2, 3, math.NaN(), math.NaN(), 0}, 1, 608)},
},
Want: []*types.MetricData{types.MakeMetricData(`movingMax(metric1,2)`,
[]float64{3, 3, math.NaN(), 0}, 1, 610).SetTag("movingMax", "2").SetNameTag(`movingMax(metric1,2)`)},
[]float64{3, 3, math.NaN(), 0}, 1, 610).SetTag("movingMax", "2").SetNameTag(`metric1`)},
From: 610,
Until: 616,
},
Expand Down

0 comments on commit 7b0616b

Please sign in to comment.