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.2.tar.gz (6.3 kB view details)

Uploaded Source

File details

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

File metadata

File hashes

Hashes for carbon-client-0.3.2.tar.gz
Algorithm Hash digest
SHA256 d1240c9ad1285cf88968993c611ed98b91e688d5f293b16b518d0ab611bdf25f
MD5 5a08da2679ba288c88d101f1786b5479
BLAKE2b-256 c6387c1075745148c75ddc7cca26bac333f21afddb24cba38cc953e0df8e11c7

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