Sentinel _BilledSize and estimate_data_size differences

Sándor Tőkési 181 Reputation points
2024-07-07T14:02:15.47+00:00

hey folks

Could somebody tell me the relationship between the _BilledSize field in a log and the result of the estimate_data_size(*) KQL command?

I do understand that the _BilledSize field contains the info of the size of the data I have to pay for in Sentinel.
The estimate_data_size() command seemingly calculates the size of the whole log including the free fields as well (like the _BilledSize field, Type field, etc, etc). Based on this I assumed that the _BilledSize field is going to be equal or close to the estimate_data_size() minus the size of the free fields.

But when I check the difference in my logs I can see different results. For example in the AuditLog table in some cases the value in the _BilledSize field is more 20% bigger than the result of the estimate_data_size() minus the free fields (or 18%+ bigger if I don't remove the free fields). But in case of other events in the same table the _BilledSize field contains a value 10% smaller than the estimate_data_size() - the free fields.

Does anybody has an explanation of how the _BilledSize field is calculated, and how the estimate_data_size(*) function works compared to this? I'm also curious why the difference between the two is so big and so (seemingly) unpredictable.

I can see these differences in default tables without any ingestion_time filter (DCR) in place, or any modification in the schema.

Microsoft Sentinel
Microsoft Sentinel
A scalable, cloud-native solution for security information event management and security orchestration automated response. Previously known as Azure Sentinel.
1,064 questions
{count} votes