Package: navdoon
Powerful Statsd server, made easy.Navdoon is a portable Statsd server with useful features to make it easy to
use, extend and integrate.FeaturesPortable with few dependencies, easy to install on most platformsSupport TCP, UDPReceive metrics from multiple addressesFlush to multiple Graphite backendsFlush to files (in Graphite and CSV format)Easy to integrate with custom programsAbility to reload the server without losing the metricsDetailsNavdoon uses collectors to receive Statsd metrics and recieves metrics over
UDP (–collect-udp) and TCP (–collect-tcp),
and accepts multiple collectors.The server saves/sends (flushes) the accumulated metrics every often
(–flus-interval) to a persistent storage.Carbon(fromGraphiteproject)
is a very common backend for Statsd servers. Navdoon accepts multiple Graphite addresses (–flush-graphite)
so it can flush to multiple backends (all share the same interval).
Metrics can be flushed to standard output (–flush-stdout) to pipe to another
program, so it’s easy to integrate with any custom backend.Logging can be helpful or can be wasteful, depending on the deployment and the usage of the application.
Navdoon provides detailed configuration on logging, so you can chose what will be logged (–log-level)
and how to log, send logs to syslog (–log-syslog), to a file (–log-file) or standard error
(–log-stderr) to be piped to another program.While not claiming to be the fastest, good performance is considered in the design.
Navdoon uses threads for each collector and flush backend.
Future versions will offer improved performance as it was not a priority
for the first releases.Server supports reloading (on receiving SIGHUP), keeping current state of the metrics and last flush time.
So it’s possible to change collectors, flush destinations, logging, etc. on the configuration file while
the server is running, and then on sending a SIGHUP the server picks the new configuration.ReleasesLatest released version is0.3.0(released on 2017-02-11)Version0.2.0was released on 2016-10-10See the CHANGELOG for more information about features provided by each release.InstallNavdoon is distributed as a Docker image, and a Python package.PyPiNavdoon can be installed frompypiusingpip.pipinstallnavdoonSourceYou can install from the source by running thesetup.pyscript provided.pythonsetup.pyinstallNoteIf you’re installing Navdoon to a system path, you might need to
run the installation withsudoor under a privileged user.RequirementsNavdoon is written in Python, so running from source or installing it as a package,
requires a Python runtime (version 2.7+, latest versions of Python 3 is recommended).ThestatsdmetricsPython module
is the only dependency to run Navdoon.
However these Python modules are recommended on development/test environment:distutilazy(>=0.4.2): helpful commands added tosetup.pyto run tests and clean temp filestyping(>=3.5.0): standard type annotations for Pythoncoverage: create test coverage reportsDockerDifferent Docker image tags are available, providing different runtimes.The default tag is based on CPython alpine images
(trying to use latest versions of Python, currently 3.6)
so the image size should be minimum.dockerpullfarzadghanei/navdoon# or a specific version like farzadghanei/navdoon:0.3.0Another tag is available to run Navdoon onPyPy(currently version 2).dockerpullfarzadghanei/navdoon:0.3.0-pypy2Running from sourceBefore running from source, a few dependencies should be installed. Using a virtual
environment is suggested. (In this example we create a virtual environment
in the project source path, but you may chose a custom path like
~/.venvs/navdoon-py3)gitclonehttps://github.com/farzadghanei/navdoon.git&&cdnavdoonpython3-mvenv.navdoon-venv-py3&&source./.navdoon-venv-py3/bin/activatepipinstall-rrequirements.txt&&python3bin/navdoon_srcNotePython 3.3+ standard library comes withvenvmodule.
For older versions you can usevirtualenv.Or you may skip installing and sourcing the virtual environment and install the (few)
dependencies on your system.LicenseNavdoon is released under the terms of theApache 2.0 license.