scala
import com.codahale.metrics._
class ProductService {
val requestsCounter: Counter = Metrics.counter("requests")
val responseTimer: Timer = Metrics.timer("response-time")
def processRequest(request: Request): Response = {
val context: Timer.Context = responseTimer.time()
try {
requestsCounter.inc()
// ...
} finally {
context.stop()
}
}
}
object Metrics {
val registry: MetricRegistry = new MetricRegistry()
def counter(name: String): Counter = registry.counter(name)
def timer(name: String): Timer = registry.timer(name)
}
scala
import com.codahale.metrics._
object Main {
val reporter: ConsoleReporter = ConsoleReporter.forRegistry(Metrics.registry)
.convertRatesTo(TimeUnit.SECONDS)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.build()
def main(args: Array[String]): Unit = {
// ...
// ...
reporter.start(10, TimeUnit.SECONDS)
}
}