Enum MetricManager

  • All Implemented Interfaces:
    Serializable, Comparable<MetricManager>

    public enum MetricManager
    extends Enum<MetricManager>
    Singleton that contains and configures Gremlin Server's MetricRegistry. Borrowed from Titan's approach to managing Metrics.
    Author:
    Stephen Mallette (http://stephen.genoprime.com)
    • Enum Constant Detail

    • Method Detail

      • values

        public static MetricManager[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (MetricManager c : MetricManager.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static MetricManager valueOf​(String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        Parameters:
        name - the name of the enum constant to be returned.
        Returns:
        the enum constant with the specified name
        Throws:
        IllegalArgumentException - if this enum type has no constant with the specified name
        NullPointerException - if the argument is null
      • getRegistry

        public com.codahale.metrics.MetricRegistry getRegistry()
        Return the MetricsRegistry.
        Returns:
        the single MetricRegistry used for all of monitoring
      • addConsoleReporter

        public void addConsoleReporter​(long reportIntervalInMS)
        Create a ConsoleReporter attached to the MetricsRegistry.
        Parameters:
        reportIntervalInMS - milliseconds to wait between dumping metrics to the console
      • removeConsoleReporter

        public void removeConsoleReporter()
        Stop a ConsoleReporter previously created by a call to addConsoleReporter(long) and release it for GC. Idempotent between calls to the associated add method. Does nothing before the first call to the associated add method.
      • addCsvReporter

        public void addCsvReporter​(long reportIntervalInMS,
                                   String output)
        Create a CsvReporter attached to the MetricsRegistry.

        The output argument must be non-null but need not exist. If it doesn't already exist, this method attempts to create it by calling File.mkdirs().

        Parameters:
        reportIntervalInMS - milliseconds to wait between dumping metrics to CSV files in the configured directory
        output - the path to a directory into which Metrics will periodically write CSV data
      • removeCsvReporter

        public void removeCsvReporter()
        Stop a CsvReporter previously created by a call to addCsvReporter(long, String) and release it for GC. Idempotent between calls to the associated add method. Does nothing before the first call to the associated add method.
      • addJmxReporter

        public void addJmxReporter​(String domain,
                                   String agentId)
        Create a JmxReporter attached to the MetricsRegistry.

        If domain or agentId is null, then Metrics's uses its own internal default value(s).

        If agentId is non-null, then MBeanServerFactory#findMBeanServer(agentId) must return exactly one MBeanServer. The reporter will register with that server. If the findMBeanServer(agentId) call returns no or multiple servers, then this method logs an error and falls back on the Metrics default for agentId.

        Parameters:
        domain - the JMX domain in which to continuously expose metrics
        agentId - the JMX agent ID
      • removeJmxReporter

        public void removeJmxReporter()
        Stop a JmxReporter previously created by a call to addJmxReporter(String, String) and release it for GC. Idempotent between calls to the associated add method. Does nothing before the first call to the associated add method.
      • addSlf4jReporter

        public void addSlf4jReporter​(long reportIntervalInMS,
                                     String loggerName)
        Create a Slf4jReporter attached to the MetricsRegistry.

        If loggerName is null, or if it is non-null but LoggerFactory.getLogger(loggerName) returns null, then Metrics's default Slf4j logger name is used instead.

        Parameters:
        reportIntervalInMS - milliseconds to wait between writing metrics to the Slf4j logger
        loggerName - the name of the Slf4j logger that receives metrics
      • removeSlf4jReporter

        public void removeSlf4jReporter()
        Stop a Slf4jReporter previously created by a call to addSlf4jReporter(long, String) and release it for GC. Idempotent between calls to the associated add method. Does nothing before the first call to the associated add method.
      • addGangliaReporter

        public void addGangliaReporter​(String groupOrHost,
                                       int port,
                                       String addressingMode,
                                       int ttl,
                                       Boolean protocol31,
                                       UUID hostUUID,
                                       String spoof,
                                       long reportIntervalInMS)
                                throws IOException
        Create a GangliaReporter attached to the MetricsRegistry.

        groupOrHost and addressingMode must be non-null. The remaining non-primitive arguments may be null. If protocol31 is null, then true is assumed. Null values of hostUUID or spoof are passed into the GMetric constructor, which causes Ganglia to use its internal logic for generating a default UUID and default reporting hostname (respectively).

        Parameters:
        groupOrHost - the multicast group or unicast hostname to which Ganglia events are sent
        port - the port to which events are sent
        addressingMode - whether to send events with multicast or unicast
        ttl - multicast ttl (ignored for unicast)
        protocol31 - true to use Ganglia protocol version 3.1, false to use 3.0
        hostUUID - uuid for the host
        spoof - override this machine's IP/hostname as it appears on the Ganglia server
        reportIntervalInMS - milliseconds to wait before sending data to the ganglia unicast host or multicast group
        Throws:
        IOException - when a GMetric can't be instantiated using the provided arguments
      • removeGangliaReporter

        public void removeGangliaReporter()
        Stop a GangliaReporter previously created by a call to addGangliaReporter(String, int, GMetric.UDPAddressingMode, int, Boolean, UUID, long) and release it for GC. Idempotent between calls to the associated add method. Does nothing before the first call to the associated add method.
      • addGraphiteReporter

        public void addGraphiteReporter​(String host,
                                        int port,
                                        String prefix,
                                        long reportIntervalInMS)
        Create a GraphiteReporter attached to the MetricsRegistry.

        If prefix is null, then Metrics's internal default prefix is used (empty string at the time this comment was written).

        Parameters:
        host - the host to which Graphite reports are sent
        port - the port to which Graphite reports are sent
        prefix - the optional metrics prefix
        reportIntervalInMS - milliseconds to wait between sending metrics to the configured Graphite host and port
      • removeGraphiteReporter

        public void removeGraphiteReporter()
        Stop a GraphiteReporter previously created by a call to addGraphiteReporter(String, int, String, long) and release it for GC. Idempotent between calls to the associated add method. Does nothing before the first call to the associated add method.
      • removeAllReporters

        public void removeAllReporters()
        Remove all reporters previously configured through the add* methods on this class.
      • removeAllMetrics

        public void removeAllMetrics()
      • getCounterSize

        public int getCounterSize()
      • contains

        public boolean contains​(String name)
      • getCounter

        public com.codahale.metrics.Counter getCounter​(String name)
      • getCounter

        public com.codahale.metrics.Counter getCounter​(String prefix,
                                                       String... names)
      • getGuage

        public <T> com.codahale.metrics.Gauge<T> getGuage​(com.codahale.metrics.Gauge<T> gauge,
                                                          String name)
      • getGuage

        public <T> com.codahale.metrics.Gauge<T> getGuage​(com.codahale.metrics.Gauge<T> gauge,
                                                          String prefix,
                                                          String... names)
      • getMeter

        public com.codahale.metrics.Meter getMeter​(String name)
      • getMeter

        public com.codahale.metrics.Meter getMeter​(String prefix,
                                                   String... names)
      • getTimer

        public com.codahale.metrics.Timer getTimer​(String name)
      • getTimer

        public com.codahale.metrics.Timer getTimer​(String prefix,
                                                   String... names)
      • getHistogram

        public com.codahale.metrics.Histogram getHistogram​(String name)
      • getHistogram

        public com.codahale.metrics.Histogram getHistogram​(String prefix,
                                                           String... names)