Add RedisMetric instrumentation class
What does this MR do?
Related to #332487 (closed).
This adds RedisMetric
instrumentation class, which adds ordinary Redis counter values to the new instrumentation payload in a similar way RedisHLLMetric
does.
After incrementing source_code_pushes
event by calling Gitlab::UsageDataCounters::SourceCodeCounter.count('pushes')
a few times, the new instrumentation payload from Gitlab::UsageDataMetrics.uncached_data
is as follows:
{:counts=>{:issues=>491, :boards=>0, :source_code_pushes=>3},
:usage_activity_by_stage=>{:plan=>{:issues=>20}},
:usage_activity_by_stage_monthly=>{:plan=>{:issues=>20}},
:redis_hll_counters=>{:quickactions=>{:i_quickactions_approve_monthly=>0, :i_quickactions_approve_weekly=>0}},
:settings=>{:collected_data_categories=>#<Set: {"Standard", "Subscription", "Operational", "Optional"}>},
:uuid=>"4aed0f2d-a225-4a10-adb2-7f7e316e6930",
:hostname=>"gdk.test"}
Does this MR meet the acceptance criteria?
Conformity
-
I have included changelog trailers, or none are needed. (Does this MR need a changelog?) -
I have added/updated documentation, or it's not needed. (Is documentation required?) -
I have properly separated EE content from FOSS, or this MR is FOSS only. (Where should EE code go?) -
I have added information for database reviewers in the MR description, or it's not needed. (Does this MR have database related changes?) -
I have self-reviewed this MR per code review guidelines. -
This MR does not harm performance, or I have asked a reviewer to help assess the performance impact. (Merge request performance guidelines) -
I have followed the style guides. -
This change is backwards compatible across updates, or this does not apply.
Availability and Testing
-
I have added/updated tests following the Testing Guide, or it's not needed. (Consider all test levels. See the Test Planning Process.) -
I have tested this MR in all supported browsers, or it's not needed. -
I have informed the Infrastructure department of a default or new setting change per definition of done, or it's not needed.
Edited by Piotr Skorupa