Reference to the lowpass() function

Summary

lowpass(<tsExpression1>, <tsExpression2>[, inner])

lowpass(<traceDuration>, <tracesExpression>)

lowpass(<spanDuration>, <spansExpression>)

You can use lowpass() with time series, with traces, and with spans. Multiple operators can be used at the same time.

Time series filtering function Filters the results of tsExpression2 to include only points with values that are less than tsExpression1. tsExpression1 is often a constant.
Traces filtering function Filters the results of tracesExpression to include only traces that are shorter than the specified duration.
Spans filtering
function
Filters the results of spansExpression to include only spans that are shorter than the specified duration.

Parameters

PropertyDescription
tsExpression1 Threshold expression. Often a constant.
tsExpression2 Expression that describes the time series you want to filter.
inner Results in an inner join.

Traces Filtering Function

ParameterDescription
traceDuration Upper limit for trace duration. Specify an integer number of milliseconds, seconds, minutes, hours, days or weeks (1ms, 1s, 1m, 1h, 1d, 1w).
tracesExpression Expression that that describes the traces you want to filter. Includes a traces() function.

Spans Filtering Function

ParameterDescription
spanDuration Upper limit for span duration. Specify an integer number of milliseconds, seconds, minutes, hours, days or weeks (1ms, 1s, 1m, 1h, 1d, 1w).
spansExpression Expression that that describes the spans you want to filter. Includes a spans() function.

Description

You can use lowpass():

  • With time series as a filtering function.
  • With traces as a filtering function.
  • With spans as a filtering function.

You can use the lt operator with time series. You can use more than one operator to create a bounded expression. For example, use ts(<tsExpression>).gt(50.5).lt(70.5) to return only values greater than 50.5 and less than 70.5.

Time-Series Filtering Function

The lowpass() filtering function time-series filtering function plots a chart based on all reported data points that are lower than the specified threshold. The function ignores data points if their values are greater than or equal to the threshold, resulting in gaps between the remaining points.

You typically use lowpass() to compare multiple time series to a single threshold or a single time series to multiple thresholds. If tsExpression1 and tsExpression2 each describe multiple time series, then the query engine uses series matching to determine which pairs of time series to compare.

Traces Filtering Function

The lowpass() trace-filtering function examines the traces described by the traces expression, and returns only traces that are shorter than the specified duration. Longer traces are ignored. The duration of an entire trace is considered, not the duration of any individual span in the trace. For example, the following query returns only traces that are shorter than 12 milliseconds:

lowpass(12ms, traces("beachshirts.styling.makeShirts"))

Spans Filtering Function

The lowpass() spans-filtering function examines the spans described by the spans expression, and returns any spans that are shorter than the specified duration. Longer spans are ignored.

For example, the following query expression returns only spans that are shorter than 12 milliseconds:

lowpass(12ms, spans("beachshirts.styling.makeShirts"))

You can pass this expression to traces() to display traces that contain at least one span for beachshirts.styling.makeShirts that is shorter than 12 milliseconds.

traces(lowpass(12ms, spans("beachshirts.styling.makeShirts")))

Examples

Let’s look at latency data:

highpass before

Now we wrap this example with lowpass() and use a threshold of 130. The resulting Stacked Area chart shows results only where the data are less than 130.

lowpass example

See Also