Package

colossus

metrics

Permalink

package metrics

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. metrics
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Type Members

  1. trait ActorMetrics extends Actor with ActorLogging

    Permalink
  2. sealed trait AggregationType extends AnyRef

    Permalink
  3. class BaseHistogram extends AnyRef

    Permalink

    This is the actual histogram data structure.

    This is the actual histogram data structure. It knows nothing of tags or metrics

  4. type BaseMetricMap[T] = Map[MetricAddress, BaseValueMap[T]]

    Permalink
  5. type BaseValueMap[T] = Map[TagMap, T]

    Permalink
  6. class BasicCounter extends Counter

    Permalink
  7. class BasicGauge extends AnyRef

    Permalink
  8. class BasicRate extends AnyRef

    Permalink
  9. final case class BucketList(buckets: Vector[Int]) extends AnyVal with Product with Serializable

    Permalink
  10. trait Collection[L <: Locality] extends AnyRef

    Permalink
  11. case class CollectionContext(globalTags: TagMap, interval: FiniteDuration) extends Product with Serializable

    Permalink
  12. class Collector extends Actor with ActorMetrics

    Permalink
  13. case class CollectorConfig(intervals: Seq[FiniteDuration]) extends Product with Serializable

    Permalink

    This is passed to new event collectors in addition to their own config.

    This is passed to new event collectors in addition to their own config.

    TODO: we might want to include global tags in here as well, and remove them from CollectionContext. This would mean event collectors would be constructed with global tagsinstead of them being passed in during collection, but right now that basically already happens since the tags are passed in during the collection's construction and then it passes it to each collector

    intervals

    The aggregation intervals configured for the MetricSystem this collection belongs to

  14. class ConcreteGauge extends Gauge with LocalLocality with TickedCollector

    Permalink
  15. class ConcreteRate extends Rate with LocalLocality with TickedCollector

    Permalink
  16. trait Counter extends EventCollector

    Permalink
  17. case class CounterParams(address: MetricAddress) extends MetricParams[Counter, CounterParams] with Product with Serializable

    Permalink
  18. class DuplicateMetricException extends Exception

    Permalink
  19. trait EventCollector extends AnyRef

    Permalink
  20. class EventCollectorException extends Exception

    Permalink
  21. trait EventLocality[E <: EventCollector] extends AnyRef

    Permalink
  22. trait Gauge extends EventCollector

    Permalink
  23. case class GaugeParams(address: MetricAddress, expireAfter: Duration = 1.hour, expireTo: Option[Long] = None) extends MetricParams[Gauge, GaugeParams] with Product with Serializable

    Permalink
  24. trait Generator[C <: EventCollector, P] extends AnyRef

    Permalink

    This is a typeclass that is basically just an EventCollector factory.

  25. case class GroupBy(tags: Set[String], aggregationType: AggregationType) extends Product with Serializable

    Permalink
  26. trait Histogram extends EventCollector

    Permalink
  27. case class HistogramParams(address: MetricAddress, bucketRanges: BucketList = Histogram.defaultBucketRanges, percentiles: List[Double] = Histogram.defaultPercentiles, sampleRate: Double = 1.0, pruneEmpty: Boolean = false) extends MetricParams[Histogram, HistogramParams] with Product with Serializable

    Permalink
  28. class IntervalAggregator extends Actor with ActorLogging

    Permalink
  29. class LocalCollection extends Collection[LocalLocality]

    Permalink

    A Local collection is designed only to be used inside an actor or otherwise thread-safe environment.

    A Local collection is designed only to be used inside an actor or otherwise thread-safe environment. Notice that even though the collection we're storing the event collectors is thread-safe, the collectors themselves are not. The collector actor must be the actor receiving events for metrics in the map

    note - this is not intended to be directly constructed by users

  30. class LocalCounter extends BasicCounter with LocalLocality

    Permalink
  31. trait LocalLocality extends Locality with MetricProducer

    Permalink
  32. sealed trait Locality extends AnyRef

    Permalink
  33. class LoggerSender extends MetricSender

    Permalink
  34. class LoggerSenderActor extends Actor with ActorLogging with MetricsLogger

    Permalink

    Simple sender that just prints the stats to the log

  35. case class MetricAddress(components: List[String]) extends Product with Serializable

    Permalink
  36. trait MetricEvent extends AnyRef

    Permalink
  37. trait MetricFormatter[T] extends AnyRef

    Permalink
  38. case class MetricFragment(address: MetricAddress, tags: TagMap, value: RawMetricValue) extends Product with Serializable

    Permalink
  39. class MetricInterval extends AnyRef

    Permalink
  40. type MetricMap = Map[MetricAddress, BaseValueMap[MetricValue]]

    Permalink
  41. trait MetricParams[E <: EventCollector, T] extends AnyRef

    Permalink

    Since we are basically requiring every EventCollector to be constructed with a single parameter (which should be a case class), this trait is required to be extended by that parameter.

    Since we are basically requiring every EventCollector to be constructed with a single parameter (which should be a case class), this trait is required to be extended by that parameter. The type parameter exists solely for the purpose of type inference, so we can do getOrAdd(Rate(...)), and simply by supplying the Rate (which returns a RateParams, which extends MetricParams[Rate]), the method can infer that it should be returning a Rate

  42. trait MetricProducer extends AnyRef

    Permalink

    Anything that eventually expands to a set of raw stats extends this

  43. class MetricReporter extends Actor with ActorLogging

    Permalink
  44. case class MetricReporterConfig(metricAddress: MetricAddress, metricSenders: Seq[MetricSender], globalTags: Option[TagGenerator] = None, filters: MetricReporterFilter = MetricReporterFilter.All, includeHostInGlobalTags: Boolean = true) extends Product with Serializable

    Permalink

    Configuration class for the metric reporter

    Configuration class for the metric reporter

    metricAddress

    The MetricAddress of the MetricSystem that this reporter is a member

    metricSenders

    A list of MetricSender instances that the reporter will use to send metrics

  45. sealed trait MetricReporterFilter extends AnyRef

    Permalink

    Tells a MetricReporter how to filter its Metrics before handing off to a Sender.

  46. trait MetricSender extends AnyRef

    Permalink
  47. case class MetricSystem extends Product with Serializable

    Permalink

    The MetricSystem is a set of actors which handle the background operations of dealing with metrics.

    The MetricSystem is a set of actors which handle the background operations of dealing with metrics. In most cases, you only want to have one MetricSystem per application.

    Metrics are generated periodically by a Tick message published on the global event bus. By default this happens once per second, but it can be configured to any time interval. So while events are being collected as they occur, compiled metrics (such as rates and histogram percentiles) are generated once per tick.

  48. case class MetricSystemConfig(tickPeriod: FiniteDuration = 1.second) extends Product with Serializable

    Permalink
  49. trait MetricValue extends AnyRef

    Permalink

    The base trait for any exported value from an event collector

    The base trait for any exported value from an event collector

    This requires that every matric value is a semi-group (associative + operation), however they should really be monoids (semi-group with a zero value). Unfortunately this cannot be enforced by this trait since these are passed in actor messages and must be monomorphic

  50. case class MetricValueFilter(filter: Option[TagSelector], aggregate: Option[GroupBy]) extends Product with Serializable

    Permalink
  51. case class OpenTsdbSender(host: String, port: Int) extends MetricSender with Product with Serializable

    Permalink
  52. class OpenTsdbSenderActor extends Actor with ActorLogging with MetricsLogger

    Permalink
  53. class OpenTsdbWatchdog extends Actor with ActorLogging

    Permalink
  54. class PeriodicHistogram extends Histogram with TickedCollector with LocalLocality

    Permalink

    A periodic histogram multiplexes a histogram into several with different periods of resetting

    A periodic histogram multiplexes a histogram into several with different periods of resetting

    Ticks are controlled externally so we can ensure that we get a complete set of data before resetting the hists

  55. trait Rate extends EventCollector

    Permalink
  56. case class RateParams(address: MetricAddress, pruneEmpty: Boolean) extends MetricParams[Rate, RateParams] with Product with Serializable

    Permalink
  57. type RawMetricMap = Map[MetricAddress, BaseValueMap[RawMetricValue]]

    Permalink
  58. type RawMetricValue = Long

    Permalink
  59. type RawValueMap = Map[TagMap, RawMetricValue]

    Permalink
  60. implicit final class RichMetricMap extends AnyVal

    Permalink
  61. implicit final class RichRawMetricMap extends AnyVal

    Permalink
  62. implicit final class RichRawValueMap extends AnyVal

    Permalink
  63. implicit final class RichTagMap extends AnyVal

    Permalink
  64. implicit final class RichValueMap extends AnyVal

    Permalink
  65. class SharedCollection extends Collection[SharedLocality]

    Permalink

    A Shared collection is a collection where every metric it returns is completely thread-safe.

    A Shared collection is a collection where every metric it returns is completely thread-safe. A Shared collection is useful if you want to pass one collection to many actors, but be aware that since every event is sent as a separate actor message (as opposed to local collections which collect events just as function calls), this should not be used for very-high frequency events.

  66. class SharedCounter extends Counter with SharedLocality

    Permalink
  67. class SharedGauge extends Gauge with SharedLocality

    Permalink
  68. class SharedHistogram extends Histogram with SharedLocality

    Permalink
  69. trait SharedLocality extends Locality

    Permalink
  70. class SharedRate extends Rate with SharedLocality

    Permalink

    Notice - the SharedRate is just a front for sending actor messages.

    Notice - the SharedRate is just a front for sending actor messages. The collector must be the actor that actually has access to the concrete rate, where is should call it's "event" method when it receives this message

  71. case class Snapshot(min: Int, max: Int, count: Int, percentiles: Map[Double, Int]) extends Product with Serializable

    Permalink
  72. class SystemMetricsCollector extends AnyRef

    Permalink
  73. trait TagGenerator extends AnyRef

    Permalink
  74. type TagMap = Map[String, String]

    Permalink
  75. case class TagSelector(tags: Map[String, Seq[String]]) extends Product with Serializable

    Permalink

    Used to select one or more values on one or more tags

    Used to select one or more values on one or more tags

    eg. Suppose we have a metric "foo" with a tag named "bar" with values "A", "B", "C". We can pass a selector "foo" -> ["A", "B"] to indicate we wish to select values on the metric where "foo" is "A" or "B"

  76. class TaggedHistogram extends AnyRef

    Permalink
  77. trait TickedCollector extends EventCollector

    Permalink
  78. type ValueMap = Map[TagMap, MetricValue]

    Permalink

