From c02828322c2ff8548bcaaefd5403a8e683953020 Mon Sep 17 00:00:00 2001 From: Tevin Jeffrey Date: Fri, 16 Dec 2016 09:03:53 -0500 Subject: [PATCH] Add field for last GC pause time (#2121) --- CHANGELOG.md | 1 + plugins/inputs/influxdb/influxdb.go | 54 ++++++++++++------------ plugins/inputs/influxdb/influxdb_test.go | 1 + 3 files changed, 30 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 95ad6d1a2..357d9f22d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ in their config file. - [#2079](https://github.com/influxdata/telegraf/pull/2079): Enable setting ClientID in MQTT output. - [#2001](https://github.com/influxdata/telegraf/pull/2001): MongoDB input plugin: Improve state data. - [#2078](https://github.com/influxdata/telegraf/pull/2078): Ping input: add standard deviation field. +- [#2121](https://github.com/influxdata/telegraf/pull/2121): Add GC pause metric to InfluxDB input plugin. ### Bugfixes diff --git a/plugins/inputs/influxdb/influxdb.go b/plugins/inputs/influxdb/influxdb.go index bb11cfee4..3c98eead3 100644 --- a/plugins/inputs/influxdb/influxdb.go +++ b/plugins/inputs/influxdb/influxdb.go @@ -94,32 +94,33 @@ type point struct { } type memstats struct { - Alloc int64 `json:"Alloc"` - TotalAlloc int64 `json:"TotalAlloc"` - Sys int64 `json:"Sys"` - Lookups int64 `json:"Lookups"` - Mallocs int64 `json:"Mallocs"` - Frees int64 `json:"Frees"` - HeapAlloc int64 `json:"HeapAlloc"` - HeapSys int64 `json:"HeapSys"` - HeapIdle int64 `json:"HeapIdle"` - HeapInuse int64 `json:"HeapInuse"` - HeapReleased int64 `json:"HeapReleased"` - HeapObjects int64 `json:"HeapObjects"` - StackInuse int64 `json:"StackInuse"` - StackSys int64 `json:"StackSys"` - MSpanInuse int64 `json:"MSpanInuse"` - MSpanSys int64 `json:"MSpanSys"` - MCacheInuse int64 `json:"MCacheInuse"` - MCacheSys int64 `json:"MCacheSys"` - BuckHashSys int64 `json:"BuckHashSys"` - GCSys int64 `json:"GCSys"` - OtherSys int64 `json:"OtherSys"` - NextGC int64 `json:"NextGC"` - LastGC int64 `json:"LastGC"` - PauseTotalNs int64 `json:"PauseTotalNs"` - NumGC int64 `json:"NumGC"` - GCCPUFraction float64 `json:"GCCPUFraction"` + Alloc int64 `json:"Alloc"` + TotalAlloc int64 `json:"TotalAlloc"` + Sys int64 `json:"Sys"` + Lookups int64 `json:"Lookups"` + Mallocs int64 `json:"Mallocs"` + Frees int64 `json:"Frees"` + HeapAlloc int64 `json:"HeapAlloc"` + HeapSys int64 `json:"HeapSys"` + HeapIdle int64 `json:"HeapIdle"` + HeapInuse int64 `json:"HeapInuse"` + HeapReleased int64 `json:"HeapReleased"` + HeapObjects int64 `json:"HeapObjects"` + StackInuse int64 `json:"StackInuse"` + StackSys int64 `json:"StackSys"` + MSpanInuse int64 `json:"MSpanInuse"` + MSpanSys int64 `json:"MSpanSys"` + MCacheInuse int64 `json:"MCacheInuse"` + MCacheSys int64 `json:"MCacheSys"` + BuckHashSys int64 `json:"BuckHashSys"` + GCSys int64 `json:"GCSys"` + OtherSys int64 `json:"OtherSys"` + NextGC int64 `json:"NextGC"` + LastGC int64 `json:"LastGC"` + PauseTotalNs int64 `json:"PauseTotalNs"` + PauseNs [256]int64 `json:"PauseNs"` + NumGC int64 `json:"NumGC"` + GCCPUFraction float64 `json:"GCCPUFraction"` } // Gathers data from a particular URL @@ -202,6 +203,7 @@ func (i *InfluxDB) gatherURL( "next_gc": m.NextGC, "last_gc": m.LastGC, "pause_total_ns": m.PauseTotalNs, + "pause_ns": m.PauseNs[(m.NumGC+255)%256], "num_gc": m.NumGC, "gcc_pu_fraction": m.GCCPUFraction, }, diff --git a/plugins/inputs/influxdb/influxdb_test.go b/plugins/inputs/influxdb/influxdb_test.go index 09707a548..c27aa77dc 100644 --- a/plugins/inputs/influxdb/influxdb_test.go +++ b/plugins/inputs/influxdb/influxdb_test.go @@ -86,6 +86,7 @@ func TestInfluxDB(t *testing.T) { "frees": int64(381008), "heap_idle": int64(15802368), "pause_total_ns": int64(5132914), + "pause_ns": int64(127053), "lookups": int64(77), "heap_sys": int64(33849344), "mcache_sys": int64(16384),