libraryDependencies += "nl.grons" %% "metrics-scala" % "4.1.14"
scala
import com.codahale.metrics.{Counter, Timer}
import nl.grons.metrics.scala.DefaultInstrumented
class MyLibrary extends DefaultInstrumented {
private val counter: Counter = metrics.counter("my-counter")
private val timer: Timer = metrics.timer("my-timer")
def process(): Unit = {
counter.inc()
val context = timer.time()
try {
} finally {
context.stop()
}
}
}
scala
import java.util.concurrent.TimeUnit
import com.codahale.metrics.ConsoleReporter
object Main extends App {
val myLibrary = new MyLibrary()
val reporter = ConsoleReporter.forRegistry(myLibrary.metricRegistry)
.convertRatesTo(TimeUnit.SECONDS)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.build()
reporter.start(1, TimeUnit.SECONDS)
myLibrary.process()
reporter.stop()
}