OpenStack Release Bot
e400c13e1c
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 |
||
---|---|---|
doc | ||
monascastatsd | ||
releasenotes/notes | ||
tests | ||
.coveragerc | ||
.gitignore | ||
.gitreview | ||
.stestr.conf | ||
.zuul.yaml | ||
CONTRIBUTING.rst | ||
LICENSE | ||
README.rst | ||
Rakefile | ||
lower-constraints.txt | ||
mkdocs.yml | ||
requirements.txt | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini |
README.rst
Openstack Monasca Statsd
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 Datadog’s dogstatsd-python, hence the dual license.