Package

com.twitter.finagle

stats

Permalink

package stats

Visibility
  1. Public
  2. All

Type Members

  1. abstract class AbstractStatsReceiver extends StatsReceiver

    Permalink
  2. case class BucketAndCount(lowerLimit: Long, upperLimit: Long, count: Int) extends Product with Serializable

    Permalink

    Buckets consist of a lower limit and an upper limit.

    Buckets consist of a lower limit and an upper limit. In histograms, all values that fall inside these limits are counted as the same.

    The lower limit is inclusive and the upper limit is exclusive

    count

    number of data points which landed in that bucket.

  3. class CategorizingExceptionStatsHandler extends ExceptionStatsHandler

    Permalink

    Basic implementation of exception stat recording that allows exceptions to be categorised and optional rollup.

  4. trait CollisionTrackingStatsReceiver extends AnyRef

    Permalink

    A StatsReceiver that provides a linting rule to track metrics that have different underlying names, yet are exported under the same name.

  5. trait Counter extends AnyRef

    Permalink

    A writeable Counter.

    A writeable Counter. Only sums are kept of Counters. An example Counter is "number of requests served".

  6. case class CounterSchema(metricBuilder: MetricBuilder) extends MetricSchema with Product with Serializable

    Permalink

    Represents a counter with its assorted metadata.

  7. case class CustomUnit(name: String) extends MetricUnit with Product with Serializable

    Permalink
  8. trait DelegatingStatsReceiver extends AnyRef

    Permalink

    Should be mixed into StatsReceivers that delegate to other StatsReceivers.

  9. class DenylistStatsReceiver extends StatsReceiverProxy

    Permalink

    A denylisting StatsReceiver.

    A denylisting StatsReceiver. If the name for a metric is found to be denylisted, nothing is recorded.

  10. trait ExceptionStatsHandler extends AnyRef

    Permalink

    Exception Stats Recorder.

  11. trait Gauge extends AnyRef

    Permalink

    Exposes the value of a function.

    Exposes the value of a function. For example, one could add a gauge for a computed health metric.

  12. case class GaugeSchema extends MetricSchema with Product with Serializable

    Permalink

    Represents a gauge with its assorted metadata.

  13. trait HistogramDetail extends AnyRef

    Permalink

    Details of a histogram's data points.

  14. case class HistogramSchema extends MetricSchema with Product with Serializable

    Permalink

    Represents a histogram with its assorted metadata.

  15. class InMemoryStatsReceiver extends StatsReceiver with WithHistogramDetails

    Permalink

    An in-memory implementation of StatsReceiver, which is mostly used for testing.

    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
  16. final class LazyStatsReceiver extends StatsReceiverProxy

    Permalink

    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.

    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.

  17. class MetricBuilder extends AnyRef

    Permalink

    A builder class used to configure settings and metadata for metrics prior to instantiating them.

    A builder class used to configure settings and metadata for metrics prior to instantiating them. Calling any of the three build methods (counter, gauge, or histogram) will cause the metric to be instantiated in the underlying StatsReceiver.

  18. sealed abstract class MetricSchema extends AnyRef

    Permalink

    This trait represents a metric with the full set of its metadata.

  19. sealed trait MetricUnit extends AnyRef

    Permalink

    Represents the units this metric is measured in.

    Represents the units this metric is measured in.

    Common units for metrics are: Bytes/Kilobytes/Megabytes (for payload size, data written to disk) Milliseconds (for latency, GC durations) Requests (for successes, failures, and requests) Percentage (for CPU Util, Memory Usage)

  20. abstract class NameTranslatingStatsReceiver extends StatsReceiverProxy

    Permalink

    A StatsReceiver receiver proxy that translates all counter, stat, and gauge names according to a translate function.

  21. class NullStatsReceiver extends StatsReceiver

    Permalink

    A no-op StatsReceiver.

    A no-op StatsReceiver. Metrics are not recorded, making this receiver useful in unit tests and as defaults in situations where metrics are not strictly required.

  22. trait ReadableCounter extends Counter

    Permalink

    A variation of Counter that also supports reading of the current value via the apply method.

  23. trait ReadableStat extends Stat

    Permalink

    A variation of Stat that also supports reading of the current time series via the apply method.

  24. class RollupStatsReceiver extends StatsReceiverProxy

    Permalink

    A RollupStatsReceiver reports stats on multiple Counter/Stat/Gauge based on the sequence of names you pass.

    A RollupStatsReceiver reports stats on multiple Counter/Stat/Gauge based on the sequence of names you pass. e.g. counter("errors", "clientErrors", "java_net_ConnectException").incr() will actually increment those three counters: - "/errors" - "/errors/clientErrors" - "/errors/clientErrors/java_net_ConnectException"

  25. sealed trait SourceRole extends AnyRef

    Permalink

    Represents the "role" this service plays with respect to this metric.

    Represents the "role" this service plays with respect to this metric.

    Usually either Server (the service is processing a request) or Client (the server has sent a request to another service). In many cases, there is no relevant role for a metric, in which case NoRole should be used.

  26. trait Stat extends AnyRef

    Permalink

    An append-only collection of time-series data.

    An append-only collection of time-series data. Example Stats are "queue depth" or "query width in a stream of requests".

    Utilities for timing synchronous execution and asynchronous execution are on the companion object (Stat.time(Stat) and Stat.timeFuture(Stat).

  27. trait StatsReceiver extends AnyRef

    Permalink

    An interface for recording metrics.

    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.

  28. trait StatsReceiverProxy extends StatsReceiver with DelegatingStatsReceiver

    Permalink

    A proxy StatsReceiver that delegates all calls to the self stats receiver.

  29. trait StatsReceiverWithCumulativeGauges extends StatsReceiver

    Permalink
  30. final class Verbosity extends AnyRef

    Permalink

    Represent a verbosity level for a given metric.

  31. class VerbosityAdjustingStatsReceiver extends StatsReceiverProxy

    Permalink

    A StatsReceiver that adjusts the passed Verbosity of an underlying stats receiver to a given defaultVerbosity.

  32. trait WithHistogramDetails extends AnyRef

    Permalink

    Allow StatsReceivers to provide snapshots of histogram counts.

    Allow StatsReceivers to provide snapshots of histogram counts. Implementations must expose a map where keys are the name of the stat and values are the contents of the histogram.

Value Members

  1. object AggregateWithHistogramDetails

    Permalink
  2. object BroadcastCounter

    Permalink

    BroadcastCounter is a helper object that create a Counter wrapper around multiple Counters (n).

    BroadcastCounter is a helper object that create a Counter wrapper around multiple Counters (n). For performance reason, we have specialized cases if n == (0, 1, 2, 3 or 4)

  3. object BroadcastStat

    Permalink

    BroadcastStat is a helper object that create a Counter wrapper around multiple Stats (n).

    BroadcastStat is a helper object that create a Counter wrapper around multiple Stats (n). For performance reason, we have specialized cases if n == (0, 1, 2, 3 or 4)

  4. object BroadcastStatsReceiver

    Permalink

    BroadcastStatsReceiver is a helper object that create a StatsReceiver wrapper around multiple StatsReceivers (n).

  5. object Bytes extends MetricUnit with Product with Serializable

    Permalink
  6. object Client extends SourceRole with Product with Serializable

    Permalink
  7. object DelegatingStatsReceiver

    Permalink
  8. object ExceptionStatsHandler

    Permalink

    API for deciding where request exceptions are reported in stats.

    API for deciding where request exceptions are reported in stats. Typical implementations may report any cancellations or validation errors separately so success rate can from valid non cancelled requests.

    See also

    Null for a no-op handler.

  9. object InMemoryStatsReceiver

    Permalink
  10. object JStats

    Permalink

    Stat utility methods for ease of use from java.

  11. object Kilobytes extends MetricUnit with Product with Serializable

    Permalink
  12. object Megabytes extends MetricUnit with Product with Serializable

    Permalink
  13. object Microseconds extends MetricUnit with Product with Serializable

    Permalink
  14. object Milliseconds extends MetricUnit with Product with Serializable

    Permalink
  15. object NoRoleSpecified extends SourceRole with Product with Serializable

    Permalink
  16. object NullStatsReceiver extends NullStatsReceiver

    Permalink
  17. object Percentage extends MetricUnit with Product with Serializable

    Permalink
  18. object Requests extends MetricUnit with Product with Serializable

    Permalink
  19. object Seconds extends MetricUnit with Product with Serializable

    Permalink
  20. object Server extends SourceRole with Product with Serializable

    Permalink
  21. object Stat

    Permalink

    Helpers for working with histograms.

    Helpers for working with histograms.

    Java-friendly versions can be found in com.twitter.finagle.stats.JStats.

  22. object StatsReceiver

    Permalink
  23. object Unspecified extends MetricUnit with Product with Serializable

    Permalink
  24. object Verbosity

    Permalink

Deprecated Value Members

  1. object StatsReceivers

    Permalink

    StatsReceiver utility methods for ease of use from java.

    StatsReceiver utility methods for ease of use from java.

    Annotations
    @deprecated
    Deprecated

    (Since version 2020-06-10) Use StatsReceiver addGauge and provideGauge methods directly

Ungrouped