Metric for MongoDB jumbo chunks
This commit is contained in:
parent
cbe32c7482
commit
62a8d947a8
|
@ -67,6 +67,7 @@ based on _prefix_ in addition to globs. This means that a filter like
|
||||||
- [#967](https://github.com/influxdata/telegraf/issues/967): Buffer logging improvements.
|
- [#967](https://github.com/influxdata/telegraf/issues/967): Buffer logging improvements.
|
||||||
- [#1107](https://github.com/influxdata/telegraf/issues/1107): Support lustre2 job stats. Thanks @hanleyja!
|
- [#1107](https://github.com/influxdata/telegraf/issues/1107): Support lustre2 job stats. Thanks @hanleyja!
|
||||||
- [#1122](https://github.com/influxdata/telegraf/pull/1122): Support setting config path through env variable and default paths.
|
- [#1122](https://github.com/influxdata/telegraf/pull/1122): Support setting config path through env variable and default paths.
|
||||||
|
- [#1128](https://github.com/influxdata/telegraf/pull/1128): MongoDB jumbo chunks metric for MongoDB input plugin
|
||||||
|
|
||||||
### Bugfixes
|
### Bugfixes
|
||||||
|
|
||||||
|
|
|
@ -51,3 +51,4 @@ and create a single measurement containing values e.g.
|
||||||
* ttl_deletes_per_sec
|
* ttl_deletes_per_sec
|
||||||
* ttl_passes_per_sec
|
* ttl_passes_per_sec
|
||||||
* repl_lag
|
* repl_lag
|
||||||
|
* jumbo_chunks (only if mongos or mongo config)
|
||||||
|
|
|
@ -57,6 +57,10 @@ var DefaultReplStats = map[string]string{
|
||||||
"repl_lag": "ReplLag",
|
"repl_lag": "ReplLag",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var DefaultClusterStats = map[string]string{
|
||||||
|
"jumbo_chunks": "JumboChunksCount",
|
||||||
|
}
|
||||||
|
|
||||||
var MmapStats = map[string]string{
|
var MmapStats = map[string]string{
|
||||||
"mapped_megabytes": "Mapped",
|
"mapped_megabytes": "Mapped",
|
||||||
"non-mapped_megabytes": "NonMapped",
|
"non-mapped_megabytes": "NonMapped",
|
||||||
|
@ -74,6 +78,7 @@ func (d *MongodbData) AddDefaultStats() {
|
||||||
if d.StatLine.NodeType != "" {
|
if d.StatLine.NodeType != "" {
|
||||||
d.addStat(statLine, DefaultReplStats)
|
d.addStat(statLine, DefaultReplStats)
|
||||||
}
|
}
|
||||||
|
d.addStat(statLine, DefaultClusterStats)
|
||||||
if d.StatLine.StorageEngine == "mmapv1" {
|
if d.StatLine.StorageEngine == "mmapv1" {
|
||||||
d.addStat(statLine, MmapStats)
|
d.addStat(statLine, MmapStats)
|
||||||
} else if d.StatLine.StorageEngine == "wiredTiger" {
|
} else if d.StatLine.StorageEngine == "wiredTiger" {
|
||||||
|
|
|
@ -133,6 +133,7 @@ func TestStateTag(t *testing.T) {
|
||||||
"vsize_megabytes": int64(0),
|
"vsize_megabytes": int64(0),
|
||||||
"ttl_deletes_per_sec": int64(0),
|
"ttl_deletes_per_sec": int64(0),
|
||||||
"ttl_passes_per_sec": int64(0),
|
"ttl_passes_per_sec": int64(0),
|
||||||
|
"jumbo_chunks": int64(0),
|
||||||
}
|
}
|
||||||
acc.AssertContainsTaggedFields(t, "mongodb", fields, stateTags)
|
acc.AssertContainsTaggedFields(t, "mongodb", fields, stateTags)
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,9 +36,16 @@ func (s *Server) gatherData(acc telegraf.Accumulator) error {
|
||||||
log.Println("Not gathering replica set status, member not in replica set")
|
log.Println("Not gathering replica set status, member not in replica set")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
jumbo_chunks, _ := s.Session.DB("config").C("chunks").Find(bson.M{"jumbo": true}).Count()
|
||||||
|
|
||||||
|
result_cluster := &ClusterStatus{
|
||||||
|
JumboChunksCount: int64(jumbo_chunks),
|
||||||
|
}
|
||||||
|
|
||||||
result := &MongoStatus{
|
result := &MongoStatus{
|
||||||
ServerStatus: result_server,
|
ServerStatus: result_server,
|
||||||
ReplSetStatus: result_repl,
|
ReplSetStatus: result_repl,
|
||||||
|
ClusterStatus: result_cluster,
|
||||||
}
|
}
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
|
|
|
@ -34,6 +34,7 @@ type MongoStatus struct {
|
||||||
SampleTime time.Time
|
SampleTime time.Time
|
||||||
ServerStatus *ServerStatus
|
ServerStatus *ServerStatus
|
||||||
ReplSetStatus *ReplSetStatus
|
ReplSetStatus *ReplSetStatus
|
||||||
|
ClusterStatus *ClusterStatus
|
||||||
}
|
}
|
||||||
|
|
||||||
type ServerStatus struct {
|
type ServerStatus struct {
|
||||||
|
@ -64,6 +65,11 @@ type ServerStatus struct {
|
||||||
Metrics *MetricsStats `bson:"metrics"`
|
Metrics *MetricsStats `bson:"metrics"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ClusterStatus stores information related to the whole cluster
|
||||||
|
type ClusterStatus struct {
|
||||||
|
JumboChunksCount int64
|
||||||
|
}
|
||||||
|
|
||||||
// ReplSetStatus stores information from replSetGetStatus
|
// ReplSetStatus stores information from replSetGetStatus
|
||||||
type ReplSetStatus struct {
|
type ReplSetStatus struct {
|
||||||
Members []ReplSetMember `bson:"members"`
|
Members []ReplSetMember `bson:"members"`
|
||||||
|
@ -387,6 +393,9 @@ type StatLine struct {
|
||||||
NumConnections int64
|
NumConnections int64
|
||||||
ReplSetName string
|
ReplSetName string
|
||||||
NodeType string
|
NodeType string
|
||||||
|
|
||||||
|
// Cluster fields
|
||||||
|
JumboChunksCount int64
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseLocks(stat ServerStatus) map[string]LockUsage {
|
func parseLocks(stat ServerStatus) map[string]LockUsage {
|
||||||
|
@ -665,5 +674,8 @@ func NewStatLine(oldMongo, newMongo MongoStatus, key string, all bool, sampleSec
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
newClusterStat := *newMongo.ClusterStatus
|
||||||
|
returnVal.JumboChunksCount = newClusterStat.JumboChunksCount
|
||||||
|
|
||||||
return returnVal
|
return returnVal
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue