From 92343d91d620f801af2bc5aad13aa649680ade0e Mon Sep 17 00:00:00 2001
From: Cameron Sparr <cameronsparr@gmail.com>
Date: Mon, 14 Dec 2015 18:03:33 -0600
Subject: [PATCH] 0.3.0: ping, mysql, nginx

---
 plugins/mysql/mysql.go | 15 +++++++++------
 plugins/nginx/nginx.go | 18 ++++++++++--------
 plugins/ping/ping.go   | 11 +++++++----
 3 files changed, 26 insertions(+), 18 deletions(-)

diff --git a/plugins/mysql/mysql.go b/plugins/mysql/mysql.go
index 5193f078..db99123f 100644
--- a/plugins/mysql/mysql.go
+++ b/plugins/mysql/mysql.go
@@ -138,6 +138,8 @@ func (m *Mysql) gatherServer(serv string, acc plugins.Accumulator) error {
 	if err != nil {
 		servtag = "localhost"
 	}
+	tags := map[string]string{"server": servtag}
+	fields := make(map[string]interface{})
 	for rows.Next() {
 		var name string
 		var val interface{}
@@ -149,12 +151,10 @@ func (m *Mysql) gatherServer(serv string, acc plugins.Accumulator) error {
 
 		var found bool
 
-		tags := map[string]string{"server": servtag}
-
 		for _, mapped := range mappings {
 			if strings.HasPrefix(name, mapped.onServer) {
 				i, _ := strconv.Atoi(string(val.([]byte)))
-				acc.Add(mapped.inExport+name[len(mapped.onServer):], i, tags)
+				fields[mapped.inExport+name[len(mapped.onServer):]] = i
 				found = true
 			}
 		}
@@ -170,16 +170,17 @@ func (m *Mysql) gatherServer(serv string, acc plugins.Accumulator) error {
 				return err
 			}
 
-			acc.Add("queries", i, tags)
+			fields["queries"] = i
 		case "Slow_queries":
 			i, err := strconv.ParseInt(string(val.([]byte)), 10, 64)
 			if err != nil {
 				return err
 			}
 
-			acc.Add("slow_queries", i, tags)
+			fields["slow_queries"] = i
 		}
 	}
+	acc.AddFields("mysql", fields, tags)
 
 	conn_rows, err := db.Query("SELECT user, sum(1) FROM INFORMATION_SCHEMA.PROCESSLIST GROUP BY user")
 
@@ -193,11 +194,13 @@ func (m *Mysql) gatherServer(serv string, acc plugins.Accumulator) error {
 		}
 
 		tags := map[string]string{"server": servtag, "user": user}
+		fields := make(map[string]interface{})
 
 		if err != nil {
 			return err
 		}
-		acc.Add("connections", connections, tags)
+		fields["connections"] = connections
+		acc.AddFields("mysql_users", fields, tags)
 	}
 
 	return nil
diff --git a/plugins/nginx/nginx.go b/plugins/nginx/nginx.go
index 2c30ea67..5d7aace2 100644
--- a/plugins/nginx/nginx.go
+++ b/plugins/nginx/nginx.go
@@ -127,14 +127,16 @@ func (n *Nginx) gatherUrl(addr *url.URL, acc plugins.Accumulator) error {
 	}
 
 	tags := getTags(addr)
-
-	acc.Add("active", active, tags)
-	acc.Add("accepts", accepts, tags)
-	acc.Add("handled", handled, tags)
-	acc.Add("requests", requests, tags)
-	acc.Add("reading", reading, tags)
-	acc.Add("writing", writing, tags)
-	acc.Add("waiting", waiting, tags)
+	fields := map[string]interface{}{
+		"active":   active,
+		"accepts":  accepts,
+		"handled":  handled,
+		"requests": requests,
+		"reading":  reading,
+		"writing":  writing,
+		"waiting":  waiting,
+	}
+	acc.AddFields("nginx", fields, tags)
 
 	return nil
 }
diff --git a/plugins/ping/ping.go b/plugins/ping/ping.go
index e894fe29..72eee91a 100644
--- a/plugins/ping/ping.go
+++ b/plugins/ping/ping.go
@@ -82,10 +82,13 @@ func (p *Ping) Gather(acc plugins.Accumulator) error {
 			}
 			// Calculate packet loss percentage
 			loss := float64(trans-rec) / float64(trans) * 100.0
-			acc.Add("packets_transmitted", trans, tags)
-			acc.Add("packets_received", rec, tags)
-			acc.Add("percent_packet_loss", loss, tags)
-			acc.Add("average_response_ms", avg, tags)
+			fields := map[string]interface{}{
+				"packets_transmitted": trans,
+				"packets_received":    rec,
+				"percent_packet_loss": loss,
+				"average_response_ms": avg,
+			}
+			acc.AddFields("ping", fields, tags)
 		}(url, acc)
 	}
 
-- 
GitLab