Skip to main content

graphite/carbon udp client for sending metrics

Project description

https://travis-ci.org/mosquito/carbon-client.svg?branch=master Latest Version https://img.shields.io/pypi/wheel/carbon-client.svg https://img.shields.io/pypi/pyversions/carbon-client.svg https://img.shields.io/pypi/l/carbon-client.svg

Client for sending metrics into carbon server

Initialization

By default carbon-client creates a client based on os.environ variables:

  • CARBON_HOST - Contains one or many endpoints (e.g “127.0.0.1:2003, 10.2.1.0:2003”)

  • CARBON_NS - it’s a namespace for sending metrics (e.g. “carbon.coal-service”)

Actually you can configure this by hands.

Example

The simple test :

# You should set ENV variables CARBON_HOST and CARBON_NS
# CARBON_HOST might contains multiple destinations (comma separated)
from time import sleep
from carbon.client import stat
from carbon.client.extras import SimpleCounter

# Will be pended one or two metrics
# carbon_client.counter_ok
# carbon_client.counter_fail - if exception will be raised
# carbon_client is namespace by default.
with SimpleCounter("counter"):
    sleep(1)

# Will be pended one metric
# carbon_client.timer_ok - if exception will be raised
# carbon_client.timer_fail - if exception will be raised
# carbon_client is namespace by default.
with SimpleTimer("timer"):
    sleep(1)

# Will be pended n metric
# carbon_client.collector
# carbon_client is namespace by default.
with SimpleCollector("collector") as collector:
    collector.add(123)
    collector.add(122)
    collector.add(-10)

# all metrics will sent.
stat.send()

The advanced test :

from time import sleep
from carbon.client import UDPClient
from carbon.client.extras import SimpleCounter, SimpleTimer, SimpleCollector

# Will be send to multiple destinations
client = UDPClient("127.0.0.1, 191.168.1.11:2003", "test")

with SimpleCounter("counter", client):
    sleep(1)

with SimpleTimer("timer", client):
    sleep(1)

with SimpleCollector("collector", client) as collector:
    collector.add(123)

client.send()

Another test :

from time import sleep
from carbon.client import stat
from carbon.client import metrics

# Counter
stat['counter'] = metrics.Counter
stat['counter'].inc(1)
sleep(1)
stat['counter'].dec(1)

# Timer
stat['timer'] = metrics.Timer
stop_watch = stat['timer'].start()
sleep(1)
stat['timer'].stop(stop_watch)

# Collector
stat['collector'] = metrics.Collector
stat['collector'].add(1)
sleep(1)
stat['collector'].add(2)
sleep(1)
stat['collector'].add(3)
sleep(1)
stat['collector'].add(-10)

stat.send()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

carbon-client-0.3.3.tar.gz (6.4 kB view details)

Uploaded Source

File details

Details for the file carbon-client-0.3.3.tar.gz.

File metadata

File hashes

Hashes for carbon-client-0.3.3.tar.gz
Algorithm Hash digest
SHA256 19d4d5c7091d4432e4b4a6ed695e3d31b728eed440b72afbe031bab81fb81cda
MD5 c158650a272704ecf37f7167a0d81e91
BLAKE2b-256 c1f083dd9302c22b5a71243f6b48a6cd2bf0e7fdf52582813437e2637bdb74a6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page