The mixin trait for creating a class which creates health checks.
A Scala facade class for DropwizardCounter.
Provides timing of future executions.
A Scala facade class for DropwizardGauge.
An alternative metric builder that creates Histograms and Timers with Reservoirs from the HdrHistogram library.
Magnet for the checker.
Magnet for the checker. See http://spray.io/blog/2012-12-13-the-magnet-pattern/.
A Scala facade class for DropwizardHistogram.
The mixin trait for creating a class which is instrumented with metrics.
The mixin trait for creating a class which is instrumented with metrics.
Use it as follows:
object Application { // The application wide metrics registry. val metricRegistry = new com.codahale.metrics.MetricRegistry() } trait Instrumented extends InstrumentedBuilder { val metricRegistry = Application.metricRegistry } class Example(db: Database) extends Instrumented { private[this] val loading = metrics.timer("loading") def loadStuff(): Seq[Row] = loading.time { db.fetchRows() } }
It is also possible to override the metric base name. For example:
class Example(db: Database) extends Instrumented { override lazy val metricBaseName = MetricName("Overridden.Base.Name") private[this] val loading = metrics.timer("loading") def loadStuff(): Seq[Row] = loading.time { db.fetchRows() } }
If you want to use hdrhistograms, you can override the metric builder as follows:
trait Instrumented extends InstrumentedBuilder { override lazy protected val metricBuilder = new HdrMetricBuilder(metricBaseName, metricRegistry, false) val metricRegistry = Application.metricRegistry }
See the the manual for more instructions on using hdrhistogram.
A Scala facade class for DropwizardMeter.
A Scala facade class for DropwizardMeter.
Example usage:
class Example(val db: Db) extends Instrumented { private[this] val rowsLoadedMeter = metrics.meter("rowsLoaded") def load(id: Long): Seq[Row] = { val rows = db.load(id) rowsLoaded.mark(rows.size) rows } }
Builds and registering metrics.
The (base)name of a metric.
The (base)name of a metric.
Constructed via the companion object, e.g. MetricName(getClass, "requests")
.
A Scala facade class for DropwizardTimer.
A Scala facade class for DropwizardTimer.
Example usage:
class Example(val db: Db) extends Instrumented { private[this] val loadTimer = metrics.timer("load") def load(id: Long) = loadTimer.time { db.load(id) } }
An alternative metric builder that creates Histograms and Timers with Reservoirs from the HdrHistogram library.
See the the manual for more instructions on using hdrhistogram.