<commit_before># Description

MetricCatcher is a bookkeeping agent for application metrics.  It utilizes
Coda Hale's [Metrics](http://github.com/codahale/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](http://github.com/codahale/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](http://github.com/codahale/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).

# 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](http://metrics.codahale.com/getting-started.html) 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.
<commit_msg>Add link to where builds end up<commit_after># Description

MetricCatcher is a bookkeeping agent for application metrics.  It utilizes
Coda Hale's [Metrics](http://github.com/codahale/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](http://github.com/codahale/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](http://github.com/codahale/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).

## Getting MetricCatcher

Builds of MetricCatcher can be found on [Sonatype's OSS repository](https://oss.sonatype.org/content/repositories/releases/com/clearspring/metriccatcher/) or the [The Central Repository](http://search.maven.org/#search|ga|1|a%3A%22metriccatcher%22).

# 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](http://metrics.codahale.com/getting-started.html) 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.

{'fraction_non_alphanumeric': 0.07151342361606082, 'fraction_numerical': 0.003326205749584224, 'mean_word_length': 4.568783068783069, 'pattern_counts': {'":': 8, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '845509', 'n_tokens_mistral': 1189, 'n_tokens_neox': 1102, 'n_words': 505}