Python Statsd library for sending statsd messages via the Monasca Agent
Go to file
Doug Hellmann c97ccb2f99 fix tox python3 overrides
We want to default to running all tox environments under python 3, so
set the basepython value in each environment.

We do not want to specify a minor version number, because we do not
want to have to update the file every time we upgrade python.

We do not want to set the override once in testenv, because that
breaks the more specific versions used in default environments like
py35 and py36.

Change-Id: Ie12f0b23e32b64b57fec5f2926fa3504b16ad2df
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-09-26 18:56:53 -04:00
doc/source Fix html_last_updated_fmt for Python3 2017-06-06 10:27:41 +07:00
monascastatsd Clean up client.py 2017-01-12 21:57:06 +00:00
tests Extend tox for monasca-statsd 2017-01-16 10:06:02 +00:00
.coveragerc Extend tox for monasca-statsd 2017-01-16 10:06:02 +00:00
.gitignore Switch to using stestr 2018-06-19 14:39:28 -04:00
.gitreview Update .gitreview for new namespace 2015-10-17 22:31:04 +00:00
.stestr.conf Switch to using stestr 2018-06-19 14:39:28 -04:00
.testr.conf Extend tox for monasca-statsd 2017-01-16 10:06:02 +00:00
.zuul.yaml Use templates for cover and lower-constraints 2018-09-08 16:19:15 +02:00
LICENSE Clean up the licensing 2016-11-04 14:01:11 -06:00
README.rst Add check for rst syntax 2018-07-19 11:30:36 +02:00
Rakefile Adding python client for statsd messages 2014-09-23 07:55:58 -06:00
lower-constraints.txt add lower-constraints job 2018-03-22 15:49:50 -04:00
mkdocs.yml Added a config file for documentation generation using Markdown and readthedocs.org. 2015-02-24 00:16:20 +00:00
requirements.txt Updated from global requirements 2017-11-16 11:11:03 +00:00
setup.cfg Convert README.md to ReStructuredTest format 2018-06-28 13:24:34 +02:00
setup.py Updated from global requirements 2017-03-02 11:47:11 +00:00
test-requirements.txt Switch to using stestr 2018-06-19 14:39:28 -04:00
tox.ini fix tox python3 overrides 2018-09-26 18:56:53 -04:00

README.rst

Team and repository tags

image

A Monasca-Statsd Python Client.

Quick Start Guide

First install the library with pip or easy_install:

# Install in system python ...
sudo pip install monasca-statsd

# .. or into a virtual env
pip install monasca-statsd

Then start instrumenting your code:

# Import the module.
import monascastatsd as mstatsd

# Create the connection
conn = mstatsd.Connection(host='localhost', port=8125)

# Create the client with optional dimensions
client = mstatsd.Client(connection=conn, dimensions={'env': 'test'})

NOTE: You can also create a client without specifying the connection and it will create the client
with the default connection information for the monasca-agent statsd processor daemon
which uses host='localhost' and port=8125.

client = mstatsd.Client(dimensions={'env': 'test'})

# Increment and decrement a counter.
counter = client.get_counter(name='page.views')

counter.increment()
counter += 3

counter.decrement()
counter -= 3

# Record a gauge 50% of the time.
gauge = client.get_gauge('gauge', dimensions={'env': 'test'})

gauge.send('metric', 123.4, sample_rate=0.5)

# Sample a histogram.
histogram = client.get_histogram('histogram', dimensions={'test': 'True'})

histogram.send('metric', 123.4, dimensions={'color': 'red'})

# Time a function call.
timer = client.get_timer()

@timer.timed('page.render')
def render_page():
    # Render things ...
    pass

# Time a block of code.
timer = client.get_timer()

with timer.time('t'):
    # Do stuff
    time.sleep(2)

# Add dimensions to any metric.
histogram = client.get_histogram('my_hist')
histogram.send('query.time', 10, dimensions = {'version': '1.0', 'environment': 'dev'})

Feedback

To suggest a feature, report a bug, or participate in the general discussion, head over to StoryBoard.

License

See LICENSE file. Code was originally forked from Datadogs dogstatsd-python, hence the dual license.