class InMemoryStatsReceiver extends StatsReceiver with WithHistogramDetails
An in-memory implementation of StatsReceiver, which is mostly used for testing.
Note that an InMemoryStatsReceiver does not conflate Seq("a", "b")
and Seq("a/b")
names no matter how they look when printed.
val isr = new InMemoryStatsReceiver isr.counter("a", "b", "foo") isr.counter("a/b", "bar") isr.print(Console.out) // will print two lines "a/b/foo 0" and "a/b/bar 0" assert(isr.counters(Seq("a", "b", "foo") == 0)) // ok assert(isr.counters(Seq("a", "b", "bar") == 0)) // fail
- Alphabetic
- By Inheritance
- InMemoryStatsReceiver
- WithHistogramDetails
- StatsReceiver
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new InMemoryStatsReceiver()
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(metricBuilder: MetricBuilder)(f: => Float): Gauge
Creates a Gauge of the given
name
.Creates a Gauge of the given
name
.- Definition Classes
- InMemoryStatsReceiver → StatsReceiver
- final 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()
- final def addGauge(description: String, verbosity: Verbosity, name: String*)(f: => Float): Gauge
Add the function
f
as a gauge with the given name and description.Add the function
f
as a gauge with the given name and description.- Definition Classes
- StatsReceiver
- final 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(description: Some[String], name: String*)(f: => Float): Gauge
Add the function
f
as a gauge with the given name and description.Add the function
f
as a gauge with the given name and description.- Definition Classes
- StatsReceiver
- 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 clear(): Unit
Clears all registered counters, gauges, stats, expressions, and their metadata.
Clears all registered counters, gauges, stats, expressions, and their metadata.
- Note
this is not atomic. If new metrics are added while this method is executing, those metrics may remain.
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def counter(metricBuilder: MetricBuilder): ReadableCounter
Creates a ReadableCounter of the given
name
.Creates a ReadableCounter of the given
name
.- Definition Classes
- InMemoryStatsReceiver → StatsReceiver
- def counter(name: String*): ReadableCounter
Get a counter with the given
name
.Get a counter with the given
name
.- Definition Classes
- InMemoryStatsReceiver → StatsReceiver
- Annotations
- @varargs()
- final def counter(description: String, verbosity: Verbosity, name: String*): Counter
Get a counter with the given
description
andname
.Get a counter with the given
description
andname
.- Definition Classes
- StatsReceiver
- Annotations
- @varargs()
- final 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()
- final def counter(description: Some[String], name: String*): Counter
Get a counter with the given
description
andname
.Get a counter with the given
description
andname
.- Definition Classes
- StatsReceiver
- Annotations
- @varargs()
- val counters: Map[Seq[String], Long]
- val duplicatedMetrics: Map[Seq[String], Long]
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- val expressions: Map[ExpressionSchemaKey, ExpressionSchema]
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- val gauges: Map[Seq[String], () => Float]
- def getAllExpressionsWithLabel(key: String, value: String): Map[ExpressionSchemaKey, ExpressionSchema]
Retrieves all expressions with a given label key and value
Retrieves all expressions with a given label key and value
- returns
a Map of expressions (ExpressionSchemaKey -> ExpressionSchema)
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def histogramDetails: Map[String, HistogramDetail]
- Definition Classes
- InMemoryStatsReceiver → WithHistogramDetails
- 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
- 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 print(p: PrintStream, includeHeaders: Boolean): Unit
Dumps this in-memory stats receiver to the given
PrintStream
.Dumps this in-memory stats receiver to the given
PrintStream
.- p
the
PrintStream
to which to write in-memory values.- includeHeaders
optionally include printing underlines headers for the different types of stats printed, e.g., "Counters:", "Gauges:", "Stats;"
- def print(p: PrintStream): Unit
Dumps this in-memory stats receiver to the given
PrintStream
.Dumps this in-memory stats receiver to the given
PrintStream
.- p
the
PrintStream
to which to write in-memory values.
- def printSchemas(p: PrintStream): Unit
Dumps this in-memory stats receiver's MetricMetadata to the given
PrintStream
.Dumps this in-memory stats receiver's MetricMetadata to the given
PrintStream
.- p
the
PrintStream
to which to write in-memory metadata.
- 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 registerExpression(schema: ExpressionSchema): Try[Unit]
Designed to match the behavior of Metrics::registerExpression().
Designed to match the behavior of Metrics::registerExpression().
- Definition Classes
- InMemoryStatsReceiver → StatsReceiver
- def repr: InMemoryStatsReceiver
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
- InMemoryStatsReceiver → StatsReceiver
- val schemas: Map[Seq[String], MetricBuilder]
- 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
- def stat(metricBuilder: MetricBuilder): ReadableStat
Creates a ReadableStat of the given
name
.Creates a ReadableStat of the given
name
.- Definition Classes
- InMemoryStatsReceiver → StatsReceiver
- def stat(name: String*): ReadableStat
Get a stat with the given name.
Get a stat with the given name.
- Definition Classes
- InMemoryStatsReceiver → StatsReceiver
- Annotations
- @varargs()
- final def stat(description: String, verbosity: Verbosity, name: String*): Stat
Get a stat with the given
description
andname
.Get a stat with the given
description
andname
.- Definition Classes
- StatsReceiver
- Annotations
- @varargs()
- final 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()
- final def stat(description: Some[String], name: String*): Stat
Get a stat with the given
description
andname
.Get a stat with the given
description
andname
.- Definition Classes
- StatsReceiver
- Annotations
- @varargs()
- val stats: Map[Seq[String], Seq[Float]]
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- InMemoryStatsReceiver → AnyRef → Any
- val verbosity: Map[Seq[String], Verbosity]
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
Deprecated Value Members
- def metricBuilder(metricType: MetricType): MetricBuilder
Get a metricBuilder for this StatsReceiver.
Get a metricBuilder for this StatsReceiver.
- Definition Classes
- StatsReceiver
- Annotations
- @deprecated
- Deprecated
(Since version 2022-05-11) Construct a MetricBuilder using its apply method