From a3d8b34adfe6fd12f782a39bfb943c33c7008d56 Mon Sep 17 00:00:00 2001 From: Rob Best Date: Sat, 2 Dec 2017 18:55:31 +0000 Subject: [PATCH] Add a Makefile that adheres to the Prometheus conventions --- .promu.yml | 8 +++++++ Makefile | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 2 +- VERSION | 1 + 4 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 .promu.yml create mode 100644 Makefile create mode 100644 VERSION diff --git a/.promu.yml b/.promu.yml new file mode 100644 index 0000000..8f5f678 --- /dev/null +++ b/.promu.yml @@ -0,0 +1,8 @@ +repository: + path: github.com/ribbybibby/ssl_exporter +build: + flags: -a -tags netgo + +tarball: + files: + - LICENSE \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..06d7827 --- /dev/null +++ b/Makefile @@ -0,0 +1,67 @@ +# Copyright 2016 The Prometheus Authors +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +GO := GO15VENDOREXPERIMENT=1 go +PROMU := $(GOPATH)/bin/promu +pkgs = $(shell $(GO) list ./... | grep -v /vendor/) + +PREFIX ?= $(shell pwd) +BIN_DIR ?= $(shell pwd) +DOCKER_IMAGE_NAME ?= ssl-exporter +DOCKER_IMAGE_TAG ?= $(subst /,-,$(shell git rev-parse --abbrev-ref HEAD)) + + +all: format build test + +style: + @echo ">> checking code style" + @! gofmt -d $(shell find . -path ./vendor -prune -o -name '*.go' -print) | grep '^' + +test: + @echo ">> running tests" + @$(GO) test -short $(pkgs) + +format: + @echo ">> formatting code" + @$(GO) fmt $(pkgs) + +vet: + @echo ">> vetting code" + @$(GO) vet $(pkgs) + +build: promu + @echo ">> building binaries" + @$(PROMU) build --prefix $(PREFIX) + +crossbuild: promu + @echo ">> cross-building binaries" + @$(PROMU) crossbuild + +tarball: promu + @echo ">> building release tarball" + @$(PROMU) tarball --prefix $(PREFIX) $(BIN_DIR) + +tarballs: promu + @echo ">> building release tarballs" + @$(PROMU) tarballs --prefix $(PREFIX) $(BIN_DIR) + +docker: + @echo ">> building docker image" + @docker build -t "$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)" . + +promu: + @GOOS=$(shell uname -s | tr A-Z a-z) \ + GOARCH=$(subst x86_64,amd64,$(patsubst i%86,386,$(shell uname -m))) \ + $(GO) get -u github.com/prometheus/promu + +.PHONY: all style format build test vet tarball docker promu \ No newline at end of file diff --git a/README.md b/README.md index c8876f2..c7d059c 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ For instance, there's a definite value in knowing, upon first receiving an alert Whatever it is, the SSL exporter gives you visibility over those dimensions at the point at which you receive an alert. It also allows you to produce more meaningful visualisations and consoles. ## Building - go build + make ./ssl_exporter Similarly to the blackbox_exporter, visiting [http://localhost:9219/probe?target=https://example.com](http://localhost:9219/probe?target=https://example.com) will return certificate metrics for example.com. The ```ssl_https_connect_success``` metric indicates if the probe has been successful. diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..6c6aa7c --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +0.1.0 \ No newline at end of file