From 7a2eeb74392da1097190b6ed58be05f0d0913a15 Mon Sep 17 00:00:00 2001 From: Cameron Sparr Date: Thu, 3 Dec 2015 11:46:06 -0700 Subject: [PATCH] Add optional auth credentials to Jolokia plugin closes #414 --- CHANGELOG.md | 1 + plugins/jolokia/jolokia.go | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 08a390994..461459b21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ### Features - [#412](https://github.com/influxdb/telegraf/pull/412): Additional memcached stats. Thanks @mgresser! - [#410](https://github.com/influxdb/telegraf/pull/410): Additional redis metrics. Thanks @vlaadbrain! +- [#414](https://github.com/influxdb/telegraf/issues/414): Jolokia plugin auth parameters ### Bugfixes - [#405](https://github.com/influxdb/telegraf/issues/405): Prometheus output cardinality issue diff --git a/plugins/jolokia/jolokia.go b/plugins/jolokia/jolokia.go index 041534b87..ee579433a 100644 --- a/plugins/jolokia/jolokia.go +++ b/plugins/jolokia/jolokia.go @@ -13,9 +13,11 @@ import ( ) type Server struct { - Name string - Host string - Port string + Name string + Host string + Username string + Password string + Port string } type Metric struct { @@ -59,6 +61,8 @@ func (j *Jolokia) SampleConfig() string { name = "stable" host = "192.168.103.2" port = "8180" + # username = "myuser" + # password = "mypassword" # List of metrics collected on above servers # Each metric consists in a name, a jmx path and either a pass or drop slice attributes @@ -193,10 +197,14 @@ func (j *Jolokia) Gather(acc plugins.Accumulator) error { tags["host"] = server.Host // Prepare URL - requestUrl, err := url.Parse("http://" + server.Host + ":" + server.Port + context + jmxPath) + requestUrl, err := url.Parse("http://" + server.Host + ":" + + server.Port + context + jmxPath) if err != nil { return err } + if server.Username != "" || server.Password != "" { + requestUrl.User = url.UserPassword(server.Username, server.Password) + } out, _ := j.getAttr(requestUrl)