## org.apache.hadoop.metrics2.sink.ganglia
Class AbstractGangliaSink

    java.lang.Object
      org.apache.hadoop.metrics2.sink.ganglia.AbstractGangliaSink

All Implemented Interfaces:
  MetricsPlugin, MetricsSink

Direct Known Subclasses:
  GangliaSink30

    public abstract class AbstractGangliaSink

extends Object
implements MetricsSink

This the base class for Ganglia sink classes using metrics2. Lot of the code has been derived from org.apache.hadoop.metrics.ganglia.GangliaContext. As per the documentation, sink implementations doesn't have to worry about thread safety. Hence the code wasn't written for thread safety and should be modified in case the above assumption changes in the future.

Nested Class Summary
`static class` `AbstractGangliaSink.GangliaConfType` define enum for various type of conf
`static class` `AbstractGangliaSink.GangliaSlope` ganglia slope values which equal the ordinal

Field Summary
`static int` `BUFFER_SIZE`
`static int` `DEFAULT_DMAX`
`static int` `DEFAULT_PORT`
`static AbstractGangliaSink.GangliaSlope` `DEFAULT_SLOPE`
`static int` `DEFAULT_TMAX`
`static String` `DEFAULT_UNITS`
`static String` `EQUAL`
`protected org.apache.hadoop.metrics2.sink.ganglia.GangliaMetricVisitor` `gangliaMetricVisitor` Used for visiting Metrics
`org.apache.commons.logging.Log` `LOG`
`static String` `SERVERS_PROPERTY`
`static boolean` `SUPPORT_SPARSE_METRICS_DEFAULT`
`static String` `SUPPORT_SPARSE_METRICS_PROPERTY`

Constructor Summary
`AbstractGangliaSink()`

Method Summary
`protected void` `emitToGangliaHosts()` Sends Ganglia Metrics to the configured hosts
`void` `flush()` Flush any buffered metrics
`protected org.apache.hadoop.metrics2.sink.ganglia.GangliaConf` `getGangliaConfForMetric(String metricName)` Lookup GangliaConf from cache.
`protected String` `getHostName()`
`void` `init(org.apache.commons.configuration.SubsetConfiguration conf)` Initialize the plugin
`protected boolean` `isSupportSparseMetrics()`
`protected void` `xdr_int(int i)` Puts an integer into the buffer as 4 bytes, big-endian.
`protected void` `xdr_string(String s)` Puts a string into the buffer by first writing the size of the string as an int, followed by the bytes of the string, padded if necessary to a multiple of 4.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.apache.hadoop.metrics2.MetricsSink
`putMetrics`

Field Detail

### LOG

    public final org.apache.commons.logging.Log LOG

### DEFAULT_UNITS

    public static final String DEFAULT_UNITS

See Also:
  Constant Field Values

### DEFAULT_TMAX

    public static final int DEFAULT_TMAX

See Also:
  Constant Field Values

### DEFAULT_DMAX

    public static final int DEFAULT_DMAX

See Also:
  Constant Field Values

### DEFAULT_SLOPE

    public static final AbstractGangliaSink.GangliaSlope DEFAULT_SLOPE

### DEFAULT_PORT

    public static final int DEFAULT_PORT

See Also:
  Constant Field Values

### SERVERS_PROPERTY

    public static final String SERVERS_PROPERTY

See Also:
  Constant Field Values

### BUFFER_SIZE

    public static final int BUFFER_SIZE

See Also:
  Constant Field Values

### SUPPORT_SPARSE_METRICS_PROPERTY

    public static final String SUPPORT_SPARSE_METRICS_PROPERTY

See Also:
  Constant Field Values

### SUPPORT_SPARSE_METRICS_DEFAULT

    public static final boolean SUPPORT_SPARSE_METRICS_DEFAULT

See Also:
  Constant Field Values

### EQUAL

    public static final String EQUAL

See Also:
  Constant Field Values

### gangliaMetricVisitor

    protected final org.apache.hadoop.metrics2.sink.ganglia.GangliaMetricVisitor gangliaMetricVisitor

  Used for visiting Metrics

Constructor Detail

### AbstractGangliaSink

    public AbstractGangliaSink()

Method Detail

### init

    public void init(org.apache.commons.configuration.SubsetConfiguration conf)

  Description copied from interface: `MetricsPlugin`
  Initialize the plugin

  Specified by:
    `init` in interface `MetricsPlugin`
  Parameters:
    `conf` - the configuration object for the plugin

### flush

    public void flush()

  Description copied from interface: `MetricsSink`
  Flush any buffered metrics

  Specified by:
    `flush` in interface `MetricsSink`

### getGangliaConfForMetric

    protected org.apache.hadoop.metrics2.sink.ganglia.GangliaConf getGangliaConfForMetric(String metricName)

  Lookup GangliaConf from cache. If not found, return default values

  Parameters:
    `metricName` -
  Returns:
    looked up GangliaConf

### getHostName

    protected String getHostName()

  Returns:
    the hostName

### xdr_string

    protected void xdr_string(String s)

  Puts a string into the buffer by first writing the size of the string as an int, followed by the bytes of the string, padded if necessary to a multiple of 4.

  Parameters:
    `s` - the string to be written to buffer at offset location

### xdr_int

    protected void xdr_int(int i)

  Puts an integer into the buffer as 4 bytes, big-endian.

### emitToGangliaHosts

    protected void emitToGangliaHosts()
                               throws IOException

  Sends Ganglia Metrics to the configured hosts

  Throws:
    `IOException`

### isSupportSparseMetrics

    protected boolean isSupportSparseMetrics()

  Returns:
    whether sparse metrics are supported

Copyright © 2009 The Apache Software Foundation