From 40e9421dbb3d0b43dde9f016705b5a9a4f97cd1b Mon Sep 17 00:00:00 2001 From: Johannes Kohnen Date: Mon, 8 Jan 2018 20:15:18 +0100 Subject: [PATCH] Lock dependencies (#33) * Use prometheus/common/log The lib github.com/prometheus/log has been deprecated in favor of github.com/prometheus/common/log. * Lock external dependencies with dep tool * Dockerfile: use dep tool, reduce context, indent --- .dockerignore | 2 ++ .gitignore | 1 + Dockerfile | 30 ++++++++++------ Gopkg.lock | 87 +++++++++++++++++++++++++++++++++++++++++++++++ Gopkg.toml | 7 ++++ nginx_exporter.go | 6 ++-- 6 files changed, 119 insertions(+), 14 deletions(-) create mode 100644 .dockerignore create mode 100644 Gopkg.lock create mode 100644 Gopkg.toml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..593f4e6 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +.git +vendor diff --git a/.gitignore b/.gitignore index b02603f..7c864e8 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ nginx_exporter +vendor diff --git a/Dockerfile b/Dockerfile index 862affc..057221e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,21 @@ -FROM golang:1.9 -LABEL maintainer="@discordianfish" -WORKDIR /go/src/github.com/discordianfish/nginx_exporter -ENV GOOS=linux CGO_ENABLED=0 -COPY . . -RUN go get -d && go build +FROM golang:1.9 +LABEL maintainer="@discordianfish" +# Install dep tool +ARG DEP_VERSION=v0.3.2 +ARG DEP_SHA256=322152b8b50b26e5e3a7f6ebaeb75d9c11a747e64bbfd0d8bb1f4d89a031c2b5 +RUN wget -q https://github.com/golang/dep/releases/download/${DEP_VERSION}/dep-linux-amd64 -O /usr/local/bin/dep \ +&& echo "${DEP_SHA256} /usr/local/bin/dep" | sha256sum -c - \ +&& chmod 755 /usr/local/bin/dep -FROM quay.io/prometheus/busybox:glibc -EXPOSE 9113 -COPY --from=0 /go/src/github.com/discordianfish/nginx_exporter/nginx_exporter /bin/ -USER nobody -ENTRYPOINT [ "/bin/nginx_exporter" ] +ENV GOOS=linux CGO_ENABLED=0 +WORKDIR /go/src/github.com/discordianfish/nginx_exporter +COPY Gopkg.* *.go ./ +RUN dep ensure --vendor-only \ +&& go install + +FROM quay.io/prometheus/busybox:glibc +EXPOSE 9113 +COPY --from=0 /go/bin/nginx_exporter /usr/local/bin/ +USER nobody +ENTRYPOINT [ "/usr/local/bin/nginx_exporter" ] diff --git a/Gopkg.lock b/Gopkg.lock new file mode 100644 index 0000000..b4afe39 --- /dev/null +++ b/Gopkg.lock @@ -0,0 +1,87 @@ +# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. + + +[[projects]] + branch = "master" + name = "github.com/alecthomas/template" + packages = [".","parse"] + revision = "a0175ee3bccc567396460bf5acd36800cb10c49c" + +[[projects]] + branch = "master" + name = "github.com/alecthomas/units" + packages = ["."] + revision = "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a" + +[[projects]] + branch = "master" + name = "github.com/beorn7/perks" + packages = ["quantile"] + revision = "4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9" + +[[projects]] + branch = "master" + name = "github.com/golang/protobuf" + packages = ["proto"] + revision = "1e59b77b52bf8e4b449a57e6f79f21226d571845" + +[[projects]] + name = "github.com/matttproud/golang_protobuf_extensions" + packages = ["pbutil"] + revision = "3247c84500bff8d9fb6d579d800f20b3e091582c" + version = "v1.0.0" + +[[projects]] + name = "github.com/prometheus/client_golang" + packages = ["prometheus"] + revision = "c5b7fccd204277076155f10851dad72b76a49317" + version = "v0.8.0" + +[[projects]] + branch = "master" + name = "github.com/prometheus/client_model" + packages = ["go"] + revision = "6f3806018612930941127f2a7c6c453ba2c527d2" + +[[projects]] + branch = "master" + name = "github.com/prometheus/common" + packages = ["expfmt","internal/bitbucket.org/ww/goautoneg","log","model"] + revision = "e3fb1a1acd7605367a2b378bc2e2f893c05174b7" + +[[projects]] + branch = "master" + name = "github.com/prometheus/procfs" + packages = [".","xfs"] + revision = "a6e9df898b1336106c743392c48ee0b71f5c4efa" + +[[projects]] + name = "github.com/sirupsen/logrus" + packages = ["."] + revision = "f006c2ac4710855cf0f916dd6b77acf6b048dc6e" + version = "v1.0.3" + +[[projects]] + branch = "master" + name = "golang.org/x/crypto" + packages = ["ssh/terminal"] + revision = "9f005a07e0d31d45e6656d241bb5c0f2efd4bc94" + +[[projects]] + branch = "master" + name = "golang.org/x/sys" + packages = ["unix","windows","windows/registry","windows/svc/eventlog"] + revision = "bf42f188b9bc6f2cf5b8ee5a912ef1aedd0eba4c" + +[[projects]] + name = "gopkg.in/alecthomas/kingpin.v2" + packages = ["."] + revision = "1087e65c9441605df944fb12c33f0fe7072d18ca" + version = "v2.2.5" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-digest = "f2c8acd0e8f101da02666724a6be8f8328681e8ef64b9d68e4bbaaebd45ef094" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml new file mode 100644 index 0000000..d5e5725 --- /dev/null +++ b/Gopkg.toml @@ -0,0 +1,7 @@ +[[constraint]] + name = "github.com/prometheus/client_golang" + version = "0.8.0" + +[[constraint]] + branch = "master" + name = "github.com/prometheus/common" diff --git a/nginx_exporter.go b/nginx_exporter.go index bdf7afb..023c519 100644 --- a/nginx_exporter.go +++ b/nginx_exporter.go @@ -11,7 +11,7 @@ import ( "sync" "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/log" + "github.com/prometheus/common/log" ) const ( @@ -167,7 +167,7 @@ func (e *Exporter) Collect(ch chan<- prometheus.Metric) { e.mutex.Lock() // To protect metrics from concurrent collects. defer e.mutex.Unlock() if err := e.collect(ch); err != nil { - log.Printf("Error scraping nginx: %s", err) + log.Errorf("Error scraping nginx: %s", err) e.scrapeFailures.Inc() e.scrapeFailures.Collect(ch) } @@ -182,7 +182,7 @@ func main() { exporter := NewExporter(*nginxScrapeURI) prometheus.MustRegister(exporter) - log.Printf("Starting Server: %s", *listeningAddress) + log.Infof("Starting Server: %s", *listeningAddress) http.Handle(*metricsEndpoint, prometheus.Handler()) http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte(`