statsite/statsite logo

statsite/statsite

Free

C implementation of statsd

FreeFree tier
Type
Open Source

About statsite/statsite

Statsite is a highly performant metrics aggregation server, written in C. It is wire-compatible with Etsy's StatsD and supports multiple metric types including counters, gauges, timers, sets, and histograms. Statsite uses an event loop for fast processing and aggregates metrics using efficient algorithms like the Cormode-Muthukrishnan method for biased quantiles and HyperLogLog for cardinality estimation on large sets. It supports multiple output sinks such as Graphite, InfluxDB, Ganglia, Librato, CloudWatch, and OpenTSDB. Metrics can be received over TCP, UDP, or STDIN, and the architecture allows for flexible stream handlers via fork/exec.

Key Features

Multiple metric types (counters, gauges, timers, sets, histograms)
Efficient summary metrics: mean, min/max, standard deviation, median, percentile 95, percentile 99
Dynamic set implementation with exact counts for small sets and HyperLogLog for large sets
Included sinks: Graphite, InfluxDB, Ganglia, Librato, CloudWatch, OpenTSDB, HTTP, Binary protocol
Fast C implementation with event loop handling hundreds of connections and millions of metrics
Flexible architecture using fork/exec to stream aggregated metrics to any application

Pros & Cons

Pros
  • High performance handling large volumes of metrics
  • Wire-compatible with StatsD, easy migration
  • Supports a wide variety of metric types and output sinks
  • Efficient memory usage with biased quantiles and HyperLogLog
  • Flexible sink architecture via stream handlers
Cons
  • Percentile accuracy is subject to configurable error epsilon (not exact)
  • Set cardinality estimation for large sets uses probabilistic HyperLogLog
  • Requires compilation (C source code)
  • No built-in web UI

Best For

Monitoring and aggregating application metricsShipping metrics to various backends like Graphite or InfluxDBReal-time metrics collection for infrastructure and services

FAQ

What output sinks does statsite support?
Statsite includes support for Graphite, InfluxDB, Ganglia, Librato, CloudWatch, OpenTSDB, HTTP, and a binary protocol. Additional sinks can be implemented via custom stream handlers.
Is statsite compatible with StatsD?
Yes, statsite is wire-compatible with Etsy's StatsD, meaning it can accept metrics sent in the StatsD wire format.