GithubHelp home page GithubHelp logo

messagebird / pushprom Goto Github PK

View Code? Open in Web Editor NEW
80.0 80.0 13.0 1.77 MB

Pushprom is a proxy to the Prometheus Go client.

Home Page: https://www.messagebird.com

License: BSD 2-Clause "Simplified" License

Makefile 3.51% Go 89.81% Shell 4.71% Dockerfile 1.97%

pushprom's People

Contributors

ahmadpriatama avatar dstotijn avatar juanadelacuesta avatar kostkobv avatar marcelcorso avatar samwierema avatar sergeishilko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pushprom's Issues

what am i doing wrong?

[remek][~/.../github.com/messagebird/pushprom][master]$ make container
rm -fr bin pkg vendor/pkg
* go getting all dependencies into vendor/
find vendor/ -name .git -type d | xargs rm -rf
* Building pushprom for release
mv: cannot stat 'bin/linux_amd64/pushprom': No such file or directory
Makefile:28: recipe for target 'release_linux' failed
make: *** [release_linux] Error 1
[remek][~/.../github.com/messagebird/pushprom][master]$ pwd
/home/remek/go/src/github.com/messagebird/pushprom
[remek][~/.../github.com/messagebird/pushprom][master]$ ls bin/
pushprom 

nobody creates linux_amd64 dir and/or puts anything into it

OBSV-443 messagebird/pushprom does not respect log-level argument

The problem

Pushprom 1.0.8 is too verbose on default INFO level.

Trying to use the “documented” -log-level argument for the application does not have effect.

Update from 1.0.7 to 1.0.8 resulting in thousands unnecessary log records polluting the INFO logs.

Definition of Done

Pushprom 1.0.8 does not change behaviour when updating from 1.0.7 for logging.

or Pushprom 1.0.8 default verbosity level changes to “warn” and/or respect the -log-level documented argument.

https://github.com/messagebird/pushprom/tree/1.0.8

Stops listening on UDP port after getting invalid json

This will cause prompush to return from the listenUDP function, causing it to close serverConn:

echo "hello" | nc --udp localhost -p 9090

logs:

2016/11/09 17:20:37 udp.go:36: Error: invalid character 'h' looking for beginning of value

then a second nc prints:

Ncat: Connection refused.

prometheus.RegisterOrGet is deprecated and breaks make when client is updated to last version

Just tried to update the golang client of prometheus to 0.8.0 and got some errors. Most importantly undefined: prometheus.RegisterOrGet.

pushprom$ rm -rf  vendor/src/github.com/prometheus/client_golang/
pushprom$ make dependencies
* go getting all dependencies into vendor/
# pushprom
src/pushprom/delta.go:63: undefined: prometheus.RegisterOrGet
src/pushprom/delta.go:75: undefined: prometheus.RegisterOrGet
src/pushprom/delta.go:86: metric.Set undefined (type prometheus.Counter has no field or method Set)
src/pushprom/delta.go:107: undefined: prometheus.RegisterOrGet
src/pushprom/delta.go:119: undefined: prometheus.RegisterOrGet
src/pushprom/delta.go:155: undefined: prometheus.RegisterOrGet
src/pushprom/delta.go:167: undefined: prometheus.RegisterOrGet
src/pushprom/delta.go:194: undefined: prometheus.RegisterOrGet
src/pushprom/delta.go:206: undefined: prometheus.RegisterOrGet
Makefile:51: recipe for target 'dependencies' failed
make: *** [dependencies] Error 2

Adding labels to existing metric

It seems that adding labels / attributes to an existing metric does not use the added labels. It should actually recognise that labels were added and use them.

Listening on specific host prints bogus URL in logs

Specifying host to listen on prints:

$ pushprom -http-listen-address localhost:9091 -udp-listen-address localhost:9090
2016/11/10 17:04:43 http.go:36: exposing metrics on http://0.0.0.0:localhost:9091/metrics
2016/11/10 17:04:43 udp.go:10: listening for stats UDP on port localhost:9090
2016/11/10 17:04:43 http.go:39: listening for stats on http://0.0.0.0localhost:9091

Note the bogus http://0.0.0.0localhost:9091

Make Docker build public/automated and build in Docker

https://hub.docker.com/r/messagebird/pushprom/ is not currently a Public/Automated build (the repo is of course public). Public/Automated builds are superior since a) they are updated and published more regularly and b) they are more easily trusted, since it is instantly clear exactly how the image was built and it was built by an automated system.

I don't think it is simple to change a repo to automated - Docker Hub support might be able to do that, or it may involve deleting/recreating or even renaming the image slug.

The steps for this are:

  • Make pushprom build in-Docker
  • Modify the Docker Hub repo to make it an automated build

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.