Move experiment tracking behavior to configuration
What does this MR do?
This is mostly a quality of life fix. I noticed recently that if you run:
Gitlab::Experiment.new(:example).track(:foo) # => log output
experiment(:example).track(:foo) # => calls to Gitlab::Tracking
This is because the raw base class utilizes the configuration, and ApplicationExperiment
(the base class utilized when calling experiment
) overrides the track
method. I figured now that we've normalized this a bit, we should move it up to minimize one aspect of potential developer confusion.
Note:
The same is currently true with our #publish
method, but we're working to get that minimized and cleaned up as well, so I'm saving that for a separate MR.
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 Jeremy Jackson