Skip to content

gleicon/pymetrics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyMetrics

Redis backed metrics library - implements the most of the famous Metrics library.

Classes

RetricsGauge(BaseMetrics) - Single value gauge
RetricsCounter(BaseMetrics) - Simple counter with incr and decr methods
RetricsMeter(BaseMetrics) - Time series data, with 1, 5 and 15 minutes avg
RetricsHistogram(BaseMetrics) - Histogram with percentile, mean, median and std deviation methods 
RetricsTimer(BaseMetrics) - Timer (wallclock)

The main class to loof after is RetricsFactory - Metrics factory 

Hierarchy

Basically we register an application and its metrics instances in the following order:
    Application -> Metrics -> Instances of metrics

The important thing to monitor is that each metric will have an internal name based on the application + metric name + pid.
By looking at the way the name is composed it's easy to interchange data between processes.

Examples:

from pymetrics import RetricsFactory

rf = RetricsFactory('application_name')                                                       
c = rf.new_counter('requests')                                              
c.incr()                                                                    
c.decr()

To list all instances for a given metric:

rf.list_instances_per_metric('gauge') 

rf.unregister_instance(c)

Unregister metrics instances is not mandatory as each new metric will not use the same internal name.

For more examples, check the tests/ directory    
Use python -m unittest discover tests/unit to run all tests

TODO

Should use riemann optionally
Should integrate with dashify 
Should be ported to ruby 

About

metrics for python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages