@@ -814,7 +814,7 @@ func specialMetrics(ctx context.Context, client *mongo.Client, m bson.M, l *logr
814814 }).Errorf ("Cannot get node type: %s" , err )
815815 }
816816
817- if nodeType == typeMongod {
817+ if nodeType == typeMongod || nodeType == typeArbiter {
818818 if engine , err := storageEngine (m ); err != nil {
819819 l .Errorf ("cannot retrieve engine type: %s" , err )
820820 } else {
@@ -823,8 +823,8 @@ func specialMetrics(ctx context.Context, client *mongo.Client, m bson.M, l *logr
823823 }
824824 metrics = append (metrics , serverVersion (buildInfo ))
825825
826- if isArbiter , _ := isArbiter ( ctx , client ); isArbiter {
827- if hm := myRole (ctx , client , l ); hm != nil {
826+ if nodeType == typeArbiter {
827+ if hm := arbiterMetrics (ctx , client , l ); hm != nil {
828828 metrics = append (metrics , hm ... )
829829 }
830830 } else {
@@ -931,34 +931,32 @@ func myState(ctx context.Context, client *mongo.Client) prometheus.Metric {
931931 return metric
932932}
933933
934- // myRole returns metrics based on the role of the mongo instance .
935- func myRole (ctx context.Context , client * mongo.Client , l * logrus.Logger ) []prometheus.Metric {
934+ // arbiterMetrics returns metrics for mongoDB arbiter instances .
935+ func arbiterMetrics (ctx context.Context , client * mongo.Client , l * logrus.Logger ) []prometheus.Metric {
936936 response , err := util .MyRole (ctx , client )
937937 if err != nil {
938938 l .Errorf ("cannot get role of the running instance: %s" , err )
939939 return nil
940940 }
941941
942942 var metrics []prometheus.Metric
943- if response .ArbiterOnly {
944- createMetric := func (name , help string , value float64 , labels map [string ]string ) {
945- const prefix = "mongodb_mongod_replset_"
946- d := prometheus .NewDesc (prefix + name , help , nil , labels )
947- metrics = append (metrics , prometheus .MustNewConstMetric (d , prometheus .GaugeValue , value ))
948- }
943+ createMetric := func (name , help string , value float64 , labels map [string ]string ) {
944+ const prefix = "mongodb_mongod_replset_"
945+ d := prometheus .NewDesc (prefix + name , help , nil , labels )
946+ metrics = append (metrics , prometheus .MustNewConstMetric (d , prometheus .GaugeValue , value ))
947+ }
949948
950- createMetric ("my_state" ,
951- "An integer between 0 and 10 that represents the replica state of the current member" ,
952- float64 (ArbiterState ), map [string ]string {
953- "set" : response .SetName ,
954- })
949+ createMetric ("my_state" ,
950+ "An integer between 0 and 10 that represents the replica state of the current member" ,
951+ float64 (ArbiterState ), map [string ]string {
952+ "set" : response .SetName ,
953+ })
955954
956- createMetric ("number_of_members" ,
957- "The number of replica set members." ,
958- float64 (len (response .Hosts )+ len (response .Arbiters )), map [string ]string {
959- "set" : response .SetName ,
960- })
961- }
955+ createMetric ("number_of_members" ,
956+ "The number of replica set members." ,
957+ float64 (len (response .Hosts )+ len (response .Arbiters )), map [string ]string {
958+ "set" : response .SetName ,
959+ })
962960
963961 return metrics
964962}
0 commit comments