metriccatcher

Receives metrics on UDP, sends them to Ganglia or Graphite

License

License

GroupId

GroupId

com.addthis
ArtifactId

ArtifactId

metriccatcher
Last Version

Last Version

0.4.0
Release Date

Release Date

Type

Type

jar
Description

Description

metriccatcher
Receives metrics on UDP, sends them to Ganglia or Graphite
Project URL

Project URL

https://github.com/addthis/MetricCatcher
Project Organization

Project Organization

AddThis
Source Code Management

Source Code Management

https://github.com/addthis/MetricCatcher

Download metriccatcher

How to add to project

<!-- https://jarcasting.com/artifacts/com.addthis/metriccatcher/ -->
<dependency>
    <groupId>com.addthis</groupId>
    <artifactId>metriccatcher</artifactId>
    <version>0.4.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.addthis/metriccatcher/
implementation 'com.addthis:metriccatcher:0.4.0'
// https://jarcasting.com/artifacts/com.addthis/metriccatcher/
implementation ("com.addthis:metriccatcher:0.4.0")
'com.addthis:metriccatcher:jar:0.4.0'
<dependency org="com.addthis" name="metriccatcher" rev="0.4.0">
  <artifact name="metriccatcher" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.addthis', module='metriccatcher', version='0.4.0')
)
libraryDependencies += "com.addthis" % "metriccatcher" % "0.4.0"
[com.addthis/metriccatcher "0.4.0"]

Dependencies

compile (9)

Group / Artifact Type Version
org.codehaus.jackson : jackson-mapper-asl jar 1.9.13
org.apache.commons : commons-lang3 jar 3.3.2
commons-codec : commons-codec jar 1.9
com.yammer.metrics : metrics-core jar 2.2.0
com.yammer.metrics : metrics-graphite jar 2.2.0
com.yammer.metrics : metrics-ganglia jar 2.2.0
com.addthis.metrics : reporter-config jar 2.3.0
org.slf4j : slf4j-log4j12 jar 1.7.7
org.slf4j : slf4j-api jar 1.7.7

test (1)

Group / Artifact Type Version
junit : junit jar 4.11

Project Modules

There are no modules declared in this project.

Description

MetricCatcher is a bookkeeping agent for application metrics. It utilizes Coda Hale's Metrics package to provide languages that aren't Java with the easy-to-use tracking & advanced maths of Metrics.

What it does

MetricCatcher takes in JSON about things you want to track in your application and forwards the data on to Graphite or Ganglia for storage & visualization.

Method of operation

MetricCatcher utilizes Coda Hale's Metrics for its own storage of information, statistical analysis, and sending information along to Graphite or Ganglia. When MetricCatcher first receives a metric, it creates the corresponding Java object. Subsequent messages referring to a metric of the same name update or increment that metric as appropriate. Metrics are sent on to the configured metrics server, Ganglia or Graphite, once very minute.

Why you might care

We wrote MetricCatcher in order to take advantage of the statistics that Coda Hale's Metrics provides in languages that aren't Java. It is very useful for things like web applications that don't have any in-memory persistance (i.e. process-per-request).

Running MetricCatcher

Builds of MetricCatcher can be found on Sonatype's OSS repository or the The Central Repository. Grab the latest -dist.zip and unpack it. Uncomment the type of server you'd like MetricCatcher ot send metrics to in conf/config.properties and set the appropriate hostname. Can start MetricCatcher using the included bin/start-metricCatcher.sh script and then check logs/metriccatcher.log to see if it had any issues starting up. At the default DEBUG loglevel, MetricCatcher logs every time it gets a metric update, making debugging a cinch.

Talking to MetricCatcher

MetricCatcher accepts JSON on UDP port 1420 by default.

A metric

Each metric has a name, type, timestamp, and value. See Coda Hale's Metrics documentation for details on the available metric types. Histograms are either biased (favor more recent data) or uniform (weight all data equally) and are referred to as such.

{
    "name":"namespace.metric.name",
    "value":numeric_value,
    "type":"[gauge|counter|meter|biased|uniform|timer]",
    "timestamp":unix_time.millis
}

A set of metrics

MetricCatcher expects a list of individual metrics as described above.

[
    {"name":"foo","value":7,"type":"gauge","timestamp":1320682297.6631},
    {"name":"bar","value":77,"type":"meter","timestamp":1320682297.6631}
]

More info

Administrivia

Author

MetricCatcher was written by Drew Stephens <[email protected]> when at Clearspring. Clearspring is now AddThis.

License

MetricCatcher is released under the Apache License Version 2.0. See Apache or the LICENSE file in this distribution for details

Bugs & so forth

Please report bugs or request new features at the GitHub page for MetricCatcher: http://github.com/clearspring/MetricCatcher

Jobs

When this was written, AddThis was hiring; even if the blame on this line is from long ago, we probably still are. Check out http://addthis.com/careers if you're intersted in doing webapps, working with Big Data, and like smart, fun coworkers. Clearspring is based just outside of Washington, DC (Tysons Corner) and has offices in New York, Los Angeles, and beyond.

com.addthis

AddThis

Versions

Version
0.4.0
0.3.0