See: Description
| Interface | Description |
|---|---|
| MetricsContext |
The main interface to the metrics package.
|
| MetricsRecord |
A named and optionally tagged set of records to be sent to the metrics
system.
|
| Updater |
Call-back interface.
|
| Class | Description |
|---|---|
| ContextFactory |
Factory class for creating MetricsContext objects.
|
| MetricsServlet |
A servlet to print out metrics data.
|
| MetricsUtil |
Utility class to simplify creation and reporting of hadoop metrics.
|
| Exception | Description |
|---|---|
| MetricsException |
General-purpose, unchecked metrics exception.
|
org.apache.hadoop.metrics.spiorg.apache.hadoop.metrics.fileorg.apache.hadoop.metrics.ganglia
private ContextFactory contextFactory = ContextFactory.getFactory();
void reportMyMetric(float myMetric) {
MetricsContext myContext = contextFactory.getContext("myContext");
MetricsRecord myRecord = myContext.getRecord("myRecord");
myRecord.setMetric("myMetric", myMetric);
myRecord.update();
}
In this example there are three names:
private MetricsRecord diskStats =
contextFactory.getContext("myContext").getRecord("diskStats");
void reportDiskMetrics(String diskName, float diskBusy, float diskUsed) {
diskStats.setTag("diskName", diskName);
diskStats.setMetric("diskBusy", diskBusy);
diskStats.setMetric("diskUsed", diskUsed);
diskStats.update();
}
MetricsRecord.update() is called. Instead it is stored in an
internal table, and the contents of the table are sent periodically.
This can be important for two reasons:
registerUpdater() method. The benefit of this
versus using java.util.Timer is that the callbacks will be done
immediately before sending the data, making the data as current as possible.
ContextFactory factory = ContextFactory.getFactory();
... examine and/or modify factory attributes ...
MetricsContext context = factory.getContext("myContext");
The factory attributes can be examined and modified using the following
ContextFactorymethods:
Object getAttribute(String attributeName)String[] getAttributeNames()void setAttribute(String name, Object value)void removeAttribute(attributeName)ContextFactory.getFactory() initializes the factory attributes by
reading the properties file hadoop-metrics.properties if it exists
on the class path.
A factory attribute named:
contextName.classshould have as its value the fully qualified name of the class to be instantiated by a call of the
CodeFactory method
getContext(contextName). If this factory attribute is not
specified, the default is to instantiate
org.apache.hadoop.metrics.file.FileContext.
Other factory attributes are specific to a particular implementation of this
API and are documented elsewhere. For example, configuration attributes for
the file and Ganglia implementations can be found in the javadoc for
their respective packages.Copyright © 2013 Apache Software Foundation. All rights reserved.