Value Members

  1. object AggregationType

    Permalink

    An aggregation type defined how several values for the same metric (each with different tags) get merged into one value.

    An aggregation type defined how several values for the same metric (each with different tags) get merged into one value. Notice that these only get called when there is at least one value to aggregate. The Natural type uses the + operation defined on the MetricValue

  2. object Collection

    Permalink
  3. object Counter

    Permalink
  4. object EventLocality

    Permalink
  5. object Gauge

    Permalink
  6. object Histogram

    Permalink

    A Basic log-scale histogram, mainly designed to measure latency

    A Basic log-scale histogram, mainly designed to measure latency

    Each bucket handles an increasingly large range of values from 0 to MAX_INT.

  7. object IntervalAggregator

    Permalink
  8. object LocalCollection

    Permalink
  9. object LoggerSender extends MetricSender

    Permalink
  10. object MetricAddress extends Serializable

    Permalink
  11. object MetricMap

    Permalink
  12. object MetricReporter

    Permalink
  13. object MetricReporterFilter

    Permalink
  14. object MetricSender

    Permalink
  15. object MetricSystem extends Serializable

    Permalink
  16. object MetricValueFilter extends Serializable

    Permalink
  17. object MetricValues

    Permalink
  18. object OpenTsdbFormatter extends MetricFormatter[String]

    Permalink
  19. object OpenTsdbWatchdog

    Permalink
  20. object PeriodicHistogram

    Permalink
  21. object Rate

    Permalink
  22. object RawMetricMap

    Permalink
  23. object SharedCollection

    Permalink
  24. object Snapshot extends Serializable

    Permalink
  25. object TagMap

    Permalink
  26. object TagSelector extends Serializable

    Permalink
  27. object ValueMap

    Permalink
  28. package senders

    Permalink
  29. package testkit

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped