public class Metrics extends Object
The metrics exposed by this class use the Metrics library and you should refer its documentation for details on how to handle the exposed metric objects.
By default, metrics are exposed through JMX, which is very useful for development and browsing, but for production environments you may want to have a look at the reporters provided by the Metrics library which could be more efficient/adapted.
Modifier and Type | Class and Description |
---|---|
class |
Metrics.Errors
Metrics on errors encountered.
|
Modifier and Type | Method and Description |
---|---|
com.codahale.metrics.Gauge<Integer> |
getBlockingExecutorQueueDepth() |
com.codahale.metrics.Gauge<Integer> |
getConnectedToHosts()
Returns the number of Cassandra hosts the driver is currently connected to
(that is have at least one connection opened to).
|
Metrics.Errors |
getErrorMetrics()
Returns an object grouping metrics related to the errors encountered.
|
com.codahale.metrics.Gauge<Integer> |
getExecutorQueueDepth() |
com.codahale.metrics.Gauge<Integer> |
getKnownHosts()
Returns the number of Cassandra hosts currently known by the driver (that is
whether they are currently considered up or down).
|
com.codahale.metrics.Gauge<Integer> |
getOpenConnections()
Returns the total number of currently opened connections to Cassandra hosts.
|
com.codahale.metrics.Gauge<Integer> |
getReconnectionSchedulerQueueSize() |
com.codahale.metrics.MetricRegistry |
getRegistry()
Returns the registry containing all metrics.
|
com.codahale.metrics.Timer |
getRequestsTimer()
Returns metrics on the user requests performed on the Cluster.
|
com.codahale.metrics.Gauge<Integer> |
getTaskSchedulerQueueSize() |
com.codahale.metrics.Gauge<Integer> |
getTrashedConnections()
Returns the total number of currently "trashed" connections to Cassandra hosts.
|
public com.codahale.metrics.MetricRegistry getRegistry()
The metrics registry allows you to easily use the reporters that ship with Metrics or a custom written one.
For instance, if metrics
is this
object, you could export the
metrics to csv files using:
com.codahale.metrics.CsvReporter.forRegistry(metrics.getRegistry()).build(new File("measurements/")).start(1, TimeUnit.SECONDS);
If you already have a MetricRegistry
in your application and wish to
add the driver's metrics to it, the recommended approach is to use a listener:
// Your existing registry: final com.codahale.metrics.MetricRegistry myRegistry = ... cluster.getMetrics().getRegistry().addListener(new com.codahale.metrics.MetricRegistryListener() { @Override public void onGaugeAdded(String name, Gauge<?> gauge) { if (myRegistry.getNames().contains(name)) { // name is already taken, maybe prefix with a namespace ... } else { myRegistry.register(name, gauge); } } ... // Implement other methods in a similar fashion });Since reporting is handled by your registry, you'll probably also want to disable JMX reporting with
Cluster.Builder.withoutJMXReporting()
.public com.codahale.metrics.Timer getRequestsTimer()
This metric exposes
Timer
metric object exposing the rate and latency for
user requests.public Metrics.Errors getErrorMetrics()
public com.codahale.metrics.Gauge<Integer> getKnownHosts()
public com.codahale.metrics.Gauge<Integer> getConnectedToHosts()
public com.codahale.metrics.Gauge<Integer> getOpenConnections()
public com.codahale.metrics.Gauge<Integer> getTrashedConnections()
When the load to a host decreases, the driver will reclaim some connections in order to save
resources. No requests are sent to these connections anymore, but they are kept open for an
additional amount of time (PoolingOptions.getIdleTimeoutSeconds()
), in case the load
goes up again. This metric counts connections in that state.
public com.codahale.metrics.Gauge<Integer> getExecutorQueueDepth()
public com.codahale.metrics.Gauge<Integer> getBlockingExecutorQueueDepth()
public com.codahale.metrics.Gauge<Integer> getReconnectionSchedulerQueueSize()
public com.codahale.metrics.Gauge<Integer> getTaskSchedulerQueueSize()
Copyright © 2012–2015. All rights reserved.