Merge pull request #17 from sdurrheimer/master

New Dockerfile using alpine-golang-make-onbuild base image
This commit is contained in:
Julius Volz 2015-07-13 12:17:32 +02:00
commit b6210fc395
3 changed files with 37 additions and 16 deletions

4
Dockerfile Normal file
View file

@ -0,0 +1,4 @@
FROM sdurrheimer/alpine-golang-make-onbuild
MAINTAINER The Prometheus Authors <prometheus-developers@googlegroups.com>
EXPOSE 9102 9125/udp

View file

@ -49,19 +49,22 @@ ifeq ($(GOOS),darwin)
endif endif
GO_VERSION ?= 1.4.2 GO_VERSION ?= 1.4.2
ifeq ($(shell type go >/dev/null && go version | sed 's/.*go\([0-9.]*\).*/\1/'), $(GO_VERSION))
GOROOT := $(shell go env GOROOT)
else
GOROOT := $(CURDIR)/.build/go$(GO_VERSION)
endif
GOURL ?= https://golang.org/dl GOURL ?= https://golang.org/dl
GOPKG ?= go$(GO_VERSION).$(GOOS)-$(GOARCH)$(RELEASE_SUFFIX).tar.gz GOPKG ?= go$(GO_VERSION).$(GOOS)-$(GOARCH)$(RELEASE_SUFFIX).tar.gz
GOPATH := $(CURDIR)/.build/gopath GOPATH := $(CURDIR)/.build/gopath
GOCC ?= $(GOROOT)/bin/go
GO ?= GOROOT=$(GOROOT) GOPATH=$(GOPATH) $(GOCC) # Check for the correct version of go in the path. If we find it, use it.
GOFMT ?= $(GOROOT)/bin/gofmt # Otherwise, prepare to build go locally.
ifeq ($(shell command -v "go" >/dev/null && go version | sed -e 's/^[^0-9.]*\([0-9.]*\).*/\1/'), $(GO_VERSION))
GOCC ?= $(shell command -v "go")
GOFMT ?= $(shell command -v "gofmt")
GO ?= GOPATH=$(GOPATH) $(GOCC)
else
GOROOT ?= $(CURDIR)/.build/go$(GO_VERSION)
GOCC ?= $(GOROOT)/bin/go
GOFMT ?= $(GOROOT)/bin/gofmt
GO ?= GOROOT=$(GOROOT) GOPATH=$(GOPATH) $(GOCC)
endif
# Never honor GOBIN, should it be set at all. # Never honor GOBIN, should it be set at all.
unexport GOBIN unexport GOBIN

View file

@ -61,9 +61,9 @@ In general, the different metric types are translated as follows, with certain
suffixes appended to the Prometheus metric names: suffixes appended to the Prometheus metric names:
StatsD gauge -> Prometheus gauge (suffix `_gauge`) StatsD gauge -> Prometheus gauge (suffix `_gauge`)
StatsD counter -> Prometheus counter (suffix `_counter`) StatsD counter -> Prometheus counter (suffix `_counter`)
StatsD timer -> Prometheus summary (suffix `_timer`) <-- indicates timer quantiles StatsD timer -> Prometheus summary (suffix `_timer`) <-- indicates timer quantiles
-> Prometheus counter (suffix `_timer_total`) <-- indicates total time spent -> Prometheus counter (suffix `_timer_total`) <-- indicates total time spent
-> Prometheus counter (suffix `_timer_count`) <-- indicates total number of timer events -> Prometheus counter (suffix `_timer_count`) <-- indicates total number of timer events
@ -76,21 +76,35 @@ An example mapping configuration:
action="$2" action="$2"
outcome="$3" outcome="$3"
job="test_dispatcher" job="test_dispatcher"
*.signup.*.* *.signup.*.*
name="signup_events" name="signup_events"
provider="$2" provider="$2"
outcome="$3" outcome="$3"
job="${1}_server" job="${1}_server"
This would transform these example StatsD metrics into Prometheus metrics as This would transform these example StatsD metrics into Prometheus metrics as
follows: follows:
test.dispatcher.FooProcessor.send.success (counter) test.dispatcher.FooProcessor.send.success (counter)
=> dispatcher_events_counter{processor="FooProcessor", action="send", outcome="success", job="test_dispatcher"} => dispatcher_events_counter{processor="FooProcessor", action="send", outcome="success", job="test_dispatcher"}
foo_product.signup.facebook.failure (counter) foo_product.signup.facebook.failure (counter)
=> signup_events_counter{provider="facebook", outcome="failure", job="foo_product_server"} => signup_events_counter{provider="facebook", outcome="failure", job="foo_product_server"}
test.web-server.foo.bar (gauge) test.web-server.foo.bar (gauge)
=> test_web__server_foo_bar_gauge{} => test_web__server_foo_bar_gauge{}
## Using Docker
You can deploy this exporter using the [prom/statsd-bridge](https://registry.hub.docker.com/u/prom/statsd-bridge/) Docker image.
For example:
```bash
docker pull prom/statsd-bridge
docker run -d -p 9102:9102 -p 9125/udp:9125/udp \
-v $PWD/statsd_mapping.conf:/tmp/statsd_mapping.conf \
prom/statsd-bridge -statsd.mapping-config=/tmp/statsd_mapping.conf
```