Python Statsd library for sending statsd messages via the Monasca Agent
Go to file
OpenStack Release Bot e400c13e1c Add Python3 zed unit tests
This is an automatically generated patch to ensure unit testing
is in place for all the of the tested runtimes for zed.

See also the PTI in governance [1].

[1]: https://governance.openstack.org/tc/reference/project-testing-interface.html

Change-Id: I7cb003e1c69122a5759505ad9b1c115ecb680ffc
2022-03-04 17:17:07 +00:00
doc Add doc/requirements 2021-01-18 16:19:51 +01:00
monascastatsd Clean up client.py 2017-01-12 21:57:06 +00:00
releasenotes/notes [ussuri][goal] Drop python 2.7 support and testing 2019-11-16 16:55:40 +00:00
tests Use unittest.mock instead of mock 2020-06-09 01:25:45 +02: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 OpenDev Migration Patch 2019-04-19 19:35:46 +00:00
.stestr.conf Switch to using stestr 2018-06-19 14:39:28 -04:00
.zuul.yaml Add Python3 zed unit tests 2022-03-04 17:17:07 +00:00
CONTRIBUTING.rst Add CONTRIBUTING.rst 2020-05-19 16:26:25 +02:00
LICENSE Clean up the licensing 2016-11-04 14:01:11 -06:00
README.rst change a better title in README.rst 2020-06-16 17:25:33 +08:00
Rakefile Adding python client for statsd messages 2014-09-23 07:55:58 -06:00
lower-constraints.txt Add doc/requirements 2021-01-18 16:19:51 +01: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 Add doc/requirements 2021-01-18 16:19:51 +01:00
setup.cfg Add py38 package metadata 2020-05-02 07:48:13 -05:00
setup.py Cleanup py27 support 2020-04-05 09:59:44 +02:00
test-requirements.txt Add doc/requirements 2021-01-18 16:19:51 +01:00
tox.ini Add doc/requirements 2021-01-18 16:19:51 +01:00

README.rst

Openstack Monasca Statsd

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.