I’m looking at InfluxDb to support some use cases in the field of application analytics, reporting and analysis. We would like to store this data for a long time, maybe downsampled after some months.
I think we’re talking about 1-2000 searches per days as for now but this would probably increase up to 10-20 in the future.
Some things we want to do is to:
Track the number of searches performed in or “product search” and its filter-selections. To answer questions like “how many total searches during January” or “how many searches filtered on “Blue” during January.
Number of “hits” in these searches, so storing one data point for each product that shows up in the search result.
Number if clicks on product-links.
I’ve done a proof of concept with InfluxDb where I’m storing this as follows:
Searches - Each search is a Measurement, I’m adding the filter options and its values as tags. (Around 10 filters with 10 options each).
Search hits - after the search has been performed (using search outside Influx), I store each “hit” from the result list as a Measurement in InfluxDb. To this hit I’ll also store som key properties for the product as taga ie categoryId and SupplierId, to be able to query based on this.
Clicks are stored as another Measurement as well.
I have some questions:
- Is this use case a good fit or I’m I “bending” the product to do something it was not intended for?
- Is there anything in the approach that rises any red flags? I’m thinking that storing lots of tags with the measurements is an area where I haven’t seen so much recommendations.
- Would it be considered a good practice to store all these three types of measurement in one database/bucket or should they be in separate? What would drive/influence that decision?
- Is the storage of data inside Influx a “safe” place to keep this data or should I consider also storing it somewhere else?