log-metrics is a tiny metrics logger, based on the [l2met](https://github.com/ryandotsmith/l2met) format. Meant for use on Heroku, this allows you to send custom metrics to Librato.
You can find more information on these custom metrics here.
$ pip install log-metrics
Everything takes place from the log_metrics module, which can be imported like so:
>>> import log_metrics
>>> log_metrics.sample('process.foo.memory.mb', '52.54')
sample#process.foo.memory.mb=52.54
>>> log_metrics.measure('myfoo.ms', '150')
measure#myfoo.ms=150
>>> log_metrics.unique('user.clicked', 'bob')
unique#user.clicked=bob
>>> log_metrics.unique('user.clicked', 'joey')
unique#user.clicked=joey
>>> log_metrics.unique('user.clicked', 'jenny')
unique#user.clicked=jenny
>>> log_metrics.increment('myfoo')
count#myfoo=1
>>> log_metrics.increment('myfoo', 3)
count#myfoo=3
>>> with log_metrics.timer('my-timed-context'):
... time.sleep(1)
measure#my-timed-context.ms=1001.20
>>> @log_metrics.timer('my-timed-decorator'):
... def my_func():
... time.sleep(0.5)
>>> my_func()
measure#my-timed-decorator.ms=504.20
>>> with log_metrics.group() as g:
... g.measure('my-measurement', 2)
... g.increment('my-counter')
measure#my-measurement=2 count#my-counter=1
>>> g = log_metrics.group()
>>> g.measure('my-measurement', 2)
>>> g.increment('my-counter')
>>> g.emit()
measure#my-measurement=2 count#my-counter=1
Sources and prefixes can be defined like so:
>>> log_metrics.increment('my-counter', prefix='awesome')
count#awesome.my-counter=1
>>> log_metrics.measure('my-measurement', 50, source='testing')
source=testing measure#my-measurement=50
These arguments are also supported for group functions:
>>> g = log_metrics.group(prefix='my-prefix', source='my-metric-source')
>>> g.increment('my-amount')
>>> g.increment('my-measurement')
>>> g.emit()
source=my-metric-source count#my-prefix.my-amount=1 count#my-prefix.my-amount1=1 count#my-prefix.my-amount2=1