Add telegraf and go version to the internal input plugin (#6216)

This commit is contained in:
Adrián López 2019-08-08 19:51:03 +02:00 committed by Daniel Nelson
parent 17465b0aaf
commit eb8959272d
3 changed files with 27 additions and 12 deletions

View File

@ -42,14 +42,16 @@ agent stats collect aggregate stats on all telegraf plugins.
- metrics_written - metrics_written
internal_gather stats collect aggregate stats on all input plugins internal_gather stats collect aggregate stats on all input plugins
that are of the same input type. They are tagged with `input=<plugin_name>`. that are of the same input type. They are tagged with `input=<plugin_name>`
`version=<telegraf_version>` and `go_version=<go_build_version>`.
- internal_gather - internal_gather
- gather_time_ns - gather_time_ns
- metrics_gathered - metrics_gathered
internal_write stats collect aggregate stats on all output plugins internal_write stats collect aggregate stats on all output plugins
that are of the same input type. They are tagged with `output=<plugin_name>`. that are of the same input type. They are tagged with `output=<plugin_name>`
and `version=<telegraf_version>`.
- internal_write - internal_write
@ -63,7 +65,7 @@ that are of the same input type. They are tagged with `output=<plugin_name>`.
internal_<plugin_name> are metrics which are defined on a per-plugin basis, and internal_<plugin_name> are metrics which are defined on a per-plugin basis, and
usually contain tags which differentiate each instance of a particular type of usually contain tags which differentiate each instance of a particular type of
plugin. plugin and `version=<telegraf_version>`.
- internal_<plugin_name> - internal_<plugin_name>
- individual plugin-specific fields, such as requests counts. - individual plugin-specific fields, such as requests counts.
@ -71,15 +73,16 @@ plugin.
### Tags: ### Tags:
All measurements for specific plugins are tagged with information relevant All measurements for specific plugins are tagged with information relevant
to each particular plugin. to each particular plugin and with `version=<telegraf_version>`.
### Example Output: ### Example Output:
``` ```
internal_memstats,host=tyrion alloc_bytes=4457408i,sys_bytes=10590456i,pointer_lookups=7i,mallocs=17642i,frees=7473i,heap_sys_bytes=6848512i,heap_idle_bytes=1368064i,heap_in_use_bytes=5480448i,heap_released_bytes=0i,total_alloc_bytes=6875560i,heap_alloc_bytes=4457408i,heap_objects_bytes=10169i,num_gc=2i 1480682800000000000 internal_memstats,host=tyrion alloc_bytes=4457408i,sys_bytes=10590456i,pointer_lookups=7i,mallocs=17642i,frees=7473i,heap_sys_bytes=6848512i,heap_idle_bytes=1368064i,heap_in_use_bytes=5480448i,heap_released_bytes=0i,total_alloc_bytes=6875560i,heap_alloc_bytes=4457408i,heap_objects_bytes=10169i,num_gc=2i 1480682800000000000
internal_agent,host=tyrion metrics_written=18i,metrics_dropped=0i,metrics_gathered=19i,gather_errors=0i 1480682800000000000 internal_agent,host=tyrion,go_version=1.12.7,version=1.99.0 metrics_written=18i,metrics_dropped=0i,metrics_gathered=19i,gather_errors=0i 1480682800000000000
internal_write,output=file,host=tyrion buffer_limit=10000i,write_time_ns=636609i,metrics_added=18i,metrics_written=18i,buffer_size=0i 1480682800000000000 internal_write,output=file,host=tyrion,version=1.99.0 buffer_limit=10000i,write_time_ns=636609i,metrics_added=18i,metrics_written=18i,buffer_size=0i 1480682800000000000
internal_gather,input=internal,host=tyrion metrics_gathered=19i,gather_time_ns=442114i 1480682800000000000 internal_gather,input=internal,host=tyrion,version=1.99.0 metrics_gathered=19i,gather_time_ns=442114i 1480682800000000000
internal_gather,input=http_listener,host=tyrion metrics_gathered=0i,gather_time_ns=167285i 1480682800000000000 internal_gather,input=http_listener,host=tyrion,version=1.99.0 metrics_gathered=0i,gather_time_ns=167285i 1480682800000000000
internal_http_listener,address=:8186,host=tyrion queries_received=0i,writes_received=0i,requests_received=0i,buffers_created=0i,requests_served=0i,pings_received=0i,bytes_received=0i,not_founds_served=0i,pings_served=0i,queries_served=0i,writes_served=0i 1480682800000000000 internal_http_listener,address=:8186,host=tyrion,version=1.99.0 queries_received=0i,writes_received=0i,requests_received=0i,buffers_created=0i,requests_served=0i,pings_received=0i,bytes_received=0i,not_founds_served=0i,pings_served=0i,queries_served=0i,writes_served=0i 1480682800000000000
``` ```

View File

@ -2,8 +2,10 @@ package internal
import ( import (
"runtime" "runtime"
"strings"
"github.com/influxdata/telegraf" "github.com/influxdata/telegraf"
inter "github.com/influxdata/telegraf/internal"
"github.com/influxdata/telegraf/plugins/inputs" "github.com/influxdata/telegraf/plugins/inputs"
"github.com/influxdata/telegraf/selfstat" "github.com/influxdata/telegraf/selfstat"
) )
@ -54,7 +56,14 @@ func (s *Self) Gather(acc telegraf.Accumulator) error {
acc.AddFields("internal_memstats", fields, map[string]string{}) acc.AddFields("internal_memstats", fields, map[string]string{})
} }
telegrafVersion := inter.Version()
goVersion := strings.TrimPrefix(runtime.Version(), "go")
for _, m := range selfstat.Metrics() { for _, m := range selfstat.Metrics() {
if m.Name() == "internal_agent" {
m.AddTag("go_version", goVersion)
}
m.AddTag("version", telegrafVersion)
acc.AddFields(m.Name(), m.Fields(), m.Tags(), m.Time()) acc.AddFields(m.Name(), m.Fields(), m.Tags(), m.Time())
} }

View File

@ -26,7 +26,8 @@ func TestSelfPlugin(t *testing.T) {
"test": int64(3), "test": int64(3),
}, },
map[string]string{ map[string]string{
"test": "foo", "test": "foo",
"version": "",
}, },
) )
acc.ClearMetrics() acc.ClearMetrics()
@ -39,7 +40,8 @@ func TestSelfPlugin(t *testing.T) {
"test": int64(101), "test": int64(101),
}, },
map[string]string{ map[string]string{
"test": "foo", "test": "foo",
"version": "",
}, },
) )
acc.ClearMetrics() acc.ClearMetrics()
@ -56,7 +58,8 @@ func TestSelfPlugin(t *testing.T) {
"test_ns": int64(150), "test_ns": int64(150),
}, },
map[string]string{ map[string]string{
"test": "foo", "test": "foo",
"version": "",
}, },
) )
} }