github.com/netdata/go.d.plugin@v0.58.1/modules/mongodb/collect.go (about)

     1  // SPDX-License-Identifier: GPL-3.0-or-later
     2  
     3  package mongo
     4  
     5  import "fmt"
     6  
     7  func (m *Mongo) collect() (map[string]int64, error) {
     8  	if err := m.conn.initClient(m.URI, m.Timeout); err != nil {
     9  		return nil, fmt.Errorf("init mongo conn: %v", err)
    10  	}
    11  
    12  	mx := make(map[string]int64)
    13  
    14  	if err := m.collectServerStatus(mx); err != nil {
    15  		return nil, fmt.Errorf("couldn't collect server status metrics: %v", err)
    16  	}
    17  
    18  	if err := m.collectDbStats(mx); err != nil {
    19  		return mx, fmt.Errorf("couldn't collect dbstats metrics: %v", err)
    20  	}
    21  
    22  	if m.conn.isReplicaSet() {
    23  		if err := m.collectReplSetStatus(mx); err != nil {
    24  			return mx, fmt.Errorf("couldn't collect documentReplSetStatus metrics: %v", err)
    25  		}
    26  	}
    27  
    28  	if m.conn.isMongos() {
    29  		m.addShardingChartsOnce.Do(m.addShardingCharts)
    30  		if err := m.collectSharding(mx); err != nil {
    31  			return mx, fmt.Errorf("couldn't collect sharding metrics: %v", err)
    32  		}
    33  	}
    34  
    35  	return mx, nil
    36  }
    37  
    38  func boolToInt(v bool) int64 {
    39  	if v {
    40  		return 1
    41  	}
    42  	return 0
    43  }