A set of decorators and helper methods for adding statsd metrics to applications.
Project description
# Statsdecor
[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE.txt)
[![Build Status](https://api.travis-ci.org/freshbooks/statsdecor.svg)](https://travis-ci.org/freshbooks/statsdecor)
A set of decorators and helper methods for adding statsd metrics to applications.
## Installation
You can use pip to install statsdecor:
```shell
pip install statsdecor
```
## Configuration
You can use `statsdecor.configure` to configure how statsd clients will be
created:
```python
import statsdecor
statsdecor.configure(host='localhost', prefix='superapp.')
```
Configuration is generally setup during your application's bootstrap. Once
set configuration values are re-used in all clients that `statsdecor` creates.
## Usage
You can track metrics with either the module functions, or decorators. Incrementing
and decrementing counters looks like:
### Metric functions
```python
import statsdecor
statsdecor.incr('save.succeeded')
statsdecor.decr('attempts.remaining')
statsdecor.gauge('sessions.active', 9001)
```
Counters and timers can also be set through decorators:
```python
import statsdecor.decorators as stats
@stats.increment('save.succeeded')
def save(self):
pass
@stats.decrement('attempts.remaining')
def attempt():
pass
@stats.timed('api_request.duration')
def perform_request(self, req)
pass
```
When using decorators, metrics are only tracked if the decorated function
does not raise an error.
[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE.txt)
[![Build Status](https://api.travis-ci.org/freshbooks/statsdecor.svg)](https://travis-ci.org/freshbooks/statsdecor)
A set of decorators and helper methods for adding statsd metrics to applications.
## Installation
You can use pip to install statsdecor:
```shell
pip install statsdecor
```
## Configuration
You can use `statsdecor.configure` to configure how statsd clients will be
created:
```python
import statsdecor
statsdecor.configure(host='localhost', prefix='superapp.')
```
Configuration is generally setup during your application's bootstrap. Once
set configuration values are re-used in all clients that `statsdecor` creates.
## Usage
You can track metrics with either the module functions, or decorators. Incrementing
and decrementing counters looks like:
### Metric functions
```python
import statsdecor
statsdecor.incr('save.succeeded')
statsdecor.decr('attempts.remaining')
statsdecor.gauge('sessions.active', 9001)
```
Counters and timers can also be set through decorators:
```python
import statsdecor.decorators as stats
@stats.increment('save.succeeded')
def save(self):
pass
@stats.decrement('attempts.remaining')
def attempt():
pass
@stats.timed('api_request.duration')
def perform_request(self, req)
pass
```
When using decorators, metrics are only tracked if the decorated function
does not raise an error.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
statsdecor-0.3.0.tar.gz
(2.9 kB
view hashes)
Built Distribution
Close
Hashes for statsdecor-0.3.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8eb7d442d0372fceb3c7426c120c8b1d1dd3812fc3dd99656bb712cc4719e1ba |
|
MD5 | c7109ba3402c2d36554229e067e074e7 |
|
BLAKE2b-256 | a592beb9d7ee4806c2c1c0216cc0be48bbd22a895a0d672a5b2c6fa4adfc6b0f |