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'sMetricRegistry
. Borrowed from Titan's approach to managing Metrics.- Author:
- Stephen Mallette (http://stephen.genoprime.com)
-
-
Enum Constant Summary
Enum Constants Enum Constant Description INSTANCE
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addConsoleReporter(long reportIntervalInMS)
Create aConsoleReporter
attached to theMetricsRegistry
.void
addCsvReporter(long reportIntervalInMS, String output)
Create aCsvReporter
attached to theMetricsRegistry
.void
addGangliaReporter(String groupOrHost, int port, String addressingMode, int ttl, Boolean protocol31, UUID hostUUID, String spoof, long reportIntervalInMS)
Create aGangliaReporter
attached to theMetricsRegistry
.void
addGraphiteReporter(String host, int port, String prefix, long reportIntervalInMS)
Create aGraphiteReporter
attached to theMetricsRegistry
.void
addJmxReporter(String domain, String agentId)
Create aJmxReporter
attached to theMetricsRegistry
.void
addSlf4jReporter(long reportIntervalInMS, String loggerName)
Create aSlf4jReporter
attached to theMetricsRegistry
.boolean
contains(String name)
com.codahale.metrics.Counter
getCounter(String name)
com.codahale.metrics.Counter
getCounter(String prefix, String... names)
int
getCounterSize()
<T> com.codahale.metrics.Gauge<T>
getGuage(com.codahale.metrics.Gauge<T> gauge, String name)
<T> com.codahale.metrics.Gauge<T>
getGuage(com.codahale.metrics.Gauge<T> gauge, String prefix, String... names)
com.codahale.metrics.Histogram
getHistogram(String name)
com.codahale.metrics.Histogram
getHistogram(String prefix, String... names)
com.codahale.metrics.Meter
getMeter(String name)
com.codahale.metrics.Meter
getMeter(String prefix, String... names)
com.codahale.metrics.MetricRegistry
getRegistry()
Return theMetricsRegistry
.com.codahale.metrics.Timer
getTimer(String name)
com.codahale.metrics.Timer
getTimer(String prefix, String... names)
void
registerGremlinScriptEngineMetrics(GremlinScriptEngine engine, String... prefix)
Registers metrics from aGremlinScriptEngine
.void
removeAllMetrics()
void
removeAllReporters()
Remove all reporters previously configured through theadd*
methods on this class.void
removeConsoleReporter()
Stop aConsoleReporter
previously created by a call toaddConsoleReporter(long)
and release it for GC.void
removeCsvReporter()
Stop aCsvReporter
previously created by a call toaddCsvReporter(long, String)
and release it for GC.void
removeGangliaReporter()
Stop aGangliaReporter
previously created by a call to addGangliaReporter(String, int, GMetric.UDPAddressingMode, int, Boolean, UUID, long) and release it for GC.void
removeGraphiteReporter()
Stop aGraphiteReporter
previously created by a call toaddGraphiteReporter(String, int, String, long)
and release it for GC.void
removeJmxReporter()
Stop aJmxReporter
previously created by a call toaddJmxReporter(String, String)
and release it for GC.void
removeSlf4jReporter()
Stop aSlf4jReporter
previously created by a call toaddSlf4jReporter(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.
-
-
-
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 nameNullPointerException
- if the argument is null
-
getRegistry
public com.codahale.metrics.MetricRegistry getRegistry()
Return theMetricsRegistry
.- Returns:
- the single
MetricRegistry
used for all of monitoring
-
addConsoleReporter
public void addConsoleReporter(long reportIntervalInMS)
Create aConsoleReporter
attached to theMetricsRegistry
.- Parameters:
reportIntervalInMS
- milliseconds to wait between dumping metrics to the console
-
removeConsoleReporter
public void removeConsoleReporter()
Stop aConsoleReporter
previously created by a call toaddConsoleReporter(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 aCsvReporter
attached to theMetricsRegistry
. Theoutput
argument must be non-null but need not exist. If it doesn't already exist, this method attempts to create it by callingFile.mkdirs()
.- Parameters:
reportIntervalInMS
- milliseconds to wait between dumping metrics to CSV files in the configured directoryoutput
- the path to a directory into which Metrics will periodically write CSV data
-
removeCsvReporter
public void removeCsvReporter()
Stop aCsvReporter
previously created by a call toaddCsvReporter(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 aJmxReporter
attached to theMetricsRegistry
. Ifdomain
oragentId
is null, then Metrics's uses its own internal default value(s). IfagentId
is non-null, then MBeanServerFactory#findMBeanServer(agentId) must return exactly oneMBeanServer
. The reporter will register with that server. If thefindMBeanServer(agentId)
call returns no or multiple servers, then this method logs an error and falls back on the Metrics default foragentId
.- Parameters:
domain
- the JMX domain in which to continuously expose metricsagentId
- the JMX agent ID
-
removeJmxReporter
public void removeJmxReporter()
Stop aJmxReporter
previously created by a call toaddJmxReporter(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 aSlf4jReporter
attached to theMetricsRegistry
. IfloggerName
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 loggerloggerName
- the name of the Slf4j logger that receives metrics
-
removeSlf4jReporter
public void removeSlf4jReporter()
Stop aSlf4jReporter
previously created by a call toaddSlf4jReporter(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 aGangliaReporter
attached to theMetricsRegistry
.groupOrHost
andaddressingMode
must be non-null. The remaining non-primitive arguments may be null. Ifprotocol31
is null, then true is assumed. Null values ofhostUUID
orspoof
are passed into theGMetric
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 sentport
- the port to which events are sentaddressingMode
- whether to send events with multicast or unicastttl
- multicast ttl (ignored for unicast)protocol31
- true to use Ganglia protocol version 3.1, false to use 3.0hostUUID
- uuid for the hostspoof
- override this machine's IP/hostname as it appears on the Ganglia serverreportIntervalInMS
- milliseconds to wait before sending data to the ganglia unicast host or multicast group- Throws:
IOException
- when aGMetric
can't be instantiated using the provided arguments
-
removeGangliaReporter
public void removeGangliaReporter()
Stop aGangliaReporter
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 aGraphiteReporter
attached to theMetricsRegistry
. Ifprefix
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 sentport
- the port to which Graphite reports are sentprefix
- the optional metrics prefixreportIntervalInMS
- milliseconds to wait between sending metrics to the configured Graphite host and port
-
removeGraphiteReporter
public void removeGraphiteReporter()
Stop aGraphiteReporter
previously created by a call toaddGraphiteReporter(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 theadd*
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)
-
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)
-
getTimer
public com.codahale.metrics.Timer getTimer(String name)
-
getHistogram
public com.codahale.metrics.Histogram getHistogram(String name)
-
registerGremlinScriptEngineMetrics
public void registerGremlinScriptEngineMetrics(GremlinScriptEngine engine, String... prefix)
Registers metrics from aGremlinScriptEngine
. At this point, this only works for theGremlinGroovyScriptEngine
as it is the only one that collects metrics at this point. As theGremlinScriptEngine
implementations achieve greater parity these metrics will get expanded.
-
-