fillnull - Splunk Documentation (2024)

Description

Replaces null values with a specified value. Null values are field values that are missing in a particular result but present in another result. Use the fillnull command to replace null field values with a string. You can replace the null values in one or more fields. You can specify a string to fill the null field values or use the default, field value which is zero ( 0 ).​

Syntax

The required syntax is in bold.​

fillnull
[value=<string>]
[<field-list>]

Required arguments

None.​

Optional arguments

field-list
Syntax: <field>...
Description: A space-delimited list of one or more fields. If you specify a field list, all of the fields in that list are filled in with the value you specify. If you specify a field that didn't previously exist, the field is created. If you do not specify a field list, the value is applied to all fields.
value
Syntax: value=<string>
Description: Specify a string value to replace null values. If you do not specify a value, the default value is applied to the <field-list>.
Default: 0

Usage

The fillnull command is a distributable streaming command when a field-list is specified. When no field-list is specified, the fillnull command fits into the dataset processing type. See Command types.

Fields in the event set should have at least one non-null value

Due to the unique behavior of the fillnull command, Splunk software isn't able to distinguish between a null field value and a null field that doesn't exist in the Splunk schema. In order for a field to exist in the schema, it must have at least one non-null value in the event set. To ensure downstream processing of fields by the fillnull command, ensure that there is at least one non-null value for the fields in the event set.

For example, consider the following search:

| makeresults| eval test="123123", test2=null()| fillnull value=NULL

The results look something like this:

_timetest
2023-06-07 17:49:45123123

Notice that the test2 field doesn't show up in the results, even though the eval command created it. The reason the test2 field isn't in the results is that there isn't at least one non-null value for the field in the event set.

If a field doesn't have at least one non-null value in the event set, it's considered a nonexistent field, so downstream commands like the fillnull command can't process it. For example, consider the following search:

| makeresults | eval test="123123" | eval test2=null() | table test test2 | fillnull value=NULL

The results look something like this:

testtest2
123123

The search results display the test2 field, but not the intended NULL value. This is because the upstream eval command initially set test2 to null, so the field doesn't exist in the schema.

Now consider the following search:

| makeresults | eval test1=split("123,456", ",") | mvexpand test1 | eval test2=if(test1="123", null(), "abc") | fillnull value=NULL

The results look something like this:

_timetest1test2
2023-06-07 18:22:24123NULL
2023-06-07 18:22:24456abc

This search generates at least one non-null value for each field and shows the expected behavior by setting the null value of the test2 field to the NULL string. Now all the values display as expected because the test2 field has at least one non-null value.

Examples

1. Fill all empty field values with the default value

​Your search has produced the following search results:​

_timeACCESSORIESARCADESHOOTERSIMULATIONSPORTSSTRATEGYTEE
2021-03-1751763532
2021-03-166339302212756
2021-03-156594384212860

​You can fill all of empty field values with the zero by adding the fillnull command to your search.​

... | fillnull

​The search results will look like this:​

_timeACCESSORIESARCADESHOOTERSIMULATIONSPORTSSTRATEGYTEE
2021-03-17517635320
2021-03-1606339302212756
2021-03-1565943842012860

2. Fill all empty fields with the string "NULL"

For the current search results, fill all empty field values with the string "NULL".

... | fillnull value=NULL

3. Fill the specified fields with the string "unknown"

​Suppose that your search has produced the following search results:​

_timehostaverage_kbpsinstanenous_kbpskbps
2021/02/14 12:00danube.sample.com1.8653.420
2021/02/14 11:53mekong.buttercupgames.com0.7100.1641.256
2021/02/14 11:47danube.sample.com1.3252.230
2021/02/14 11:42yangtze.buttercupgames.com2.2490.0002.249
2021/02/14 11:392.8743.8411.906
2021/02/14 11:33nile.example.net2.0230.915

​You can fill all empty field values in the "host" and "kbps" fields with the string "unknown" by adding the fillnull command to your search.​

... | fillnull value=unknown host kbps

​​The results look like this:

_timehostaverage_kbpsinstanenous_kbpskbps
2021/02/14 12:00danube.sample.com1.8653.420
2021/02/14 11:53mekong.buttercupgames.com0.7100.1641.256
2021/02/14 11:47danube.sample.com1.3252.230
2021/02/14 11:42yangtze.buttercupgames.com2.2490.0002.249
2021/02/14 11:39unknown2.8743.8411.906
2021/02/14 11:33nile.example.net2.0230.915unknown

​​If you specify a field that does not exist the field is created and the value you specify is added to the new field. ​For example if you specify bytes in the field list, the bytes field is created and filled with the string "unknown". ​

... | fillnull value=unknown host kbps bytes

​​The results look like this:

_timehostaverage_kbpsinstanenous_kbpskbpsbytes
2021/02/14 12:00danube.sample.com1.8653.420unknown
2021/02/14 11:53mekong.buttercupgames.com0.7100.1641.256unknown
2021/02/14 11:47danube.sample.com1.3252.230unknown
2021/02/14 11:42yangtze.buttercupgames.com2.2490.0002.249unknown
2021/02/14 11:39unknown2.8743.8411.906unknown
2021/02/14 11:33nile.example.net2.0230.915unknownunknown

4. Use the fillnull command with the timechart command

Build a time series chart of web events by host and fill all empty fields with the string "NULL".

sourcetype="web" | timechart count by host | fillnull value=NULL

See also

Related commands
filldown
streamstats
fillnull - Splunk Documentation (2024)
Top Articles
Latest Posts
Article information

Author: Virgilio Hermann JD

Last Updated:

Views: 6623

Rating: 4 / 5 (41 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Virgilio Hermann JD

Birthday: 1997-12-21

Address: 6946 Schoen Cove, Sipesshire, MO 55944

Phone: +3763365785260

Job: Accounting Engineer

Hobby: Web surfing, Rafting, Dowsing, Stand-up comedy, Ghost hunting, Swimming, Amateur radio

Introduction: My name is Virgilio Hermann JD, I am a fine, gifted, beautiful, encouraging, kind, talented, zealous person who loves writing and wants to share my knowledge and understanding with you.