All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.twitter.finagle.stats.BlacklistStatsReceiver.scala Maven / Gradle / Ivy

The newest version!
package com.twitter.finagle.stats

/**
 * A blacklisting [[StatsReceiver]].  If the name for a metric is found to be
 * blacklisted, nothing is recorded.
 *
 * @param underlying: a base [[StatsReceiver]], used for metrics that aren't
 *        blacklisted
 * @param blacklisted: a predicate that reads a name and returns true to
 *        blacklist, and false to let it pass through
 */
class BlacklistStatsReceiver(
    self: StatsReceiver,
    blacklisted: Seq[String] => Boolean)
  extends StatsReceiver
  with DelegatingStatsReceiver {

  val repr = self.repr
  override def isNull = self.isNull

  def counter(name: String*): Counter = getStatsReceiver(name).counter(name: _*)

  def stat(name: String*): Stat = getStatsReceiver(name).stat(name: _*)

  def addGauge(name: String*)(f: => Float): Gauge = getStatsReceiver(name).addGauge(name: _*)(f)

  private[this] def getStatsReceiver(name: Seq[String]): StatsReceiver =
    if (blacklisted(name)) NullStatsReceiver else self

  override def toString: String =
    s"BlacklistStatsReceiver($self)"

  def underlying: Seq[StatsReceiver] = Seq(self)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy