trait StatsReceiver extends AnyRef

An interface for recording metrics. Named Counters, Stats, and Gauges can be accessed through the corresponding methods of this class.

Verbosity Levels

Each metric created via a stats receiver has a verbosity level attached to it. Distinguishing verbosity levels for metrics is optional and is up to a concrete implementation. Doing this, however, helps to separate debug metrics (only helpful in troubleshooting) from their operationally-required counterparts (provide a corresponding degree of visibility into a healthy process) thus potentially reducing the observability cost.

Metrics created w/o an explicitly specified Verbosity level, will use Verbosity.Default. Use VerbosityAdjustingStatsReceiver to adjust this behaviour.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. StatsReceiver
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def addGauge(metricBuilder: MetricBuilder)(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.

    See also

    provideGauge(String*)(=>Float) when there is not a good location to store the returned gauge that can give the desired lifecycle.

    java.lang.ref.WeakReference

  2. abstract def counter(schema: MetricBuilder): Counter

    Get a counter with the given schema.

  3. abstract 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.

  4. abstract def stat(schema: MetricBuilder): Stat

    Get a stat with the given schema.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. 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.

    Annotations
    @varargs()
  5. 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.

    Annotations
    @varargs()
  6. 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.

  7. 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.

    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.

    java.lang.ref.WeakReference

  8. def addGauge(description: Some[String], name: String*)(f: => Float): Gauge

    Add the function f as a gauge with the given name and description.

  9. 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.

    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.

    java.lang.ref.WeakReference

  10. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  11. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  12. final def counter(description: String, verbosity: Verbosity, name: String*): Counter

    Get a counter with the given description and name.

    Get a counter with the given description and name.

    Annotations
    @varargs()
  13. final def counter(verbosity: Verbosity, name: String*): Counter

    Get a counter with the given name.

    Get a counter with the given name.

    Annotations
    @varargs()
  14. final def counter(description: Some[String], name: String*): Counter

    Get a counter with the given description and name.

    Get a counter with the given description and name.

    Annotations
    @varargs()
  15. def counter(name: String*): Counter

    Get a counter with the given name.

    Get a counter with the given name.

    Annotations
    @varargs()
  16. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  18. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  19. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  20. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  21. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  22. 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.

  23. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  24. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  25. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  26. 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.

    Annotations
    @varargs()
  27. 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.

    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.

  28. def registerExpression(expressionSchema: ExpressionSchema): Try[Unit]

    Register an ExpressionSchema.

    Register an ExpressionSchema.

    Implementations that support expressions should override this to consume expressions.

  29. final def scope(namespaces: String*): StatsReceiver

    Prepend namespace and namespaces to the names of the returned StatsReceiver.

    Prepend namespace and namespaces 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")
    Annotations
    @varargs()
  30. 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")
  31. 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.

  32. final def stat(description: String, verbosity: Verbosity, name: String*): Stat

    Get a stat with the given description and name.

    Get a stat with the given description and name.

    Annotations
    @varargs()
  33. final def stat(verbosity: Verbosity, name: String*): Stat

    Get a stat with the given name.

    Get a stat with the given name.

    Annotations
    @varargs()
  34. final def stat(description: Some[String], name: String*): Stat

    Get a stat with the given description and name.

    Get a stat with the given description and name.

    Annotations
    @varargs()
  35. def stat(name: String*): Stat

    Get a stat with the given name.

    Get a stat with the given name.

    Annotations
    @varargs()
  36. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  37. def toString(): String
    Definition Classes
    AnyRef → Any
  38. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  39. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  40. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Deprecated Value Members

  1. def metricBuilder(metricType: MetricType): MetricBuilder

    Get a metricBuilder for this StatsReceiver.

    Get a metricBuilder for this StatsReceiver.

    Annotations
    @deprecated
    Deprecated

    (Since version 2022-05-11) Construct a MetricBuilder using its apply method

Inherited from AnyRef

Inherited from Any

Ungrouped