Introduction¶
Why?¶
Speakeasy was created to help instrument a python webapp running with Apache and mod_wsgi. Instead of sending metrics per Apache child to central metrics collectors, the data needed to be aggregated on box and then sent out. This allows tracking QPS, latency, error rate, etc. in an aggregated view rather than per process.
Types of data¶
There are 3 types of metrics supported by speakeasy:
- COUNTER
- Values received for COUNTER metrics are aggregated and not reset at each emission interval.
- GAUGE
- Values received for GAUGE metrics are averaged and reset at each emission interval.
- PERCENTILE
- 75th, 95th, and 99th percentiles are calculated based on the values received during each emission interval and handed off to the emitter as GAUGE metrics.
Emitters¶
After each emission interval, defined by the user, speakeasy will perform the necessary aggregation over the values received during the period and call the loaded emitter object. The emitter object is responsible for sending the metrics to central collection.
A simple emitter is provided for example that will write metrics out to a configuarable file.