本文整理汇总了Scala中com.codahale.metrics.ConsoleReporter类的典型用法代码示例。如果您正苦于以下问题:Scala ConsoleReporter类的具体用法?Scala ConsoleReporter怎么用?Scala ConsoleReporter使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ConsoleReporter类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。
示例1: CustomDirectivesServer
//设置package包名称以及导入依赖的类
package com.packt.chapter9
import java.util.concurrent.TimeUnit
import akka.http.scaladsl.server.Directives._
import akka.http.scaladsl.server.HttpApp
import akka.http.scaladsl.settings.ServerSettings
import com.codahale.metrics.{ConsoleReporter, MetricRegistry}
import com.typesafe.config.ConfigFactory
object CustomDirectivesServer extends HttpApp with MetricDirectives {
private val metricRegistry = new MetricRegistry()
ConsoleReporter.forRegistry(metricRegistry).build().start(10, TimeUnit.SECONDS)
val route =
timer(metricRegistry) {
get {
complete { Thread.sleep(200); "Hello from GET!" }
} ~
post {
complete { Thread.sleep(500); "Hello from POST!" }
} ~
put {
meter(metricRegistry) {
complete { "Hello from PUT!" }
}
}
}
}
object CustomDirectivesApplication extends App {
CustomDirectivesServer.startServer("0.0.0.0", 8088, ServerSettings(ConfigFactory.load))
}
示例2: ConsoleReporterLoader
//设置package包名称以及导入依赖的类
package eu.inn.metrics.loaders
import java.util.concurrent.TimeUnit
import com.codahale.metrics.{ConsoleReporter, MetricRegistry}
import scaldi.{Injectable, Injector}
import scala.concurrent.duration.Duration
class ConsoleReporterLoader(period: Duration)
(implicit injector: Injector) extends MetricsReporterLoader with Injectable {
lazy val consoleReporter = {
ConsoleReporter.forRegistry(inject[MetricRegistry]).build()
}
override def run(): Unit = {
if (period.isFinite) {
consoleReporter.start(period.toMillis, TimeUnit.MILLISECONDS)
} else {
consoleReporter.hashCode() //instantiate lazy val
}
}
}
示例3: ConsoleReporterFactory
//设置package包名称以及导入依赖的类
package de.khamrakulov.play.metrics.console
import java.time.ZoneId
import java.util.TimeZone
import com.codahale.metrics.{ConsoleReporter, MetricRegistry}
import com.wix.accord._
import com.wix.accord.dsl._
import de.khamrakulov.play.metrics.{MetricReporter, ReporterConfig, ReporterFactory}
import play.api.{Configuration, Logger}
import scala.concurrent.duration._
object ConsoleReporterFactory extends ReporterFactory[ConsoleReporterConfig] {
private val logger = Logger(classOf[ConsoleReporterConfig])
private implicit val consoleReporterConfigValidator = validator[ConsoleReporterConfig] { c =>
c.durationUnit is notNull
c.rateUnit is notNull
c.frequency is notNull
c.timeZone is notNull
c.output is in("stdout", "stderr")
}
override def apply(registry: MetricRegistry, conf: Configuration): Option[MetricReporter] = {
val c = config(conf)
validate(c) match {
case Success =>
val reporter = ConsoleReporter
.forRegistry(registry)
.convertDurationsTo(c.durationUnit)
.convertRatesTo(c.rateUnit)
.formattedFor(TimeZone.getTimeZone(c.timeZone))
.build()
Some(MetricReporter(
() => reporter.start(c.frequency.length, c.frequency.unit),
() => reporter.stop()
))
case Failure(violations) =>
violations.foreach { v => logger.error(s"${v.description} ${v.constraint}") }
None
}
}
override def config(conf: Configuration): ConsoleReporterConfig = {
val durationUnit = timeUnits.getOrElse(conf.getString("durationUnit").getOrElse("milliseconds"), MILLISECONDS)
val rateUnit = timeUnits.getOrElse(conf.getString("rateUnit").getOrElse("seconds"), SECONDS)
val frequency = Duration(conf.getString("frequency").getOrElse("1 minute"))
val timeZone = ZoneId.of(conf.getString("timeZone").getOrElse("UTC"))
val output = conf.getString("output").getOrElse("stdout")
ConsoleReporterConfig(durationUnit, rateUnit, frequency, timeZone, output)
}
}