Package org.apache.bookkeeper.stats
Class CachingStatsLogger
- java.lang.Object
-
- org.apache.bookkeeper.stats.CachingStatsLogger
-
- All Implemented Interfaces:
StatsLogger
public class CachingStatsLogger extends java.lang.Object implements StatsLogger
AStatsLoggerthat caches the stats objects created by otherStatsLogger.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.concurrent.ConcurrentMap<java.lang.String,Counter>countersprotected java.util.concurrent.ConcurrentMap<java.lang.String,OpStatsLogger>opStatsLoggersprotected java.util.concurrent.ConcurrentMap<java.lang.String,StatsLogger>scopeStatsLoggersprotected StatsLoggerunderlying
-
Constructor Summary
Constructors Constructor Description CachingStatsLogger(StatsLogger statsLogger)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(java.lang.Object obj)CountergetCounter(java.lang.String name)OpStatsLoggergetOpStatsLogger(java.lang.String name)CountergetThreadScopedCounter(java.lang.String name)Thread-scoped stats not currently supported.OpStatsLoggergetThreadScopedOpStatsLogger(java.lang.String name)Thread-scoped stats not currently supported.inthashCode()<T extends java.lang.Number>
voidregisterGauge(java.lang.String name, Gauge<T> gauge)Register given gauge as name name.voidremoveScope(java.lang.String name, StatsLogger statsLogger)Remove the given statsLogger for scope name.StatsLoggerscope(java.lang.String name)Provide the stats logger under scope name.java.lang.StringtoString()<T extends java.lang.Number>
voidunregisterGauge(java.lang.String name, Gauge<T> gauge)Unregister given gauge from name name.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.bookkeeper.stats.StatsLogger
scopeLabel
-
-
-
-
Field Detail
-
underlying
protected final StatsLogger underlying
-
counters
protected final java.util.concurrent.ConcurrentMap<java.lang.String,Counter> counters
-
opStatsLoggers
protected final java.util.concurrent.ConcurrentMap<java.lang.String,OpStatsLogger> opStatsLoggers
-
scopeStatsLoggers
protected final java.util.concurrent.ConcurrentMap<java.lang.String,StatsLogger> scopeStatsLoggers
-
-
Constructor Detail
-
CachingStatsLogger
public CachingStatsLogger(StatsLogger statsLogger)
-
-
Method Detail
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
getOpStatsLogger
public OpStatsLogger getOpStatsLogger(java.lang.String name)
- Specified by:
getOpStatsLoggerin interfaceStatsLogger- Parameters:
name- Stats Name- Returns:
- Get the logger for an OpStat described by the name.
-
getCounter
public Counter getCounter(java.lang.String name)
- Specified by:
getCounterin interfaceStatsLogger- Parameters:
name- Stats Name- Returns:
- Get the logger for a simple stat described by the name
-
registerGauge
public <T extends java.lang.Number> void registerGauge(java.lang.String name, Gauge<T> gauge)Description copied from interface:StatsLoggerRegister given gauge as name name.- Specified by:
registerGaugein interfaceStatsLogger- Parameters:
name- gauge namegauge- gauge function
-
unregisterGauge
public <T extends java.lang.Number> void unregisterGauge(java.lang.String name, Gauge<T> gauge)Description copied from interface:StatsLoggerUnregister given gauge from name name.- Specified by:
unregisterGaugein interfaceStatsLogger- Parameters:
name- name of the gaugegauge- gauge function
-
scope
public StatsLogger scope(java.lang.String name)
Description copied from interface:StatsLoggerProvide the stats logger under scope name.- Specified by:
scopein interfaceStatsLogger- Parameters:
name- scope name.- Returns:
- stats logger under scope name.
-
removeScope
public void removeScope(java.lang.String name, StatsLogger statsLogger)Description copied from interface:StatsLoggerRemove the given statsLogger for scope name. It can be no-op if the underlying stats provider doesn't have the ability to remove scope.- Specified by:
removeScopein interfaceStatsLogger- Parameters:
name- name of the scopestatsLogger- the stats logger of this scope.
-
getThreadScopedOpStatsLogger
public OpStatsLogger getThreadScopedOpStatsLogger(java.lang.String name)
Thread-scoped stats not currently supported.- Specified by:
getThreadScopedOpStatsLoggerin interfaceStatsLogger- Parameters:
name- Stats Name- Returns:
- Get the logger for an OpStat described by the name with extra labels for the threadpool/threadname and thread no. Lone threads always have 0 as their thread no.
-
getThreadScopedCounter
public Counter getThreadScopedCounter(java.lang.String name)
Thread-scoped stats not currently supported.- Specified by:
getThreadScopedCounterin interfaceStatsLogger- Parameters:
name- Stats Name- Returns:
- Get the logger for a simple stat described by the name with extra labels for the threadpool/threadname and thread no. Lone threads always have 0 as their thread no.
-
-