From 2a106be2b8c23e60439e1181cf663c10d23fcee9 Mon Sep 17 00:00:00 2001 From: Daniel Nelson Date: Thu, 3 Aug 2017 11:54:05 -0700 Subject: [PATCH] Cleanup Makefile (#3089) --- Godeps | 16 +++++- Godeps_windows | 11 ---- Makefile | 90 ++++++++++++++------------------- README.md | 22 ++++---- appveyor.yml | 2 +- docs/LICENSE_OF_DEPENDENCIES.md | 15 +++++- scripts/circle-test.sh | 11 ++-- 7 files changed, 82 insertions(+), 85 deletions(-) delete mode 100644 Godeps_windows diff --git a/Godeps b/Godeps index 45da5486d..0fb97bc8a 100644 --- a/Godeps +++ b/Godeps @@ -1,6 +1,4 @@ collectd.org 2ce144541b8903101fb8f1483cc0497a68798122 -github.com/Shopify/sarama c01858abb625b73a3af51d0798e4ad42c8147093 -github.com/Sirupsen/logrus 61e43dc76f7ee59a82bdf3d71033dc12bea4c77d github.com/aerospike/aerospike-client-go 95e1ad7791bdbca44707fedbb29be42024900d9c github.com/amir/raidman c74861fe6a7bb8ede0a010ce4485bdbb4fc4c985 github.com/apache/thrift 4aaa92ece8503a6da9bc6701604f69acf2b99d07 @@ -21,21 +19,26 @@ github.com/eclipse/paho.mqtt.golang d4f545eb108a2d19f9b1a735689dbfb719bc21fb github.com/go-logfmt/logfmt 390ab7935ee28ec6b286364bba9b4dd6410cb3d5 github.com/go-sql-driver/mysql 2e00b5cd70399450106cec6431c2e2ce3cae5034 github.com/gobwas/glob bea32b9cd2d6f55753d94a28e959b13f0244797a +github.com/go-ini/ini 9144852efba7c4daf409943ee90767da62d55438 github.com/gogo/protobuf 7b6c6391c4ff245962047fc1e2c6e08b1cdfa0e8 github.com/golang/protobuf 8ee79997227bf9b34611aee7946ae64735e6fd93 github.com/golang/snappy 7db9049039a047d955fe8c19b83c8ff5abd765c7 +github.com/go-ole/go-ole be49f7c07711fcb603cff39e1de7c67926dc0ba7 github.com/google/go-cmp f94e52cad91c65a63acc1e75d4be223ea22e99bc github.com/gorilla/mux 392c28fe23e1c45ddba891b0320b3b5df220beea +github.com/go-sql-driver/mysql 2e00b5cd70399450106cec6431c2e2ce3cae5034 github.com/hailocab/go-hostpool e80d13ce29ede4452c43dea11e79b9bc8a15b478 github.com/hashicorp/consul 63d2fc68239b996096a1c55a0d4b400ea4c2583f github.com/influxdata/tail a395bf99fe07c233f41fba0735fa2b13b58588ea github.com/influxdata/toml 5d1d907f22ead1cd47adde17ceec5bda9cacaf8f github.com/influxdata/wlog 7c63b0a71ef8300adc255344d275e10e5c3a71ec github.com/jackc/pgx b84338d7d62598f75859b2b146d830b22f1b9ec8 +github.com/jmespath/go-jmespath bd40a432e4c76585ef6b72d3fd96fb9b6dc7b68d github.com/kardianos/osext c2c54e542fb797ad986b31721e1baedf214ca413 github.com/kardianos/service 6d3a0ee7d3425d9d835debc51a0ca1ffa28f4893 github.com/kballard/go-shellquote d8ec1a69a250a17bb0e419c386eac1f3711dc142 github.com/matttproud/golang_protobuf_extensions c12348ce28de40eed0136aa2b644d0ee0650e56c +github.com/Microsoft/go-winio ce2922f643c8fd76b46cadc7f404a06282678b34 github.com/miekg/dns 99f84ae56e75126dd77e5de4fae2ea034a468ca1 github.com/naoina/go-stringutil 6b638e95a32d0c1131db0e7fe83775cbea4a0d0b github.com/nats-io/go-nats ea9585611a4ab58a205b9b125ebd74c389a6b898 @@ -49,6 +52,7 @@ github.com/openzipkin/zipkin-go-opentracing 1cafbdfde94fbf2b373534764e0863aa3bd0 github.com/pierrec/lz4 5c9560bfa9ace2bf86080bf40d46b34ae44604df github.com/pierrec/xxHash 5a004441f897722c627870a981d02b29924215fa github.com/pkg/errors 645ef00459ed84a119197bfb8d8205042c6df63d +github.com/pmezard/go-difflib/difflib 792786c7400a136282c1664665ae0a8db921c6c2 github.com/prometheus/client_golang c317fb74746eac4fc65fe3909195f4cf67c5562a github.com/prometheus/client_model fa8ad6fec33561be4280a8f0514318c79d7f6cb6 github.com/prometheus/common dd2f054febf4a6c00f2343686efb775948a8bff4 @@ -57,8 +61,13 @@ github.com/rcrowley/go-metrics 1f30fe9094a513ce4c700b9a54458bbb0c96996c github.com/samuel/go-zookeeper 1d7be4effb13d2d908342d349d71a284a7542693 github.com/satori/go.uuid 5bf94b69c6b68ee1b541973bb8e1144db23a194b github.com/shirou/gopsutil 9a4a9167ad3b4355dbf1c2c7a0f5f0d3fb1e9ab9 +github.com/shirou/w32 3c9377fc6748f222729a8270fe2775d149a249ad +github.com/Shopify/sarama c01858abb625b73a3af51d0798e4ad42c8147093 +github.com/Sirupsen/logrus 61e43dc76f7ee59a82bdf3d71033dc12bea4c77d github.com/soniah/gosnmp 5ad50dc75ab389f8a1c9f8a67d3a1cd85f67ed15 +github.com/StackExchange/wmi f3e2bae1e0cb5aef83e319133eabfee30013a4a5 github.com/streadway/amqp 63795daa9a446c920826655f26ba31c81c860fd6 +github.com/stretchr/objx 1a9d0bb9f541897e62256577b352fdbc1fb4fd94 github.com/stretchr/testify 4d4bfba8f1d1027c4fdbe371823030df51419987 github.com/vjeantet/grok d73e972b60935c7fec0b4ffbc904ed39ecaf7efe github.com/wvanbergen/kafka bc265fedb9ff5b5c5d3c0fdcef4a819b3523d3ee @@ -67,11 +76,14 @@ github.com/yuin/gopher-lua 66c871e454fcf10251c61bf8eff02d0978cae75a github.com/zensqlmonitor/go-mssqldb ffe5510c6fa5e15e6d983210ab501c815b56b363 golang.org/x/crypto dc137beb6cce2043eb6b5f223ab8bf51c32459f4 golang.org/x/net f2499483f923065a842d38eb4c7f1927e6fc6e6d +golang.org/x/sys a646d33e2ee3172a661fc09bca23bb4889a41bc8 golang.org/x/text 506f9d5c962f284575e88337e7d9296d27e729d3 gopkg.in/asn1-ber.v1 4e86f4367175e39f69d9358a5f17b4dda270378d gopkg.in/fatih/pool.v2 6e328e67893eb46323ad06f0e92cb9536babbabc +gopkg.in/fsnotify.v1 a8a77c9133d2d6fd8334f3260d06f60e8d80a5fb gopkg.in/gorethink/gorethink.v3 7ab832f7b65573104a555d84a27992ae9ea1f659 gopkg.in/ldap.v2 8168ee085ee43257585e50c6441aadf54ecb2c9f gopkg.in/mgo.v2 3f83fa5005286a7fe593b055f0d7771a7dce4655 gopkg.in/olivere/elastic.v5 3113f9b9ad37509fe5f8a0e5e91c96fdc4435e26 +gopkg.in/tomb.v1 dd632973f1e7218eb1089048e0798ec9ae7dceb8 gopkg.in/yaml.v2 4c78c975fe7c825c6d1466c42be594d1d6f3aba6 diff --git a/Godeps_windows b/Godeps_windows deleted file mode 100644 index 129fce1a2..000000000 --- a/Godeps_windows +++ /dev/null @@ -1,11 +0,0 @@ -github.com/Microsoft/go-winio ce2922f643c8fd76b46cadc7f404a06282678b34 -github.com/StackExchange/wmi f3e2bae1e0cb5aef83e319133eabfee30013a4a5 -github.com/go-ole/go-ole be49f7c07711fcb603cff39e1de7c67926dc0ba7 -github.com/shirou/w32 3c9377fc6748f222729a8270fe2775d149a249ad -golang.org/x/sys a646d33e2ee3172a661fc09bca23bb4889a41bc8 -github.com/go-ini/ini 9144852efba7c4daf409943ee90767da62d55438 -github.com/jmespath/go-jmespath bd40a432e4c76585ef6b72d3fd96fb9b6dc7b68d -github.com/pmezard/go-difflib/difflib 792786c7400a136282c1664665ae0a8db921c6c2 -github.com/stretchr/objx 1a9d0bb9f541897e62256577b352fdbc1fb4fd94 -gopkg.in/fsnotify.v1 a8a77c9133d2d6fd8334f3260d06f60e8d80a5fb -gopkg.in/tomb.v1 dd632973f1e7218eb1089048e0798ec9ae7dceb8 diff --git a/Makefile b/Makefile index 092715237..6e9a2b28b 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,4 @@ +PREFIX := /usr/local VERSION := $(shell git describe --exact-match --tags 2>/dev/null) BRANCH := $(shell git rev-parse --abbrev-ref HEAD) COMMIT := $(shell git rev-parse --short HEAD) @@ -7,48 +8,51 @@ else PATH := $(subst :,/bin:,$(GOPATH))/bin:$(PATH) endif +TELEGRAF := telegraf$(shell go tool dist env | grep -q 'GOOS=.windows.' && echo .exe) + LDFLAGS := -X main.commit=$(COMMIT) -X main.branch=$(BRANCH) ifdef VERSION LDFLAGS += -X main.version=$(VERSION) endif -# Standard Telegraf build -default: prepare build +all: | deps telegraf -# Windows build -windows: prepare-windows build-windows +deps: + go get github.com/sparrc/gdm + gdm restore -# Only run the build (no dependency grabbing) -build: - go install -ldflags "$(LDFLAGS)" ./... +telegraf: + go build -o $(TELEGRAF) -ldflags "$(LDFLAGS)" ./cmd/telegraf/telegraf.go -build-windows: - GOOS=windows GOARCH=amd64 go build -o telegraf.exe \ - -ldflags "$(LDFLAGS)" \ - ./cmd/telegraf/telegraf.go +go-install: + go install -ldflags "$(LDFLAGS)" ./cmd/telegraf -build-for-docker: - CGO_ENABLED=0 GOOS=linux go build -installsuffix cgo -o telegraf \ - -ldflags "$(LDFLAGS)" \ - ./cmd/telegraf/telegraf.go +install: telegraf + mkdir -p $(DESTDIR)$(PREFIX)/bin/ + cp $(TELEGRAF) $(DESTDIR)$(PREFIX)/bin/ + +test: + go test -short ./... + +test-windows: + go test ./plugins/inputs/ping/... + go test ./plugins/inputs/win_perf_counters/... + +lint: + go vet ./... + +test-all: lint + go test ./... -# run package script package: ./scripts/build.py --package --version="$(VERSION)" --platform=linux --arch=all --upload -# Get dependencies and use gdm to checkout changesets -prepare: - go get github.com/sparrc/gdm - gdm restore +clean: + -rm -f telegraf + -rm -f telegraf.exe -# Use the windows godeps file to prepare dependencies -prepare-windows: - go get github.com/sparrc/gdm - gdm restore - gdm restore -f Godeps_windows - -# Run all docker containers necessary for unit tests +# Run all docker containers necessary for integration tests docker-run: docker run --name aerospike -p "3000:3000" -d aerospike/aerospike-server:3.9.0 docker run --name zookeeper -p "2181:2181" -d wurstmeister/zookeeper @@ -76,7 +80,8 @@ docker-run: -p "389:389" -p "636:636" \ -d cobaugh/openldap-alpine -# Run docker containers necessary for CircleCI unit tests +# Run docker containers necessary for integration tests; skipping services provided +# by CircleCI docker-run-circle: docker run --name aerospike -p "3000:3000" -d aerospike/aerospike-server:3.9.0 docker run --name zookeeper -p "2181:2181" -d wurstmeister/zookeeper @@ -99,28 +104,11 @@ docker-run-circle: -p "389:389" -p "636:636" \ -d cobaugh/openldap-alpine -# Kill all docker containers, ignore errors docker-kill: - -docker kill nsq aerospike redis rabbitmq postgres memcached mysql zookeeper kafka mqtt riemann nats elasticsearch openldap - -docker rm nsq aerospike redis rabbitmq postgres memcached mysql zookeeper kafka mqtt riemann nats elasticsearch openldap + -docker kill aerospike elasticsearch kafka memcached mqtt mysql nats nsq \ + openldap postgres rabbitmq redis riemann zookeeper + -docker rm aerospike elasticsearch kafka memcached mqtt mysql nats nsq \ + openldap postgres rabbitmq redis riemann zookeeper -# Run full unit tests using docker containers (includes setup and teardown) -test: vet docker-kill docker-run - # Sleeping for kafka leadership election, TSDB setup, etc. - sleep 60 - # SUCCESS, running tests - go test -race ./... - -# Run "short" unit tests -test-short: vet - go test -short ./... - -# Run windows specific tests -test-windows: vet - go test ./plugins/inputs/ping/... - go test ./plugins/inputs/win_perf_counters/... - -vet: - go vet ./... - -.PHONY: test test-short vet build default +.PHONY: deps telegraf telegraf.exe install test test-windows lint test-all \ + package clean docker-run docker-run-circle docker-kill diff --git a/README.md b/README.md index eb4473e77..9e72a8f52 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ which is installed by the Makefile if you don't have it already. 1. [Install Go](https://golang.org/doc/install) 2. [Setup your GOPATH](https://golang.org/doc/code.html#GOPATH) -3. Run `go get github.com/influxdata/telegraf` +3. Run `go get -d github.com/influxdata/telegraf` 4. Run `cd $GOPATH/src/github.com/influxdata/telegraf` 5. Run `make` @@ -57,37 +57,37 @@ which is installed by the Makefile if you don't have it already. See usage with: ``` -telegraf --help +./telegraf --help ``` #### Generate a telegraf config file: ``` -telegraf config > telegraf.conf +./telegraf config > telegraf.conf ``` -#### Generate config with only cpu input & influxdb output plugins defined +#### Generate config with only cpu input & influxdb output plugins defined: ``` -telegraf --input-filter cpu --output-filter influxdb config +./telegraf --input-filter cpu --output-filter influxdb config ``` -#### Run a single telegraf collection, outputing metrics to stdout +#### Run a single telegraf collection, outputing metrics to stdout: ``` -telegraf --config telegraf.conf --test +./telegraf --config telegraf.conf --test ``` -#### Run telegraf with all plugins defined in config file +#### Run telegraf with all plugins defined in config file: ``` -telegraf --config telegraf.conf +./telegraf --config telegraf.conf ``` -#### Run telegraf, enabling the cpu & memory input, and influxdb output plugins +#### Run telegraf, enabling the cpu & memory input, and influxdb output plugins: ``` -telegraf --config telegraf.conf -input-filter cpu:mem --output-filter influxdb +./telegraf --config telegraf.conf --input-filter cpu:mem --output-filter influxdb ``` diff --git a/appveyor.yml b/appveyor.yml index 736c0dc7b..430b3563f 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -23,7 +23,7 @@ install: - go env build_script: - - cmd: C:\GnuWin32\bin\make windows + - cmd: C:\GnuWin32\bin\make test_script: - cmd: C:\GnuWin32\bin\make test-windows diff --git a/docs/LICENSE_OF_DEPENDENCIES.md b/docs/LICENSE_OF_DEPENDENCIES.md index 44fce6cda..3774d34ce 100644 --- a/docs/LICENSE_OF_DEPENDENCIES.md +++ b/docs/LICENSE_OF_DEPENDENCIES.md @@ -1,7 +1,7 @@ # Licenses of dependencies -When distributed in a binary form, Telegraf contains portions of the following -works: +When distributed in a binary form, Telegraf may contain portions of the +following works: - collectd.org [MIT](https://github.com/collectd/go-collectd/blob/master/LICENSE) - github.com/aerospike/aerospike-client-go [APACHE](https://github.com/aerospike/aerospike-client-go/blob/master/LICENSE) @@ -32,6 +32,8 @@ works: - github.com/golang/snappy [BSD](https://github.com/golang/snappy/blob/master/LICENSE) - github.com/go-logfmt/logfmt [MIT](https://github.com/go-logfmt/logfmt/blob/master/LICENSE) - github.com/gorilla/mux [BSD](https://github.com/gorilla/mux/blob/master/LICENSE) +- github.com/go-ini/ini [APACHE](https://github.com/go-ini/ini/blob/master/LICENSE) +- github.com/go-ole/go-ole [MPL](http://mattn.mit-license.org/2013) - github.com/go-sql-driver/mysql [MPL](https://github.com/go-sql-driver/mysql/blob/master/LICENSE) - github.com/hailocab/go-hostpool [MIT](https://github.com/hailocab/go-hostpool/blob/master/LICENSE) - github.com/hashicorp/consul [MPL](https://github.com/hashicorp/consul/blob/master/LICENSE) @@ -42,11 +44,13 @@ works: - github.com/influxdata/toml [MIT](https://github.com/influxdata/toml/blob/master/LICENSE) - github.com/influxdata/wlog [MIT](https://github.com/influxdata/wlog/blob/master/LICENSE) - github.com/jackc/pgx [MIT](https://github.com/jackc/pgx/blob/master/LICENSE) +- github.com/jmespath/go-jmespath [APACHE](https://github.com/jmespath/go-jmespath/blob/master/LICENSE) - github.com/kardianos/osext [BSD](https://github.com/kardianos/osext/blob/master/LICENSE) - github.com/kardianos/service [ZLIB](https://github.com/kardianos/service/blob/master/LICENSE) (License not named but matches word for word with ZLib) - github.com/kballard/go-shellquote [MIT](https://github.com/kballard/go-shellquote/blob/master/LICENSE) - github.com/lib/pq [MIT](https://github.com/lib/pq/blob/master/LICENSE.md) - github.com/matttproud/golang_protobuf_extensions [APACHE](https://github.com/matttproud/golang_protobuf_extensions/blob/master/LICENSE) +- github.com/Microsoft/go-winio [MIT](https://github.com/Microsoft/go-winio/blob/master/LICENSE) - github.com/miekg/dns [BSD](https://github.com/miekg/dns/blob/master/LICENSE) - github.com/naoina/go-stringutil [MIT](https://github.com/naoina/go-stringutil/blob/master/LICENSE) - github.com/naoina/toml [MIT](https://github.com/naoina/toml/blob/master/LICENSE) @@ -60,6 +64,7 @@ works: - github.com/pierrec/lz4 [BSD](https://github.com/pierrec/lz4/blob/master/LICENSE) - github.com/pierrec/xxHash [BSD](https://github.com/pierrec/xxHash/blob/master/LICENSE) - github.com/pkg/errors [BSD](https://github.com/pkg/errors/blob/master/LICENSE) +- github.com/pmezard/go-difflib [BSD](https://github.com/pmezard/go-difflib/blob/master/LICENSE) - github.com/prometheus/client_golang [APACHE](https://github.com/prometheus/client_golang/blob/master/LICENSE) - github.com/prometheus/client_model [APACHE](https://github.com/prometheus/client_model/blob/master/LICENSE) - github.com/prometheus/common [APACHE](https://github.com/prometheus/common/blob/master/LICENSE) @@ -68,8 +73,11 @@ works: - github.com/samuel/go-zookeeper [BSD](https://github.com/samuel/go-zookeeper/blob/master/LICENSE) - github.com/satori/go.uuid [MIT](https://github.com/satori/go.uuid/blob/master/LICENSE) - github.com/shirou/gopsutil [BSD](https://github.com/shirou/gopsutil/blob/master/LICENSE) +- github.com/shirou/w32 [BSD](https://github.com/shirou/w32/blob/master/LICENSE) - github.com/Shopify/sarama [MIT](https://github.com/Shopify/sarama/blob/master/MIT-LICENSE) - github.com/Sirupsen/logrus [MIT](https://github.com/Sirupsen/logrus/blob/master/LICENSE) +- github.com/StackExchange/wmi [MIT](https://github.com/StackExchange/wmi/blob/master/LICENSE) +- github.com/stretchr/objx [MIT](https://github.com/stretchr/objx/blob/master/LICENSE.md) - github.com/soniah/gosnmp [BSD](https://github.com/soniah/gosnmp/blob/master/LICENSE) - github.com/streadway/amqp [BSD](https://github.com/streadway/amqp/blob/master/LICENSE) - github.com/stretchr/objx [MIT](https://github.com/stretchr/objx/blob/master/LICENSE.md) @@ -82,10 +90,13 @@ works: - golang.org/x/crypto [BSD](https://github.com/golang/crypto/blob/master/LICENSE) - golang.org/x/net [BSD](https://go.googlesource.com/net/+/master/LICENSE) - golang.org/x/text [BSD](https://go.googlesource.com/text/+/master/LICENSE) +- golang.org/x/sys [BSD](https://go.googlesource.com/sys/+/master/LICENSE) - gopkg.in/asn1-ber.v1 [MIT](https://github.com/go-asn1-ber/asn1-ber/blob/v1.2/LICENSE) - gopkg.in/dancannon/gorethink.v1 [APACHE](https://github.com/dancannon/gorethink/blob/v1.1.2/LICENSE) - gopkg.in/fatih/pool.v2 [MIT](https://github.com/fatih/pool/blob/v2.0.0/LICENSE) +- gopkg.in/fsnotify.v1 [BSD](https://github.com/fsnotify/fsnotify/blob/v1.4.2/LICENSE) - gopkg.in/ldap.v2 [MIT](https://github.com/go-ldap/ldap/blob/v2.5.0/LICENSE) - gopkg.in/mgo.v2 [BSD](https://github.com/go-mgo/mgo/blob/v2/LICENSE) - gopkg.in/olivere/elastic.v5 [MIT](https://github.com/olivere/elastic/blob/v5.0.38/LICENSE) +- gopkg.in/tomb.v1 [BSD](https://github.com/go-tomb/tomb/blob/v1/LICENSE) - gopkg.in/yaml.v2 [APACHE](https://github.com/go-yaml/yaml/blob/v2/LICENSE) diff --git a/scripts/circle-test.sh b/scripts/circle-test.sh index 662aa6c28..459a03ecf 100755 --- a/scripts/circle-test.sh +++ b/scripts/circle-test.sh @@ -62,17 +62,14 @@ exit_if_fail go test -race ./... # Simple Integration Tests # check that version was properly set -exit_if_fail "telegraf -version | grep $VERSION" +exit_if_fail "./telegraf -version | grep $VERSION" # check that one test cpu & mem output work tmpdir=$(mktemp -d) -telegraf -sample-config > $tmpdir/config.toml -exit_if_fail telegraf -config $tmpdir/config.toml \ +./telegraf -sample-config > $tmpdir/config.toml +exit_if_fail ./telegraf -config $tmpdir/config.toml \ -test -input-filter cpu:mem -cat $GOPATH/bin/telegraf | gzip > $CIRCLE_ARTIFACTS/telegraf.gz -go build -o telegraf-race -race -ldflags "-X main.version=${VERSION}-RACE" cmd/telegraf/telegraf.go -cat telegraf-race | gzip > $CIRCLE_ARTIFACTS/telegraf-race.gz - +gzip telegraf -c "$CIRCLE_ARTIFACTS/telegraf.gz" if git describe --exact-match HEAD; then # install fpm (packaging dependency)