Class ContextFactory

java.lang.Object
com.mapr.org.apache.hadoop.metrics.ContextFactory

@LimitedPrivate({"HDFS","MapReduce"}) @Evolving public class ContextFactory extends Object
Factory class for creating MetricsContext objects. To obtain an instance of this class, use the static getFactory() method.
  • Constructor Details

    • ContextFactory

      protected ContextFactory()
      Creates a new instance of ContextFactory
  • Method Details

    • getAttribute

      public Object getAttribute(String attributeName)
      Returns the value of the named attribute, or null if there is no attribute of that name.
      Parameters:
      attributeName - the attribute name
      Returns:
      the attribute value
    • getAttributeNames

      public String[] getAttributeNames()
      Returns the names of all the factory's attributes.
      Returns:
      the attribute names
    • setAttribute

      public void setAttribute(String attributeName, Object value)
      Sets the named factory attribute to the specified value, creating it if it did not already exist. If the value is null, this is the same as calling removeAttribute.
      Parameters:
      attributeName - the attribute name
      value - the new attribute value
    • removeAttribute

      public void removeAttribute(String attributeName)
      Removes the named attribute if it exists.
      Parameters:
      attributeName - the attribute name
    • getContext

      Returns the named MetricsContext instance, constructing it if necessary using the factory's current configuration attributes.

      When constructing the instance, if the factory property contextName.class exists, its value is taken to be the name of the class to instantiate. Otherwise, the default is to create an instance of org.apache.hadoop.metrics.spi.NullContext, which is a dummy "no-op" context which will cause all metric data to be discarded.

      Parameters:
      contextName - the name of the context
      Returns:
      the named MetricsContext
      Throws:
      IOException
      ClassNotFoundException
      InstantiationException
      IllegalAccessException
    • getContext

      Throws:
      IOException
      ClassNotFoundException
      InstantiationException
      IllegalAccessException
    • getAllContexts

      public Collection<MetricsContext> getAllContexts()
      Returns all MetricsContexts built by this factory.
    • getNullContext

      public static MetricsContext getNullContext(String contextName)
      Returns a "null" context - one which does nothing.
    • getFactory

      public static ContextFactory getFactory() throws IOException
      Returns the singleton ContextFactory instance, constructing it if necessary.

      When the instance is constructed, this method checks if the file hadoop-metrics.properties exists on the class path. If it exists, it must be in the format defined by java.util.Properties, and all the properties in the file are set as attributes on the newly created ContextFactory instance.

      Returns:
      the singleton ContextFactory instance
      Throws:
      IOException