scala
libraryDependencies += "io.dropwizard.metrics" % "metrics-core" % "4.1.5"
scala
import com.codahale.metrics.ConsoleReporter
import com.codahale.metrics.MetricRegistry
import com.codahale.metrics.Counter
import com.codahale.metrics.Timer
object ExampleApp {
val metrics = new MetricRegistry()
val requestsCounter: Counter = metrics.counter("requests")
val responseTimer: Timer = metrics.timer("response-time")
def main(args: Array[String]): Unit = {
val reporter = ConsoleReporter.forRegistry(metrics).build()
reporter.start(1, TimeUnit.SECONDS)
for (i <- 1 to 10) {
val context = responseTimer.time()
handleRequest()
context.stop()
requestsCounter.inc()
}
Thread.sleep(3000)
reporter.stop()
}
def handleRequest(): Unit = {
Thread.sleep(Random.nextInt(1000))
}
}