Skip to content

Commit bab3e62

Browse files
authored
eval: use rate per step for sample messages (#1732)
For the value associated with sampled events, use the rate per step, i.e. raw count for that step interval, rather than the rate per second. This is more intuitive for users.
1 parent 5c8957f commit bab3e62

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

Diff for: atlas-eval/src/main/scala/com/netflix/atlas/eval/stream/FinalExprEval.scala

+5-1
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,10 @@ private[stream] class FinalExprEval(exprInterpreter: ExprInterpreter, enableNoDa
299299
}
300300

301301
private def toTimeSeriesMessage(value: AggrDatapoint): TimeSeriesMessage = {
302+
// For sampled messages, convert to rate per step, i.e. a raw count per step, rather
303+
// than a rate per second.
304+
val secondsPerStep = step / 1000.0
305+
val ratePerStep = value.value * secondsPerStep
302306
val id = TaggedItem.computeId(value.tags + ("atlas.query" -> value.source)).toString
303307
TimeSeriesMessage(
304308
id,
@@ -309,7 +313,7 @@ private[stream] class FinalExprEval(exprInterpreter: ExprInterpreter, enableNoDa
309313
step,
310314
TimeSeries.toLabel(value.tags),
311315
value.tags,
312-
ArrayData(Array(value.value)),
316+
ArrayData(Array(ratePerStep)),
313317
None,
314318
value.samples
315319
)

0 commit comments

Comments
 (0)