final class LazyStatsReceiver extends StatsReceiverProxy
Wraps an underlying StatsReceiver to ensure that derived counters and
stats will not start exporting metrics until incr
or add
is first called
on them.
This should be used when integrating with tools that create metrics eagerly, but you don't know whether you're going to actually use those metrics or not. One example might be if you're speaking to a remote peer that exposes many endpoints, and you eagerly create metrics for all of those endpoints, but aren't going to use all of the different methods.
We don't apply this very widely automatically--it can mess with caching, and adds an extra allocation when you construct a new counter or stat, so please be judicious when using it.
- Note
does not change the way gauges are used, since there isn't a way of modeling whether a gauge is "used" or not.
- Alphabetic
- By Inheritance
- LazyStatsReceiver
- StatsReceiverProxy
- DelegatingStatsReceiver
- StatsReceiver
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new LazyStatsReceiver(self: StatsReceiver)
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
addGauge(schema: GaugeSchema)(f: ⇒ Float): Gauge
Add the function
f
as a gauge with the given name.Add the function
f
as a gauge with the given name.The returned gauge value is only weakly referenced by the StatsReceiver, and if garbage collected will eventually cease to be a part of this measurement: thus, it needs to be retained by the caller. Or put another way, the measurement is only guaranteed to exist as long as there exists a strong reference to the returned gauge and typically should be stored in a member variable.
Measurements under the same name are added together.
- Definition Classes
- StatsReceiverProxy → StatsReceiver
- See also
provideGauge(String*)(=>Float) when there is not a good location to store the returned gauge that can give the desired lifecycle.
-
def
addGauge(f: Supplier[Float], verbosity: Verbosity, name: String*): Gauge
Just like addGauge(Verbosity,String*)(=>Float) but optimized for better Java experience.
Just like addGauge(Verbosity,String*)(=>Float) but optimized for better Java experience.
- Definition Classes
- StatsReceiver
- Annotations
- @varargs()
-
def
addGauge(f: Supplier[Float], name: String*): Gauge
Just like addGauge(String*)(=>Float) but optimized for better Java experience.
Just like addGauge(String*)(=>Float) but optimized for better Java experience.
- Definition Classes
- StatsReceiver
- Annotations
- @varargs()
-
def
addGauge(verbosity: Verbosity, name: String*)(f: ⇒ Float): Gauge
Add the function
f
as a gauge with the given name.Add the function
f
as a gauge with the given name.The returned gauge value is only weakly referenced by the StatsReceiver, and if garbage collected will eventually cease to be a part of this measurement: thus, it needs to be retained by the caller. Or put another way, the measurement is only guaranteed to exist as long as there exists a strong reference to the returned gauge and typically should be stored in a member variable.
Measurements under the same name are added together.
- Definition Classes
- StatsReceiver
- See also
provideGauge(String*)(=>Float) when there is not a good location to store the returned gauge that can give the desired lifecycle.
addGauge(Supplier[Float],Verbosity,String*) for a Java-friendly version.
-
def
addGauge(name: String*)(f: ⇒ Float): Gauge
Add the function
f
as a gauge with the given name.Add the function
f
as a gauge with the given name.The returned gauge value is only weakly referenced by the StatsReceiver, and if garbage collected will eventually cease to be a part of this measurement: thus, it needs to be retained by the caller. Or put another way, the measurement is only guaranteed to exist as long as there exists a strong reference to the returned gauge and typically should be stored in a member variable.
Measurements under the same name are added together.
- Definition Classes
- StatsReceiver
- See also
provideGauge(String*)(=>Float) when there is not a good location to store the returned gauge that can give the desired lifecycle.
addGauge(Supplier[Float],String*) for a Java-friendly version.
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
counter(schema: CounterSchema): Counter
Get a counter with the given schema.
Get a counter with the given schema.
- Definition Classes
- LazyStatsReceiver → StatsReceiverProxy → StatsReceiver
-
def
counter(verbosity: Verbosity, name: String*): Counter
Get a counter with the given
name
.Get a counter with the given
name
.- Definition Classes
- StatsReceiver
- Annotations
- @varargs()
-
def
counter(name: String*): Counter
Get a counter with the given
name
.Get a counter with the given
name
.- Definition Classes
- StatsReceiver
- Annotations
- @varargs()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isNull: Boolean
Accurately indicates if this is a NullStatsReceiver.
Accurately indicates if this is a NullStatsReceiver. Because equality is not forwarded via scala.Proxy, this is helpful to check for a NullStatsReceiver.
- Definition Classes
- StatsReceiverProxy → StatsReceiver
-
def
metricBuilder(): MetricBuilder
Get a metricBuilder for this StatsReceiver.
Get a metricBuilder for this StatsReceiver.
- Definition Classes
- StatsReceiver
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
provideGauge(f: Supplier[Float], name: String*): Unit
Just like provideGauge(String*)(=>Float) but optimized for better Java experience.
Just like provideGauge(String*)(=>Float) but optimized for better Java experience.
- Definition Classes
- StatsReceiver
- Annotations
- @varargs()
-
def
provideGauge(name: String*)(f: ⇒ Float): Unit
Register a function
f
as a gauge with the given name that has a lifecycle with no end.Register a function
f
as a gauge with the given name that has a lifecycle with no end.This measurement exists in perpetuity.
Measurements under the same name are added together.
- Definition Classes
- StatsReceiver
- See also
addGauge(String*)(=>Float) if you can properly control the lifecycle of the returned gauge.
provideGauge(Supplier[Float],String*) for a Java-friendly version.
-
def
repr: AnyRef
Specifies the representative receiver.
Specifies the representative receiver. This is in order to expose an object we can use for comparison so that global stats are only reported once per receiver.
- Definition Classes
- StatsReceiverProxy → StatsReceiver
-
final
def
scope(namespaces: String*): StatsReceiver
Prepend
namespace
andnamespaces
to the names of the returned StatsReceiver.Prepend
namespace
andnamespaces
to the names of the returned StatsReceiver.For example:
statsReceiver.scope("client", "backend", "pool").counter("adds")
will generate a counter named
/client/backend/pool/adds
.Note it's recommended to be mindful with usage of the
scope
method as it's almost always more efficient to pass a full metric name directly to a constructing method.Put this way, whenever possible prefer
statsReceiver.counter("client", "backend", "pool", "adds")
to
statsReceiver.scope("client", "backend", "pool").counter("adds")
- Definition Classes
- StatsReceiver
- Annotations
- @varargs()
-
def
scope(namespace: String): StatsReceiver
Prepend
namespace
to the names of the returned StatsReceiver.Prepend
namespace
to the names of the returned StatsReceiver.For example:
statsReceiver.scope("client").counter("adds") statsReceiver.scope("client").scope("backend").counter("adds")
will generate counters named
/client/adds
and/client/backend/adds
.Note it's recommended to be mindful with usage of the
scope
method as it's almost always more efficient to pass a full metric name directly to a constructing method.Put this way, whenever possible prefer
statsReceiver.counter("client", "adds")
to
statsReceiver.scope("client").counter("adds")
- Definition Classes
- StatsReceiver
-
def
scopeSuffix(suffix: String): StatsReceiver
Prepend a suffix value to the next scope.
Prepend a suffix value to the next scope.
For example:
statsReceiver.scopeSuffix("toto").scope("client").counter("adds")
will generate a counter named
/client/toto/adds
.- Definition Classes
- StatsReceiver
-
val
self: StatsReceiver
- Definition Classes
- LazyStatsReceiver → StatsReceiverProxy
-
def
stat(schema: HistogramSchema): Stat
Get a stat with the given schema.
Get a stat with the given schema.
- Definition Classes
- LazyStatsReceiver → StatsReceiverProxy → StatsReceiver
-
def
stat(verbosity: Verbosity, name: String*): Stat
Get a stat with the given name.
Get a stat with the given name.
- Definition Classes
- StatsReceiver
- Annotations
- @varargs()
-
def
stat(name: String*): Stat
Get a stat with the given name.
Get a stat with the given name.
- Definition Classes
- StatsReceiver
- Annotations
- @varargs()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- StatsReceiverProxy → AnyRef → Any
-
def
underlying: Seq[StatsReceiver]
The underlying StatsReceivers that the class delegates to.
The underlying StatsReceivers that the class delegates to.
Must be nonempty.
- Definition Classes
- StatsReceiverProxy → DelegatingStatsReceiver
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()