Skip to content
This repository has been archived by the owner on May 24, 2023. It is now read-only.

Replaces deprecated prometheus/common/log with Go's built-in log package #32

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
9 changes: 4 additions & 5 deletions collector/api_base.go
Expand Up @@ -2,9 +2,8 @@ package collector

import (
"encoding/json"
"log"
"net/http"

"github.com/prometheus/common/log"
)

// HTTPHandler type
Expand All @@ -30,19 +29,19 @@ type HTTPHandlerInterface interface {
func getMetrics(h HTTPHandlerInterface, target interface{}) error {
response, err := h.Get()
if err != nil {
log.Errorf("Cannot retrieve metrics: %v", err)
log.Printf("[ERROR] Cannot retrieve metrics: %v\n", err)
return err
}

defer func() {
if err := response.Body.Close(); err != nil {
log.Errorf("Cannot close response body: %v", err)
log.Printf("[ERROR] Cannot close response body: %v\n", err)
}
}()

err = json.NewDecoder(response.Body).Decode(target)
if err != nil {
log.Errorf("Cannot parse Logstash response json: %v", err)
log.Printf("[ERROR] Cannot parse Logstash response json: %v\n", err)
}

return err
Expand Down
2 changes: 0 additions & 2 deletions go.mod
Expand Up @@ -5,9 +5,7 @@ require (
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 // indirect
github.com/prometheus/common v0.2.0
github.com/prometheus/procfs v0.0.0-20190209105433-f8d8b3f739bd // indirect
github.com/sirupsen/logrus v1.3.0 // indirect
github.com/stretchr/testify v1.3.0
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529 // indirect
golang.org/x/sync v0.0.0-20190423024810-112230192c58 // indirect
gopkg.in/alecthomas/kingpin.v2 v2.2.6
)
Expand Down
11 changes: 0 additions & 11 deletions go.sum
Expand Up @@ -39,21 +39,15 @@ github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R
github.com/prometheus/procfs v0.0.0-20190209105433-f8d8b3f739bd h1:pi7bGw6n4tfgHQtWDxJBBLYVdFr1GlfQEsDOyCDDFMM=
github.com/prometheus/procfs v0.0.0-20190209105433-f8d8b3f739bd/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.3.0 h1:hI/7Q+DtNZ2kINb6qt/lS+IyXnHQe9e90POfeewL/ME=
github.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529 h1:iMGN4xG0cnqj3t+zOM8wUB0BiPKHEwSxEZCvzcbZuvk=
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc h1:a3CU5tJYVj92DY2LaA1kUkrsqD5/3mLDhx2NcNqyW+0=
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw=
Expand All @@ -62,11 +56,6 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEha
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d h1:+R4KGOnez64A81RvjARKc4UT5/tI9ujCIVX+P5KiHuI=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
Expand Down
19 changes: 9 additions & 10 deletions logstash_exporter.go
Expand Up @@ -2,13 +2,13 @@ package main

import (
"net/http"
"log"
_ "net/http/pprof"
"sync"
"time"

"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/prometheus/common/log"
"github.com/prometheus/common/version"
"github.com/sequra/logstash_exporter/collector"
"gopkg.in/alecthomas/kingpin.v2"
Expand All @@ -35,12 +35,12 @@ type LogstashCollector struct {
func NewLogstashCollector(logstashEndpoint string) (*LogstashCollector, error) {
nodeStatsCollector, err := collector.NewNodeStatsCollector(logstashEndpoint)
if err != nil {
log.Fatalf("Cannot register a new collector: %v", err)
log.Fatalf("Cannot register a new collector: %v\n", err)
}

nodeInfoCollector, err := collector.NewNodeInfoCollector(logstashEndpoint)
if err != nil {
log.Fatalf("Cannot register a new collector: %v", err)
log.Fatalf("Cannot register a new collector: %v\n", err)
}

return &LogstashCollector{
Expand All @@ -57,9 +57,9 @@ func listen(exporterBindAddress string) {
http.Redirect(w, r, "/metrics", http.StatusMovedPermanently)
})

log.Infoln("Starting server on", exporterBindAddress)
log.Println("Starting server on", exporterBindAddress)
if err := http.ListenAndServe(exporterBindAddress, nil); err != nil {
log.Fatalf("Cannot start Logstash exporter: %s", err)
log.Fatalf("Cannot start Logstash exporter: %s\n", err)
}
}

Expand Down Expand Up @@ -89,10 +89,10 @@ func execute(name string, c collector.Collector, ch chan<- prometheus.Metric) {
var result string

if err != nil {
log.Debugf("ERROR: %s collector failed after %fs: %s", name, duration.Seconds(), err)
log.Printf("ERROR: %s collector failed after %fs: %s\n", name, duration.Seconds(), err)
result = "error"
} else {
log.Debugf("OK: %s collector succeeded after %fs.", name, duration.Seconds())
log.Printf("OK: %s collector succeeded after %fs.\n", name, duration.Seconds())
result = "success"
}
scrapeDurations.WithLabelValues(name, result).Observe(duration.Seconds())
Expand All @@ -108,7 +108,6 @@ func main() {
exporterBindAddress = kingpin.Flag("web.listen-address", "Address on which to expose metrics and web interface.").Default(":9198").String()
)

log.AddFlags(kingpin.CommandLine)
kingpin.Version(version.Print("logstash_exporter"))
kingpin.HelpFlag.Short('h')
kingpin.Parse()
Expand All @@ -120,7 +119,7 @@ func main() {

prometheus.MustRegister(logstashCollector)

log.Infoln("Starting Logstash exporter", version.Info())
log.Infoln("Build context", version.BuildContext())
log.Println("Starting Logstash exporter", version.Info())
log.Println("Build context", version.BuildContext())
listen(*exporterBindAddress)
}