Monitor Usage data metrics stored in Redis
With gitlab-org/gitlab#232831 (closed) we plan to add more metrics in Redis using Redis HLL
With this issue we need a way to monitor the impact of keys added
Monitor:
-
Storage (This is most probably predictable 1288bytes per key)
Calculating here storage for 50 metrics
- with weekly( 6 keys per metric): 50 * 6 * 1288 = 3686400 bytes = 3.6864 Mb
- with daily( 29 keys per metric): 50 * 29 * 12288 = 17817600 = 17.8176 MB
This should be constant as keys are having expiration dates.
-
Number of connections used(How we can determine this number?)
-
Time to write data(How we can know this time?)
Tracking
We call Gitlab::Redis::HLL.add(key: target_key, value: author_id, expiry: KEY_EXPIRY_LENGTH)
each time we want to track an event, for example page views, search.
Examples of keys we currently have
["g_{analytics}_contribution-2020-30", "g_{analytics}_insights-2020-30", "g_{analytics}_issues-2020-30", "g_{analytics}_productivity-2020-30", "g_{analytics}_valuestream-2020-30", "p_{analytics}_pipelines-2020-30", "p_{analytics}_code_reviews-2020-30", "p_{analytics}_valuestream-2020-30", "p_{analytics}_insights-2020-30", "p_{analytics}_issues-2020-30", "p_{analytics}_repo-2020-30", "i_{analytics}_cohorts-2020-30", "i_{analytics}_dev_ops_score-2020-30", "g_{analytics}_contribution-2020-31", "g_{analytics}_insights-2020-31", "g_{analytics}_issues-2020-31", "g_{analytics}_productivity-2020-31", "g_{analytics}_valuestream-2020-31", "p_{analytics}_pipelines-2020-31", "p_{analytics}_code_reviews-2020-31", "p_{analytics}_valuestream-2020-31", "p_{analytics}_insights-2020-31", "p_{analytics}_issues-2020-31", "p_{analytics}_repo-2020-31", "i_{analytics}_cohorts-2020-31", "i_{analytics}_dev_ops_score-2020-31", "g_{analytics}_contribution-2020-32", "g_{analytics}_insights-2020-32", "g_{analytics}_issues-2020-32", "g_{analytics}_productivity-2020-32", "g_{analytics}_valuestream-2020-32", "p_{analytics}_pipelines-2020-32", "p_{analytics}_code_reviews-2020-32", "p_{analytics}_valuestream-2020-32", "p_{analytics}_insights-2020-32", "p_{analytics}_issues-2020-32", "p_{analytics}_repo-2020-32", "i_{analytics}_cohorts-2020-32", "i_{analytics}_dev_ops_score-2020-32", "g_{analytics}_contribution-2020-33", "g_{analytics}_insights-2020-33", "g_{analytics}_issues-2020-33", "g_{analytics}_productivity-2020-33", "g_{analytics}_valuestream-2020-33", "p_{analytics}_pipelines-2020-33", "p_{analytics}_code_reviews-2020-33", "p_{analytics}_valuestream-2020-33", "p_{analytics}_insights-2020-33", "p_{analytics}_issues-2020-33", "p_{analytics}_repo-2020-33", "i_{analytics}_cohorts-2020-33", "i_{analytics}_dev_ops_score-2020-33"]
cc @jeromezng
Edited by Alina Mihaila