Add override setttings to analytics

This commit is contained in:
Mubelotix 2025-07-01 11:04:59 +02:00
parent efd5fd96cc
commit 9cfbef478e
No known key found for this signature in database
GPG key ID: 0406DF6C3A69B942

View file

@ -7,6 +7,7 @@ pub struct ExportAnalytics {
has_api_key: bool, has_api_key: bool,
sum_index_patterns: usize, sum_index_patterns: usize,
sum_patterns_with_filter: usize, sum_patterns_with_filter: usize,
sum_patterns_with_override_settings: usize,
payload_sizes: Vec<u64>, payload_sizes: Vec<u64>,
} }
@ -19,6 +20,9 @@ impl ExportAnalytics {
let patterns_with_filter_count = indexes.as_ref().map_or(0, |indexes| { let patterns_with_filter_count = indexes.as_ref().map_or(0, |indexes| {
indexes.values().filter(|settings| settings.filter.is_some()).count() indexes.values().filter(|settings| settings.filter.is_some()).count()
}); });
let patterns_with_override_settings_count = indexes.as_ref().map_or(0, |indexes| {
indexes.values().filter(|settings| settings.override_settings).count()
});
let payload_sizes = let payload_sizes =
if let Some(crate::routes::export::ByteWithDeserr(byte_size)) = payload_size { if let Some(crate::routes::export::ByteWithDeserr(byte_size)) = payload_size {
vec![byte_size.as_u64()] vec![byte_size.as_u64()]
@ -31,6 +35,7 @@ impl ExportAnalytics {
has_api_key, has_api_key,
sum_index_patterns: index_patterns_count, sum_index_patterns: index_patterns_count,
sum_patterns_with_filter: patterns_with_filter_count, sum_patterns_with_filter: patterns_with_filter_count,
sum_patterns_with_override_settings: patterns_with_override_settings_count,
payload_sizes, payload_sizes,
} }
} }
@ -46,6 +51,7 @@ impl Aggregate for ExportAnalytics {
self.has_api_key |= other.has_api_key; self.has_api_key |= other.has_api_key;
self.sum_index_patterns += other.sum_index_patterns; self.sum_index_patterns += other.sum_index_patterns;
self.sum_patterns_with_filter += other.sum_patterns_with_filter; self.sum_patterns_with_filter += other.sum_patterns_with_filter;
self.sum_patterns_with_override_settings += other.sum_patterns_with_override_settings;
self.payload_sizes.extend(other.payload_sizes); self.payload_sizes.extend(other.payload_sizes);
self self
} }
@ -69,11 +75,18 @@ impl Aggregate for ExportAnalytics {
Some(self.sum_patterns_with_filter as f64 / self.total_received as f64) Some(self.sum_patterns_with_filter as f64 / self.total_received as f64)
}; };
let avg_patterns_with_override_settings = if self.total_received == 0 {
None
} else {
Some(self.sum_patterns_with_override_settings as f64 / self.total_received as f64)
};
serde_json::json!({ serde_json::json!({
"total_received": self.total_received, "total_received": self.total_received,
"has_api_key": self.has_api_key, "has_api_key": self.has_api_key,
"avg_index_patterns": avg_index_patterns, "avg_index_patterns": avg_index_patterns,
"avg_patterns_with_filter": avg_patterns_with_filter, "avg_patterns_with_filter": avg_patterns_with_filter,
"avg_patterns_with_override_settings": avg_patterns_with_override_settings,
"avg_payload_size": avg_payload_size, "avg_payload_size": avg_payload_size,
}) })
} }