Skip to content

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