Add TLS support for nsqd stats connections.

This commit is contained in:
Marcus Barczak
2017-11-29 08:18:52 -08:00
parent 34a11d6135
commit db85b3fcb4
3 changed files with 40 additions and 8 deletions

View File

@ -22,6 +22,9 @@ var (
nsqdURL = flag.String("nsqd.addr", "http://localhost:4151/stats", "Address of the nsqd node.")
enabledCollectors = flag.String("collect", "stats.topics,stats.channels", "Comma-separated list of collectors to use.")
namespace = flag.String("namespace", "nsq", "Namespace for the NSQ metrics.")
tlsCACert = flag.String("tls.ca_cert", "", "CA certificate file to be used for nsqd connections.")
tlsCert = flag.String("tls.cert", "", "TLS certificate file to be used for client connections to nsqd.")
tlsKey = flag.String("tls.key", "", "TLS key file to be used for TLS client connections to nsqd.")
statsRegistry = map[string]func(namespace string) collector.StatsCollector{
"topics": collector.TopicStats,
@ -60,13 +63,15 @@ func main() {
}
func createNsqExecutor() (*collector.NsqExecutor, error) {
nsqdURL, err := normalizeURL(*nsqdURL)
if err != nil {
return nil, err
}
ex := collector.NewNsqExecutor(*namespace, nsqdURL)
ex, err := collector.NewNsqExecutor(*namespace, nsqdURL, *tlsCACert, *tlsCert, *tlsKey)
if err != nil {
log.Fatal(err)
}
for _, param := range strings.Split(*enabledCollectors, ",") {
param = strings.TrimSpace(param)
parts := strings.SplitN(param, ".", 2)