diff --git a/plugins/inputs/aerospike/aerospike.go b/plugins/inputs/aerospike/aerospike.go index c0e45b044..b8abcbcd1 100644 --- a/plugins/inputs/aerospike/aerospike.go +++ b/plugins/inputs/aerospike/aerospike.go @@ -181,7 +181,7 @@ func (a *Aerospike) gatherServer(acc telegraf.Accumulator, hostPort string) erro } func (a *Aerospike) getNodeInfo(n *as.Node, infoPolicy *as.InfoPolicy) (map[string]string, error) { - stats, err := n.RequestInfo(infoPolicy) + stats, err := n.RequestInfo(infoPolicy, "statistics") if err != nil { return nil, err } @@ -190,17 +190,21 @@ func (a *Aerospike) getNodeInfo(n *as.Node, infoPolicy *as.InfoPolicy) (map[stri } func (a *Aerospike) parseNodeInfo(acc telegraf.Accumulator, stats map[string]string, hostPort string, nodeName string) { - tags := map[string]string{ + nTags := map[string]string{ "aerospike_host": hostPort, "node_name": nodeName, } - fields := make(map[string]interface{}) - - for k, v := range stats { - key := strings.Replace(k, "-", "_", -1) - fields[key] = parseAerospikeValue(key, v) + nFields := make(map[string]interface{}) + stat := strings.Split(stats["statistics"], ";") + for _, pair := range stat { + parts := strings.Split(pair, "=") + if len(parts) < 2 { + continue + } + key := strings.Replace(parts[0], "-", "_", -1) + nFields[key] = parseAerospikeValue(key, parts[1]) } - acc.AddFields("aerospike_node", fields, tags, time.Now()) + acc.AddFields("aerospike_node", nFields, nTags, time.Now()) } func (a *Aerospike) getNamespaces(n *as.Node, infoPolicy *as.InfoPolicy) ([]string, error) { diff --git a/plugins/inputs/aerospike/aerospike_test.go b/plugins/inputs/aerospike/aerospike_test.go index df7ef1311..7b2c21a81 100644 --- a/plugins/inputs/aerospike/aerospike_test.go +++ b/plugins/inputs/aerospike/aerospike_test.go @@ -316,9 +316,7 @@ func TestParseNodeInfo(t *testing.T) { var acc testutil.Accumulator stats := map[string]string{ - "early_tsvc_from_proxy_error": "0", - "cluster_principal": "BB9020012AC4202", - "cluster_is_member": "true", + "statistics": "early_tsvc_from_proxy_error=0;cluster_principal=BB9020012AC4202;cluster_is_member=true", } expectedFields := map[string]interface{}{