Python Statsd library for sending statsd messages via the Monasca Agent
Go to file
Ghanshyam Mann ca8dfbd871 Drop lower-constraints.txt and its testing
As discussed in TC PTG[1] and TC resolution[2], we are
dropping the lower-constraints.txt file and its testing.
We will keep lower bounds in the requirements.txt file but
with a note that these are not tested lower bounds and we
try our best to keep them updated.

[1] https://etherpad.opendev.org/p/tc-zed-ptg#L326
[2] https://governance.openstack.org/tc/resolutions/20220414-drop-lower-constraints.html#proposal

Change-Id: Ic3dfafb8fc15caf650f9ffcb5307b8d124b9c405
2022-04-30 20:30:41 -05: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 Drop lower-constraints.txt and its testing 2022-04-30 20:30:41 -05: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
mkdocs.yml Added a config file for documentation generation using Markdown and readthedocs.org. 2015-02-24 00:16:20 +00:00
requirements.txt Drop lower-constraints.txt and its testing 2022-04-30 20:30:41 -05: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 Drop lower-constraints.txt and its testing 2022-04-30 20:30:41 -05: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.