org.apache.tinkerpop.gremlin.server.util

## Enum MetricManager

- java.lang.Object
- - java.lang.Enum<MetricManager>
  - - org.apache.tinkerpop.gremlin.server.util.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 Summary

    Enum Constants
    Enum Constant and Description
    `INSTANCE`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addConsoleReporter(long reportIntervalInMS)` Create a `ConsoleReporter` attached to the `MetricsRegistry`.
    `void` | `addCsvReporter(long reportIntervalInMS, String output)` Create a `CsvReporter` attached to the `MetricsRegistry`.
    `void` | `addGangliaReporter(String groupOrHost, int port, String addressingMode, int ttl, Boolean protocol31, UUID hostUUID, String spoof, long reportIntervalInMS)` Create a `GangliaReporter` attached to the `MetricsRegistry`.
    `void` | `addGraphiteReporter(String host, int port, String prefix, long reportIntervalInMS)` Create a `GraphiteReporter` attached to the `MetricsRegistry`.
    `void` | `addJmxReporter(String domain, String agentId)` Create a `JmxReporter` attached to the `MetricsRegistry`.
    `void` | `addSlf4jReporter(long reportIntervalInMS, String loggerName)` Create a `Slf4jReporter` attached to the `MetricsRegistry`.
    `Counter` | `getCounter(String name)`
    `Counter` | `getCounter(String prefix, String... names)`
    `<T> <any>` | `getGuage(<any> gauge, String name)`
    `<T> <any>` | `getGuage(<any> gauge, String prefix, String... names)`
    `Histogram` | `getHistogram(String name)`
    `Histogram` | `getHistogram(String prefix, String... names)`
    `Meter` | `getMeter(String name)`
    `Meter` | `getMeter(String prefix, String... names)`
    `MetricRegistry` | `getRegistry()` Return the `MetricsRegistry`.
    `Timer` | `getTimer(String name)`
    `Timer` | `getTimer(String prefix, String... names)`
    `void` | `registerGremlinScriptEngineMetrics(GremlinScriptEngine engine, String... prefix)` Registers metrics from a `GremlinScriptEngine`.
    `void` | `removeAllMetrics()`
    `void` | `removeAllReporters()` Remove all reporters previously configured through the `add*` methods on this class.
    `void` | `removeConsoleReporter()` Stop a `ConsoleReporter` previously created by a call to `addConsoleReporter(long)` and release it for GC.
    `void` | `removeCsvReporter()` Stop a `CsvReporter` previously created by a call to `addCsvReporter(long, String)` and release it for GC.
    `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.
    `void` | `removeGraphiteReporter()` Stop a `GraphiteReporter` previously created by a call to `addGraphiteReporter(String, int, String, long)` and release it for GC.
    `void` | `removeJmxReporter()` Stop a `JmxReporter` previously created by a call to `addJmxReporter(String, String)` and release it for GC.
    `void` | `removeSlf4jReporter()` Stop a `Slf4jReporter` previously created by a call to `addSlf4jReporter(long, String)` and release it for GC.
    `static MetricManager` | `valueOf(String name)` Returns the enum constant of this type with the specified name.
    `static MetricManager[]` | `values()` Returns an array containing the constants of this enum type, in the order they are declared.

    - ### Methods inherited from class java.lang.Enum

      `clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Enum Constant Detail

    - #### INSTANCE

          public static final MetricManager INSTANCE

  - ### 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 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()

    - #### getCounter

          public Counter getCounter(String name)

    - #### getCounter

          public Counter getCounter(String prefix,
                                    String... names)

    - #### getGuage

          public <T> <any> getGuage(<any> gauge,
                                    String name)

    - #### getGuage

          public <T> <any> getGuage(<any> gauge,
                                    String prefix,
                                    String... names)

    - #### getMeter

          public Meter getMeter(String name)

    - #### getMeter

          public Meter getMeter(String prefix,
                                String... names)

    - #### getTimer

          public Timer getTimer(String name)

    - #### getTimer

          public Timer getTimer(String prefix,
                                String... names)

    - #### getHistogram

          public Histogram getHistogram(String name)

    - #### getHistogram

          public Histogram getHistogram(String prefix,
                                        String... names)

    - #### registerGremlinScriptEngineMetrics

          public void registerGremlinScriptEngineMetrics(GremlinScriptEngine engine,
                                                         String... prefix)

      Registers metrics from a `GremlinScriptEngine`. At this point, this only works for the `GremlinGroovyScriptEngine` as it is the only one that collects metrics at this point. As the `GremlinScriptEngine` implementations achieve greater parity these metrics will get expanded.

Copyright © 2013–2021 Apache Software Foundation. All rights reserved.