Splunk 6.6 being out officially, I had the (bad) surprise to discover is very annoying change in tstats command behaviour.
Doing an operation over a non existing field result in a "nan" value instead of a null field.
The following search can be used to demonstrate:
| tstats count as count max(foo) as foo WHERE index=_internal
With 6.5.3 and previous, the result would have been:
Since 6.6, it is now:
So in what could be a problem ? Well it changes the behaviour on any condition using an "isnull" or "isnotnull" condition, such as:
| tstats count as count max(foo) as foo WHERE index=_internal | eval good=if(isnotnull(foo), foo, count)
Would now use the "bad" value instead of the "good" value, because it is not null any more as it now equals to the "nan" string.
Off course, the query can be changed to something like:
| tstats count as count max(foo) as foo WHERE index=_internal | eval good=if(isnum(foo), foo, count)
This is however a serious change in the tstats behaviours, and has side effects on any stuff doing such job and assuming that the field will be null if it is not available in the data.
Is that an expected change ? A bug ?