Skip to content

Commit

Permalink
remove old log
Browse files Browse the repository at this point in the history
  • Loading branch information
lucacome committed May 30, 2023
1 parent f1b02a8 commit 1db0d9c
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 39 deletions.
9 changes: 6 additions & 3 deletions collector/nginx.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package collector

import (
"log"
"sync"

"github.com/go-kit/log"
"github.com/go-kit/log/level"
"github.com/nginxinc/nginx-prometheus-exporter/client"
"github.com/prometheus/client_golang/prometheus"
)
Expand All @@ -14,12 +15,14 @@ type NginxCollector struct {
metrics map[string]*prometheus.Desc
upMetric prometheus.Gauge
mutex sync.Mutex
logger log.Logger
}

// NewNginxCollector creates an NginxCollector.
func NewNginxCollector(nginxClient *client.NginxClient, namespace string, constLabels map[string]string) *NginxCollector {
func NewNginxCollector(nginxClient *client.NginxClient, namespace string, constLabels map[string]string, logger log.Logger) *NginxCollector {
return &NginxCollector{
nginxClient: nginxClient,
logger: logger,
metrics: map[string]*prometheus.Desc{
"connections_active": newGlobalMetric(namespace, "connections_active", "Active client connections", constLabels),
"connections_accepted": newGlobalMetric(namespace, "connections_accepted", "Accepted client connections", constLabels),
Expand Down Expand Up @@ -52,7 +55,7 @@ func (c *NginxCollector) Collect(ch chan<- prometheus.Metric) {
if err != nil {
c.upMetric.Set(nginxDown)
ch <- c.upMetric
log.Printf("Error getting stats: %v", err)
level.Error(c.logger).Log("msg", "Error getting stats", "error", err.Error())
return
}

Expand Down
27 changes: 12 additions & 15 deletions collector/nginx_plus.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ package collector

import (
"fmt"
"log"
"sync"

"github.com/go-kit/log"
"github.com/go-kit/log/level"
plusclient "github.com/nginxinc/nginx-plus-go-client/client"
"github.com/prometheus/client_golang/prometheus"
)
Expand Down Expand Up @@ -51,6 +52,7 @@ type NginxPlusCollector struct {
upstreamServerPeerLabels map[string][]string
streamUpstreamServerPeerLabels map[string][]string
variableLabelsMutex sync.RWMutex
logger log.Logger
}

// UpdateUpstreamServerPeerLabels updates the Upstream Server Peer Labels
Expand Down Expand Up @@ -222,7 +224,7 @@ func NewVariableLabelNames(upstreamServerVariableLabelNames []string, serverZone
}

// NewNginxPlusCollector creates an NginxPlusCollector.
func NewNginxPlusCollector(nginxClient *plusclient.NginxClient, namespace string, variableLabelNames VariableLabelNames, constLabels map[string]string) *NginxPlusCollector {
func NewNginxPlusCollector(nginxClient *plusclient.NginxClient, namespace string, variableLabelNames VariableLabelNames, constLabels map[string]string, logger log.Logger) *NginxPlusCollector {
upstreamServerVariableLabelNames := append(variableLabelNames.UpstreamServerVariableLabelNames, variableLabelNames.UpstreamServerPeerVariableLabelNames...)
streamUpstreamServerVariableLabelNames := append(variableLabelNames.StreamUpstreamServerVariableLabelNames, variableLabelNames.StreamUpstreamServerPeerVariableLabelNames...)
return &NginxPlusCollector{
Expand All @@ -234,6 +236,7 @@ func NewNginxPlusCollector(nginxClient *plusclient.NginxClient, namespace string
streamUpstreamServerPeerLabels: make(map[string][]string),
streamUpstreamServerLabels: make(map[string][]string),
nginxClient: nginxClient,
logger: logger,
totalMetrics: map[string]*prometheus.Desc{
"connections_accepted": newGlobalMetric(namespace, "connections_accepted", "Accepted client connections", constLabels),
"connections_dropped": newGlobalMetric(namespace, "connections_dropped", "Dropped client connections", constLabels),
Expand Down Expand Up @@ -551,7 +554,7 @@ func (c *NginxPlusCollector) Collect(ch chan<- prometheus.Metric) {
if err != nil {
c.upMetric.Set(nginxDown)
ch <- c.upMetric
log.Printf("Error getting stats: %v", err)
level.Warn(c.logger).Log("msg", "Error getting stats", "error", err.Error())
return
}

Expand Down Expand Up @@ -582,8 +585,7 @@ func (c *NginxPlusCollector) Collect(ch chan<- prometheus.Metric) {
varLabelValues := c.getServerZoneLabelValues(name)

if c.variableLabelNames.ServerZoneVariableLabelNames != nil && len(varLabelValues) != len(c.variableLabelNames.ServerZoneVariableLabelNames) {
log.Printf("wrong number of labels for http zone %v. For labels %v, got values: %v. Empty labels will be used instead",
name, c.variableLabelNames.ServerZoneVariableLabelNames, varLabelValues)
level.Warn(c.logger).Log("msg", "wrong number of labels for http zone, empty labels will be used instead", "zone", name, "expected", len(c.variableLabelNames.ServerZoneVariableLabelNames), "got", len(varLabelValues))
for range c.variableLabelNames.ServerZoneVariableLabelNames {
labelValues = append(labelValues, "")
}
Expand Down Expand Up @@ -704,8 +706,7 @@ func (c *NginxPlusCollector) Collect(ch chan<- prometheus.Metric) {
varLabelValues := c.getStreamServerZoneLabelValues(name)

if c.variableLabelNames.StreamServerZoneVariableLabelNames != nil && len(varLabelValues) != len(c.variableLabelNames.StreamServerZoneVariableLabelNames) {
log.Printf("wrong number of labels for stream server zone %v. For labels %v, got values: %v. Empty labels will be used instead",
name, c.variableLabelNames.StreamServerZoneVariableLabelNames, varLabelValues)
level.Warn(c.logger).Log("msg", "wrong number of labels for stream server zone, empty labels will be used instead", "zone", name, "expected", len(c.variableLabelNames.StreamServerZoneVariableLabelNames), "got", len(varLabelValues))
for range c.variableLabelNames.StreamServerZoneVariableLabelNames {
labelValues = append(labelValues, "")
}
Expand Down Expand Up @@ -742,8 +743,7 @@ func (c *NginxPlusCollector) Collect(ch chan<- prometheus.Metric) {
varLabelValues := c.getUpstreamServerLabelValues(name)

if c.variableLabelNames.UpstreamServerVariableLabelNames != nil && len(varLabelValues) != len(c.variableLabelNames.UpstreamServerVariableLabelNames) {
log.Printf("wrong number of labels for upstream %v. For labels %v, got values: %v. Empty labels will be used instead",
name, c.variableLabelNames.UpstreamServerVariableLabelNames, varLabelValues)
level.Warn(c.logger).Log("msg", "wrong number of labels for upstream, empty labels will be used instead", "upstream", name, "expected", len(c.variableLabelNames.UpstreamServerVariableLabelNames), "got", len(varLabelValues))
for range c.variableLabelNames.UpstreamServerVariableLabelNames {
labelValues = append(labelValues, "")
}
Expand All @@ -754,8 +754,7 @@ func (c *NginxPlusCollector) Collect(ch chan<- prometheus.Metric) {
upstreamServer := fmt.Sprintf("%v/%v", name, peer.Server)
varPeerLabelValues := c.getUpstreamServerPeerLabelValues(upstreamServer)
if c.variableLabelNames.UpstreamServerPeerVariableLabelNames != nil && len(varPeerLabelValues) != len(c.variableLabelNames.UpstreamServerPeerVariableLabelNames) {
log.Printf("wrong number of labels for upstream peer %v. For labels %v, got values: %v. Empty labels will be used instead",
peer.Server, c.variableLabelNames.UpstreamServerPeerVariableLabelNames, varPeerLabelValues)
level.Warn(c.logger).Log("msg", "wrong number of labels for upstream peer, empty labels will be used instead", "upstream", name, "peer", peer.Server, "expected", len(c.variableLabelNames.UpstreamServerPeerVariableLabelNames), "got", len(varPeerLabelValues))
for range c.variableLabelNames.UpstreamServerPeerVariableLabelNames {
labelValues = append(labelValues, "")
}
Expand Down Expand Up @@ -901,8 +900,7 @@ func (c *NginxPlusCollector) Collect(ch chan<- prometheus.Metric) {
varLabelValues := c.getStreamUpstreamServerLabelValues(name)

if c.variableLabelNames.StreamUpstreamServerVariableLabelNames != nil && len(varLabelValues) != len(c.variableLabelNames.StreamUpstreamServerVariableLabelNames) {
log.Printf("wrong number of labels for stream server %v. For labels %v, got values: %v. Empty labels will be used instead",
name, c.variableLabelNames.StreamUpstreamServerVariableLabelNames, varLabelValues)
level.Warn(c.logger).Log("msg", "wrong number of labels for stream server, empty labels will be used instead", "server", name, "labels", c.variableLabelNames.StreamUpstreamServerVariableLabelNames, "values", varLabelValues)
for range c.variableLabelNames.StreamUpstreamServerVariableLabelNames {
labelValues = append(labelValues, "")
}
Expand All @@ -913,8 +911,7 @@ func (c *NginxPlusCollector) Collect(ch chan<- prometheus.Metric) {
upstreamServer := fmt.Sprintf("%v/%v", name, peer.Server)
varPeerLabelValues := c.getStreamUpstreamServerPeerLabelValues(upstreamServer)
if c.variableLabelNames.StreamUpstreamServerPeerVariableLabelNames != nil && len(varPeerLabelValues) != len(c.variableLabelNames.StreamUpstreamServerPeerVariableLabelNames) {
log.Printf("wrong number of labels for stream upstream peer %v. For labels %v, got values: %v. Empty labels will be used instead",
peer.Server, c.variableLabelNames.StreamUpstreamServerPeerVariableLabelNames, varPeerLabelValues)
level.Warn(c.logger).Log("msg", "wrong number of labels for stream upstream peer, empty labels will be used instead", "server", upstreamServer, "labels", c.variableLabelNames.StreamUpstreamServerPeerVariableLabelNames, "values", varPeerLabelValues)
for range c.variableLabelNames.StreamUpstreamServerPeerVariableLabelNames {
labelValues = append(labelValues, "")
}
Expand Down
45 changes: 24 additions & 21 deletions exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"crypto/tls"
"crypto/x509"
"fmt"
"log"
"net"
"net/http"
"os"
Expand All @@ -19,6 +18,7 @@ import (
"github.com/nginxinc/nginx-prometheus-exporter/collector"

"github.com/alecthomas/kingpin/v2"
"github.com/go-kit/log"
"github.com/go-kit/log/level"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
Expand Down Expand Up @@ -57,7 +57,7 @@ func createPositiveDurationFlag(s kingpin.Settings) (target *time.Duration) {
return
}

func createClientWithRetries(getClient func() (interface{}, error), retries uint, retryInterval time.Duration) (interface{}, error) {
func createClientWithRetries(getClient func() (interface{}, error), retries uint, retryInterval time.Duration, logger log.Logger) (interface{}, error) {
var err error
var nginxClient interface{}

Expand All @@ -67,7 +67,7 @@ func createClientWithRetries(getClient func() (interface{}, error), retries uint
return nginxClient, nil
}
if i < int(retries) {
log.Printf("Could not create Nginx Client. Retrying in %v...", retryInterval)
level.Error(logger).Log("msg", fmt.Sprintf("Could not create Nginx Client. Retrying in %v...", retryInterval))
time.Sleep(retryInterval)
}
}
Expand Down Expand Up @@ -107,7 +107,6 @@ func getListener(listenAddress string) (net.Listener, error) {
if err != nil {
return listener, err
}
log.Printf("Listening on %s", listenAddress)
return listener, nil
}

Expand Down Expand Up @@ -155,7 +154,7 @@ func main() {
if *sslCaCert != "" {
caCert, err := os.ReadFile(*sslCaCert)
if err != nil {
level.Error(logger).Log("msg", "Loading CA cert failed", "err", err)
level.Error(logger).Log("msg", "Loading CA cert failed", "err", err.Error())
os.Exit(1)
}
sslCaCertPool := x509.NewCertPool()
Expand All @@ -170,7 +169,7 @@ func main() {
if *sslClientCert != "" && *sslClientKey != "" {
clientCert, err := tls.LoadX509KeyPair(*sslClientCert, *sslClientKey)
if err != nil {
level.Error(logger).Log("msg", "Loading client certificate failed: %v", err)
level.Error(logger).Log("msg", "Loading client certificate failed", "error", err.Error())
os.Exit(1)
}
sslConfig.Certificates = []tls.Certificate{clientCert}
Expand All @@ -182,7 +181,7 @@ func main() {
if strings.HasPrefix(*scrapeURI, "unix:") {
socketPath, requestPath, err := parseUnixSocketAddress(*scrapeURI)
if err != nil {
level.Error(logger).Log("msg", "Parsing unix domain socket scrape address %s failed: %v", *scrapeURI, err)
level.Error(logger).Log("msg", "Parsing unix domain socket scrape address failed", "uri", *scrapeURI, "error", err.Error())
os.Exit(1)
}

Expand Down Expand Up @@ -211,10 +210,10 @@ func main() {
signalChan := make(chan os.Signal, 1)
signal.Notify(signalChan, os.Interrupt, syscall.SIGTERM)
go func() {
log.Printf("Signal received: %v. Exiting...", <-signalChan)
level.Info(logger).Log("msg", "Signal received, exiting...", "signal", <-signalChan)
err := srv.Close()
if err != nil {
level.Error(logger).Log("msg", "Error occurred while closing the server", "err", err)
level.Error(logger).Log("msg", "Error occurred while closing the server", "error", err.Error())
os.Exit(1)
}
os.Exit(0)
Expand All @@ -223,22 +222,22 @@ func main() {
if *nginxPlus {
plusClient, err := createClientWithRetries(func() (interface{}, error) {
return plusclient.NewNginxClient(httpClient, *scrapeURI)
}, *nginxRetries, *nginxRetryInterval)
}, *nginxRetries, *nginxRetryInterval, logger)
if err != nil {
level.Error(logger).Log("msg", "Could not create Nginx Plus Client: %v", err)
level.Error(logger).Log("msg", "Could not create Nginx Plus Client", "error", err.Error())
os.Exit(1)
}
variableLabelNames := collector.NewVariableLabelNames(nil, nil, nil, nil, nil, nil)
prometheus.MustRegister(collector.NewNginxPlusCollector(plusClient.(*plusclient.NginxClient), "nginxplus", variableLabelNames, constLabels))
prometheus.MustRegister(collector.NewNginxPlusCollector(plusClient.(*plusclient.NginxClient), "nginxplus", variableLabelNames, constLabels, logger))
} else {
ossClient, err := createClientWithRetries(func() (interface{}, error) {
return client.NewNginxClient(httpClient, *scrapeURI)
}, *nginxRetries, *nginxRetryInterval)
}, *nginxRetries, *nginxRetryInterval, logger)
if err != nil {
level.Error(logger).Log("msg", "Could not create Nginx Client: %v", err)
level.Error(logger).Log("msg", "Could not create Nginx Client", "error", err.Error())
os.Exit(1)
}
prometheus.MustRegister(collector.NewNginxCollector(ossClient.(*client.NginxClient), "nginx", constLabels))
prometheus.MustRegister(collector.NewNginxCollector(ossClient.(*client.NginxClient), "nginx", constLabels, logger))
}

http.Handle(*metricsPath, promhttp.Handler())
Expand All @@ -250,35 +249,39 @@ func main() {
<p><a href=%q>Metrics</a></p>`,
*metricsPath)
if err != nil {
level.Error(logger).Log("msg", "Error while sending a response for the '/' path: %v", err)
level.Error(logger).Log("msg", "Error while sending a response for the '/' path", "error", err.Error())
os.Exit(1)
}
})

listener, err := getListener(*listenAddr)
if err != nil {
level.Error(logger).Log("msg", "Could not create listener: %v", err)
level.Error(logger).Log("msg", "Could not create listener", "error", err.Error())
os.Exit(1)
}
level.Info(logger).Log("msg", "Listening on address", "address", *listenAddr)

if *securedMetrics {
_, err = os.Stat(*sslServerCert)
if err != nil {
level.Error(logger).Log("msg", "Cert file is not set, not readable or non-existent. Make sure you set -web.ssl-server-cert when starting your exporter with -web.secured-metrics=true: %v", err)
level.Error(logger).Log("msg", "Cert file is not set, not readable or non-existent. Make sure you set -web.ssl-server-cert when starting your exporter with -web.secured-metrics=true", "error", err.Error())
os.Exit(1)
}
_, err = os.Stat(*sslServerKey)
if err != nil {
level.Error(logger).Log("msg", "Key file is not set, not readable or non-existent. Make sure you set -web.ssl-server-key when starting your exporter with -web.secured-metrics=true: %v", err)
level.Error(logger).Log("msg", "Key file is not set, not readable or non-existent. Make sure you set -web.ssl-server-key when starting your exporter with -web.secured-metrics=true", "error", err.Error())
os.Exit(1)
}
level.Info(logger).Log("msg", "NGINX Prometheus Exporter has successfully started using https")
log.Fatal(srv.ServeTLS(listener, *sslServerCert, *sslServerKey))
if err := srv.ServeTLS(listener, *sslServerCert, *sslServerKey); err != nil {
level.Error(logger).Log("msg", "Error while serving", "error", err.Error())
os.Exit(1)
}
}

level.Info(logger).Log("msg", "NGINX Prometheus Exporter has successfully started")
if err := srv.Serve(listener); err != nil {
level.Error(logger).Log("msg", "Error while serving: %v", err)
level.Error(logger).Log("msg", "Error while serving", "error", err.Error())
os.Exit(1)
}
}
Expand Down

0 comments on commit 1db0d9c

Please sign in to comment.