-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Replication
-
None
-
Fully Compatible
-
v4.2, v4.0
-
Repl 2019-06-17, Repl 2019-07-01
IDL types do not have anything to manage the concurrency around reading and writing to their fields, so we will need a class that wraps ElectionMetrics, ElectionCandidateMetrics, and ElectionParticipantMetrics. For now this class should be a skeleton until we need to create functions to write to the underlying IDL types. To start with, it should have a member for each of the following IDL types: ElectionMetrics, ElectionCandidateMetrics, and ElectionParticipantMetrics and a mutex that will manage the concurrency around the variables in the class.
We will model our class similar to TrafficRecorder. The ReplicationMetrics class should be a decoration on the serviceContext. It should also include an inner class that inherits from ServerStatusSection, so that we can easily generate a section in serverStatus Metrics for the metrics stored in ElectionMetrics.