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 }