当前位置: 首页>>代码示例>>Scala>>正文


Scala ConsoleReporter类代码示例

本文整理汇总了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))
} 
开发者ID:PacktPublishing,项目名称:Akka-Cookbook,代码行数:34,代码来源:CustomDirectivesApplication.scala

示例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
    }
  }
} 
开发者ID:InnovaCo,项目名称:service-metrics,代码行数:24,代码来源:ConsoleReporterLoader.scala

示例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)
  }
} 
开发者ID:htimur,项目名称:metrics-reporter-play,代码行数:58,代码来源:ConsoleReporterFactory.scala


注:本文中的com.codahale.metrics.ConsoleReporter类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。