All Projects → markstory → rust-statsd-server

markstory / rust-statsd-server

Licence: MIT License
A statsd server implemented in Rustlang

Programming Languages

rust
11053 projects
python
139335 projects - #7 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to rust-statsd-server

Tessera
A dashboard front-end for graphite.
Stars: ✭ 1,202 (+7412.5%)
Mutual labels:  metrics, graphite
Carbon
Carbon is one of the components of Graphite, and is responsible for receiving metrics over the network and writing them down to disk using a storage backend.
Stars: ✭ 1,435 (+8868.75%)
Mutual labels:  metrics, graphite
Influxgraph
Graphite InfluxDB backend. InfluxDB storage finder / plugin for Graphite API.
Stars: ✭ 87 (+443.75%)
Mutual labels:  metrics, graphite
Whisper
Whisper is a file-based time-series database format for Graphite.
Stars: ✭ 1,121 (+6906.25%)
Mutual labels:  metrics, graphite
Icingaweb2 Module Grafana
Grafana module for Icinga Web 2 (supports InfluxDB & Graphite)
Stars: ✭ 190 (+1087.5%)
Mutual labels:  metrics, graphite
Graylog Plugin Metrics Reporter
Graylog Metrics Reporter Plugins
Stars: ✭ 71 (+343.75%)
Mutual labels:  metrics, graphite
Polymur
A fast carbon-relay with live routing controls + https Graphite forwarder
Stars: ✭ 97 (+506.25%)
Mutual labels:  metrics, graphite
Logmonitor
Monitoring log files on windows systems.
Stars: ✭ 23 (+43.75%)
Mutual labels:  metrics, graphite
Anode
Utility for analyzing graphite metrics. Experimental package.
Stars: ✭ 188 (+1075%)
Mutual labels:  metrics, graphite
Appmetrics
App Metrics is an open-source and cross-platform .NET library used to record and report metrics within an application.
Stars: ✭ 1,986 (+12312.5%)
Mutual labels:  metrics, graphite
Graphyte
Python 3 compatible library to send data to a Graphite metrics server (Carbon)
Stars: ✭ 59 (+268.75%)
Mutual labels:  metrics, graphite
Graphite exporter
Server that accepts metrics via the Graphite protocol and exports them as Prometheus metrics
Stars: ✭ 217 (+1256.25%)
Mutual labels:  metrics, graphite
Vsphere2metrics
VMware vSphere Performance Metrics Integration with Graphite & InfluxDB
Stars: ✭ 28 (+75%)
Mutual labels:  metrics, graphite
Jmx2graphite
JMX to Graphite every x seconds in one command line (Docker based) (also come in Java Agent flavour)
Stars: ✭ 75 (+368.75%)
Mutual labels:  metrics, graphite
Pirate
Realtime metrics server written in Go
Stars: ✭ 11 (-31.25%)
Mutual labels:  metrics, graphite
Es Stats
ElasticSearch cluster metrics -> Graphite
Stars: ✭ 91 (+468.75%)
Mutual labels:  metrics, graphite
Graylog Plugin Metrics
Graylog output plugin for Graphite and Ganglia
Stars: ✭ 16 (+0%)
Mutual labels:  metrics, graphite
Docker Go Graphite
Docker image for go-carbon + carbonapi + grafana
Stars: ✭ 23 (+43.75%)
Mutual labels:  metrics, graphite
Icinga2
Icinga is a monitoring system which checks the availability of your network resources, notifies users of outages, and generates performance data for reporting.
Stars: ✭ 1,670 (+10337.5%)
Mutual labels:  metrics, graphite
Kenshin
Kenshin: A time-series database alternative to Graphite Whisper with 40x improvement in IOPS
Stars: ✭ 203 (+1168.75%)
Mutual labels:  metrics, graphite

Rust Statsd Server

Build Status

This is a statsd server implementation written in rust. It aims to be as compatible as possible with etsy/statsd.

Building the application

  1. Clone the repository.
  2. Run make install.
  3. The generated binary will be in dist/statsd.

Running tests

After cloning the repository you can run either the unit tests, and or the integration tests. The integration tests require python 2.7 and that port 8125 be free on your system.

make test

Will run both the unit and integration tests.

Usage

The statsd server has several options to control which ports it runs on:

-p, --port=<p>        The UDP port to bind to [default: 8125].
--admin-host=<p>      The host to bind the management server on. [default: 127.0.0.1]
--admin-port=<p>      The port to bind the management server to. [default: 8126]

Changing how frequently metrics are output

--flush-interval=<p>  How frequently to flush metrics to the backends in seconds. [default: 10].

On each flush interval event, derived metrics for timers are calculated. This duration is tracked as statsd.processing_time. You can use this metric to track how long statsd is spending generating derived metrics.

Enabling the console or graphite backends

By default no backends are enabled. In this mode the statsd server doesn't do that much. To enable one or both backends use the CLI flags:

--console             Enable the console backend.
--graphite            Enable the graphite backend.

The graphite backend has additional options for defining where graphite/carbon runs:

--graphite-port=<p>   The port graphite/carbon is running on. [default: 2003].
--graphite-host=<p>   The host graphite/carbon is running on. [default: 127.0.0.1]

Internal metrics

This server tracks a few internal metrics:

  • statsd.bad_messages The number of invalid metrics that have been sent since the last flush.
  • statsd.total_messages The number of messages received including invalid messages.
  • statsd.processing_time How many ms were spent calculating derived metrics in the current flush cycle.

Prior Art

I took a bunch of inspiration in how to implement and structure this implementation from erik/rust-statsd.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].