Splunk® Data Stream Processor

Function Reference

Acrobat logo Download manual as PDF


DSP 1.2.0 is impacted by the CVE-2021-44228 and CVE-2021-45046 security vulnerabilities from Apache Log4j. To fix these vulnerabilities, you must upgrade to DSP 1.2.4. See Upgrade the Splunk Data Stream Processor to 1.2.4 for upgrade instructions.

On October 30, 2022, all 1.2.x versions of the Splunk Data Stream Processor will reach its end of support date. See the Splunk Software Support Policy for details.
This documentation does not apply to the most recent version of Splunk® Data Stream Processor. For documentation on the most recent version, go to the latest release.
Acrobat logo Download topic as PDF

Aggregation

The following are scalar functions that you can use in the stats and aggregate with trigger streaming functions to perform calculations over data in a given time-window.

average(value)

Calculates the average (mean) of values in a time window.

Function Input
value: T
Function Output
double

SPL2 example

The following example returns the average (mean) "size" for each distinct "host".

When working in the SPL View, you can write the function by using the following syntax.

...| stats average(size) BY host, span(timestamp, 50s, 10s) |...; 

Alternatively, you can use named arguments.

...| stats average(value: size) BY host, span(timestamp, 50s, 10s) |...; 

count(value)

Returns the number of non-null values in a time window.

Function Input
value: any
Function Output
long

SPL2 example

Returns the count of the "status_code" field.

When working in the SPL View, you can write the function by using the following syntax.

...| stats count(status_code) by status_code, span(window_start, 5000ms, 1000ms, 1000ms) |...;

Alternatively, you can use named arguments.

...| stats count(value: status_code) by status_code, span(window_start, 5000ms, 1000ms, 1000ms) |...;

estdc(value)

Estimated Distinct Count (estdc) is a stats function that calculates an approximated distinct count value for any field. This function works with ~1.5% error bound.

Function Input
value: string
Function Output
long

SPL2 example

Returns an estimated count of the distinct values in the input field.

When working in the SPL View, you can write the function by using the following syntax.

... | stats estdc(input) by span(timestamp, 10ms);

Alternatively, you can use named arguments.

... | stats estdc(value: input) by span(timestamp, 10ms);

max(value)

Returns the maximum value in a time window.

Function Input
value: number
Function Output
number

SPL2 example

Returns the maximum value of the "time_taken" field.

When working in the SPL View, you can write the function by using the following syntax.

...| stats max(time_taken) by time_taken, span(timestamp, 50s, 10s) |...;

Alternatively, you can use named arguments.

...| stats max(value: time_taken) by time_taken, span(timestamp, 50s, 10s) |...;

mean(value)

Calculates the average (mean) of values in a time window.

Function Input
value: number
Function Output
double

SPL2 example

Returns the average value of the "time_taken" field.

When working in the SPL View, you can write the function by using the following syntax.

...| stats mean(time_taken) by time_taken, span(timestamp, 50s, 10s) |...;

Alternatively, you can use named arguments.

...| stats mean(value: time_taken) by time_taken, span(timestamp, 50s, 10s) |...;

min(value)

Returns the minimum value in a time window.

Function Input
value: number
Function Output
number

SPL2 example

Returns the minimum value of the "time_taken" field.

When working in the SPL View, you can write the function by using the following syntax.

...| stats min(time_taken) by time_taken, span(timestamp, 50s, 10s) |...;

Alternatively, you can use named arguments.

...| stats min(value: time_taken) by time_taken, span(timestamp, 50s, 10s) |...;

perc(value, q1, q2)

Percentiles (perc) is a stats function that computes the approximate q-th percentile value of a numeric field input field with ~1.5% error bound. The perc(input, 0.25, 0.5, 0.75) takes multiple quantile queries as inputs, and then outputs fields as a list with appropriate percentile values.

Function Input
value: number
q1: double
q2: double
Function Output
collection: double

SPL2 examples

When working in the SPL View, you can write the function by using the following syntax.

...| stats perc(input, 0.75) by span(timestamp, 10ms);
...| stats perc(input, 0.5, 0.99) by span(timestamp, 10ms);

sum(value)

Returns the sum of values in a time window.

Function Input
value: number
Function Output
number

SPL2 example

Returns the sum of the "time_taken" field.

When working in the SPL View, you can write the function by using the following syntax.

...| stats sum(time_taken) by time_taken, span(timestamp, 50s, 10s) |...;

Alternatively, you can use named arguments.

...| stats sum(value: time_taken) by time_taken, span(timestamp, 50s, 10s) |...;
Last modified on 21 March, 2022
PREVIOUS
Overview of stats scalar functions
 

This documentation applies to the following versions of Splunk® Data Stream Processor: 1.2.0, 1.2.1-patch02, 1.2.1, 1.2.2-patch02, 1.2.4, 1.2.5


Was this documentation topic helpful?


You must be logged into splunk.com in order to post comments. Log in now.

Please try to keep this discussion focused on the content covered in this documentation topic. If you have a more general question about Splunk functionality or are experiencing a difficulty with Splunk, consider posting a question to Splunkbase Answers.

0 out of 1000 Characters