File tree Expand file tree Collapse file tree 1 file changed +19
-0
lines changed
Expand file tree Collapse file tree 1 file changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -108,6 +108,25 @@ func (d *diagnosticDataCollector) collect(ch chan<- prometheus.Metric) {
108108 logger .Error ("cannot decode getDiagnosticData" , "error" , err )
109109 }
110110
111+ // For mongos, getDiagnosticData returns empty data, so fall back to serverStatus
112+ if nodeType == typeMongos && len (m ) == 0 {
113+ logger .Debug ("getDiagnosticData returned empty data for mongos, falling back to serverStatus" )
114+ serverStatusCmd := bson.D {{Key : "serverStatus" , Value : "1" }}
115+ serverStatusRes := client .Database ("admin" ).RunCommand (d .ctx , serverStatusCmd )
116+ if serverStatusRes .Err () != nil {
117+ logger .Error ("failed to run serverStatus command for mongos" , "error" , serverStatusRes .Err ())
118+ } else {
119+ var serverStatusData bson.M
120+ if err := serverStatusRes .Decode (& serverStatusData ); err != nil {
121+ logger .Error ("cannot decode serverStatus for mongos" , "error" , err )
122+ } else {
123+ // Wrap serverStatus data in the expected structure for makeMetrics
124+ m = bson.M {"serverStatus" : serverStatusData }
125+ logger .Debug ("Successfully retrieved serverStatus data for mongos" )
126+ }
127+ }
128+ }
129+
111130 logger .Debug ("getDiagnosticData result" )
112131 debugResult (logger , m )
113132
You can’t perform that action at this time.
0 commit comments