Reference to the highpass() function

Summary

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

highpass(<traceDuration>, <tracesExpression>)

highpass(<spanDuration>, <spansExpression>)

You can use highpass() with time series, with traces, or with spans. You can use the .gt operator with time series. 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 greater than tsExpression1. tsExpression1 is often a constant.
Traces filtering function Filters the results of tracesExpression to include only traces that are longer than the specified duration.
Spans filtering
function
Filters the results of spansExpression to include only spans that are longer than the specified duration.

Parameters

Time-Series Filtering Function

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

Traces Filtering Function

ParameterDescription
traceDuration Lower 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 Lower 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 highpass():

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

You can use the gt 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 highpass() time-series filtering function plots a chart based on all reported data points that are higher than the specified threshold. The function ignores data points if their values are less than or equal to the threshold, resulting in gaps between the remaining points.

You typically use highpass() 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 highpass() trace-filtering function examines the traces described by the traces expression, and returns any traces that are longer than the specified duration. Shorter 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 longer than 3 seconds:

highpass(3s, traces("beachshirts.styling.makeShirts"))

Spans Filtering Function

The highpass() spans-filtering function examines the spans described by the spans expression, and returns any spans that are longer than the specified duration. Shorter spans are ignored.

For example, the following query expression returns only spans that are longer than 3 seconds:

highpass(3s, 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 longer than 3 seconds.

traces(highpass(3s, spans("beachshirts.styling.makeShirts")))

Examples

Let’s look at latency data:

highpass before

Now we wrap this example with highpass() and use a threshold of 120. The resulting Stacked Area chart shows results only where the data exceeds 120.

highpass example

See Also