Enable setting a clientID for MQTT Output

closes #2079
closes #1910
This commit is contained in:
Pieter Slabbert 2016-11-24 17:11:24 +02:00 committed by Cameron Sparr
parent cebbf39276
commit 182f282fd2
2 changed files with 11 additions and 2 deletions

View File

@ -24,6 +24,7 @@ in their config file.
- [#1937](https://github.com/influxdata/telegraf/pull/1937): HAProxy session limit metric. - [#1937](https://github.com/influxdata/telegraf/pull/1937): HAProxy session limit metric.
- [#2068](https://github.com/influxdata/telegraf/issues/2068): Accept strings for StatsD sets. - [#2068](https://github.com/influxdata/telegraf/issues/2068): Accept strings for StatsD sets.
- [#1893](https://github.com/influxdata/telegraf/issues/1893): Change StatsD default "reset" behavior. - [#1893](https://github.com/influxdata/telegraf/issues/1893): Change StatsD default "reset" behavior.
- [#2079](https://github.com/influxdata/telegraf/pull/2079): Enable setting ClientID in MQTT output.
### Bugfixes ### Bugfixes

View File

@ -25,6 +25,9 @@ var sampleConfig = `
# username = "telegraf" # username = "telegraf"
# password = "metricsmetricsmetricsmetrics" # password = "metricsmetricsmetricsmetrics"
## client ID, if not set a random ID is generated
# client_id = ""
## Optional SSL Config ## Optional SSL Config
# ssl_ca = "/etc/telegraf/ca.pem" # ssl_ca = "/etc/telegraf/ca.pem"
# ssl_cert = "/etc/telegraf/cert.pem" # ssl_cert = "/etc/telegraf/cert.pem"
@ -47,6 +50,7 @@ type MQTT struct {
Timeout internal.Duration Timeout internal.Duration
TopicPrefix string TopicPrefix string
QoS int `toml:"qos"` QoS int `toml:"qos"`
ClientID string `toml:"client_id"`
// Path to CA file // Path to CA file
SSLCA string `toml:"ssl_ca"` SSLCA string `toml:"ssl_ca"`
@ -155,7 +159,11 @@ func (m *MQTT) publish(topic string, body []byte) error {
func (m *MQTT) createOpts() (*paho.ClientOptions, error) { func (m *MQTT) createOpts() (*paho.ClientOptions, error) {
opts := paho.NewClientOptions() opts := paho.NewClientOptions()
if m.ClientID != "" {
opts.SetClientID(m.ClientID)
} else {
opts.SetClientID("Telegraf-Output-" + internal.RandomString(5)) opts.SetClientID("Telegraf-Output-" + internal.RandomString(5))
}
tlsCfg, err := internal.GetTLSConfig( tlsCfg, err := internal.GetTLSConfig(
m.SSLCert, m.SSLKey, m.SSLCA, m.InsecureSkipVerify) m.SSLCert, m.SSLKey, m.SSLCA, m.InsecureSkipVerify)