An extension to Coda Hale's excellent Metrics library. It
GraphitePickleReporter, which allows your application to stream metric values
to a Graphite server using graphite's pickle receiver.
This is recommended if sending large amounts of data:
GraphitePickleReporter.enable(1, TimeUnit.MINUTES, "graphite.example.com", 2004);
Setting up Maven
metrics-graphite-pickle to your project:
<dependency> <groupId>com.brightcove.metrics</groupId> <artifactId>metrics-graphite-pickle</artifactId> <version>1.2.0</version> </dependency>
- Stop using jython for metrics pickling. Hand-coded minimal pickling of the primitive data types. Jython unpickling remains in use during tests.
- Modify the
executor.scheduleWithFixedDelay(will be unnecessary after upgrading to metrics 3.0.0)
- Upgrade to metrics-core-2.2.0
- Upgrade to metrics-graphite-2.2.0
- Upgrade to jython-standalone-2.5.3
- Upgrade to slf4j 1.7.2
- Fixed a bug where a null prefix caused the last word in a metric name to be lost in some cases (e.g. 'mean')
- Upgrade to metrics-graphite-2.1.3
- Move the creation of MetricsPickler back into the run method but use a synchronized method to ensure it is only created once. This improves startup time by a few seconds in some cases.
- Moved the creation of the jython script engine out of the reporter's "run" method. This should fix a memory leak caused by ThreadLocal entries that never got cleaned up.
- Upgrade to metrics-graphite 2.1.2
- Changed encoding to ISO-8859-1 to match the python default
- Fixed a bug where a
- Recreates the socket on each batch to prevent reaching the 100K byte limit (and a broken pipe)