Skip to content

Monitoring

spmallette edited this page Apr 27, 2013 · 23 revisions

Rexster comes with a variety of options for monitoring given its integration with Metrics. Rexster continually gathers information about itself as it is accepting requests and sending back responses. This information is then periodically sent to the reporters configured in rexster.xml. Rexster supports the following reporters:

The metrics provided by Rexster can help inform administrators of Rexster’s health and include things like:

  • Gremlin script engine processing times
  • RESTful endpoint request/response times
  • Underlying JMX attributes from Grizzly and Jersey

Configuration

All configuration of metrics reporting is handled through rexster.xml. With in that file, there is a <metrics> element, which contains one or more <reporter> elements. These <reporter> elements represent places where Rexster will make gathered metrics available. Basic reporter configuration looks like this:

<rexster>
  ...
  <metrics>
    <reporter>
      <type>console</type>
    </reporter>
  </metrics>
  ...
</rexster>

The <type> may be one of the following options: console, http, jmx, ganglia or graphite.

type description behavior common 1
console Metrics written to the console at predefined periods. scheduled push Yes
http Metrics served via HTTP as a REST-based service. on-demand No
jmx Metrics served as MBean to be consumed by tools like VisualVM. on-demand No
ganglia Metrics pushed to Ganglia on a schedule. scheduled push Yes
graphite Metrics pushed to Graphite on a schedule. scheduled push Yes

1 – Uses Common Configuration settings explained below.

Reporters

Rexster provides configuration options for several different reporters.

Console

When the Console Reporter is configured, Rexster will periodically send its metrics to the console output. This reporter is mostly useful for debugging and demonstration purposes. Output looks something like:

4/26/13 5:01:14 PM =============================================================

-- Counters --------------------------------------------------------------------
rexpro.script-engine.fail
             count = 0
rexpro.script-engine.success
             count = 113650
-- Timers ----------------------------------------------------------------------
rexpro.script-engine
             count = 114633
         mean rate = 4074.89 calls/second
     1-minute rate = 1464.61 calls/second
     5-minute rate = 442.48 calls/second
    15-minute rate = 252.12 calls/second
...

HTTP

JMX

Ganglia

Graphite

Common Configurations and Defaults

Reporters that “push” metrics on a schedule have common configuration and default settings as set through the <properties> element of the <reporter>. The common configuration looks like this:

<reporter>
  ...
  <properties>
    <rates-time-unit>SECONDS</rates-time-unit>
    <duration-time-unit>SECONDS</duration-time-unit>
    <report-period>60</report-period>
    <report-time-unit>SECONDS</report-time-unit>
   </properties>
</reporter>

The example above also represents the default settings assigned when none of these values are supplied in configuration.

Filtering Metrics

Metrics in Extensions

Clone this wiki locally