Dimensions that combine
Until today a dimension was a single key, so something like Spain on version 2.1 was impossible without creating a new materialized view for that exact combination. Dimensions can hold several keys now, and the event type is always prepended, so you can still slice everything by type. Stats queries got GroupBy too: filter by one dimension, aggregate by another.
The catch is cardinality again. The number of slots is the product of the maxValues of each key, summed across all the dimensions, and that number grows faster than people expect. So MaxValues is not a free input anymore, it's a select (5, 10, 20, 40, 80, 160), and the new config page shows a slot counter while you build it. Better to see the cost before writing the table than after.
Two bugs on the way. getEventTypeSummaries was cached, so after saving the config you kept getting the old one. And a MongoDB omitempty meant that clearing all the dimensions did nothing at all, silently. Both were found by tests I wrote because I didn't trust this feature.
The stats config endpoint also moved out of the stats module into the project one (PATCH /projects/{id}/stats-config), which is where it belonged in the first place.




