Within a search I was given at work, this line was included in the search:
I found the following definition for the usage of estdc (estimated distinct count) on the Splunk website:
estdc(X): Returns the estimated count of the distinct values of the field X.
Processes field values as strings
My questions are:
estdc here looking for the estimated count of the distinct values of "ThreatActivity" or "ThreatActivity.threatkey"?
- Are ThreatActivity and threat_key two different things here?
- Aren't they strings and if so, shouldn't they have quotation marks around them?
I'll include the whole search string in case that helps with your answer.
| tstats `summariesonly` estdc(Threat_Activity.threat_key) as current_count from datamodel=Threat_Intelligence.Threat_Activity where earliest=-24h@h latest=+0s | appendcols [| tstats `summariesonly` estdc(Threat_Activity.threat_key) as historical_count from datamodel=Threat_Intelligence.Threat_Activity where earliest=-48h@h latest=-24h@h] | `get_delta`
Estimated Count is working on threat_key.
They have been renamed since they are running for two different days i.e. Last 48 hours and last 24 hours based on earliest and latest time.
It is optional to keep the field names in double quotes unless there is a space in the field name.
I think I figured it out. Is it returning the estimated count of the distinct values of threatkey, where threatkey is inside of Threat_Activity"?
Also, within the query I provided in the question, what are historicalcount and currentcount? Are those just renaming threatkey in the two instances to currentcount and historical_count?
Any help would be greatly appreciated.
Yes, any time you see "as" before a term it is renaming (or naming) the field in the results. In your example, the results of estdc(ThreatActivity.threatkey) are placed in a column called current_count.