diff options
author | Diego Parra <diegolparra@gmail.com> | 2013-11-26 15:54:10 -0300 |
---|---|---|
committer | Diego Parra <diegolparra@gmail.com> | 2013-11-26 15:54:10 -0300 |
commit | 5e0b032bfef9509e64af2960452aed44b6e6cb22 (patch) | |
tree | 464573c5093b966eaddc65b52244bb1b50c03857 /kamon-newrelic/src/main/scala/kamon/newrelic/Agent.scala | |
parent | dad8547a63d65a5b929346310d53ba2ab45d615c (diff) | |
download | Kamon-5e0b032bfef9509e64af2960452aed44b6e6cb22.tar.gz Kamon-5e0b032bfef9509e64af2960452aed44b6e6cb22.tar.bz2 Kamon-5e0b032bfef9509e64af2960452aed44b6e6cb22.zip |
added scalariform
Diffstat (limited to 'kamon-newrelic/src/main/scala/kamon/newrelic/Agent.scala')
-rw-r--r-- | kamon-newrelic/src/main/scala/kamon/newrelic/Agent.scala | 42 |
1 files changed, 17 insertions, 25 deletions
diff --git a/kamon-newrelic/src/main/scala/kamon/newrelic/Agent.scala b/kamon-newrelic/src/main/scala/kamon/newrelic/Agent.scala index 7c2b34ea..4082458c 100644 --- a/kamon-newrelic/src/main/scala/kamon/newrelic/Agent.scala +++ b/kamon-newrelic/src/main/scala/kamon/newrelic/Agent.scala @@ -15,10 +15,10 @@ * ========================================================== */ package kamon.newrelic -import akka.actor.{ActorLogging, Actor} +import akka.actor.{ ActorLogging, Actor } import spray.json._ import scala.concurrent.Future -import spray.httpx.{SprayJsonSupport, RequestBuilding, ResponseTransformation} +import spray.httpx.{ SprayJsonSupport, RequestBuilding, ResponseTransformation } import spray.httpx.encoding.Deflate import spray.http._ import spray.json.lenses.JsonLenses._ @@ -26,7 +26,7 @@ import akka.pattern.pipe import java.lang.management.ManagementFactory import spray.client.pipelining._ import scala.util.control.NonFatal -import kamon.newrelic.NewRelicMetric.{Data, ID, MetricBatch} +import kamon.newrelic.NewRelicMetric.{ Data, ID, MetricBatch } class Agent extends Actor with RequestBuilding with ResponseTransformation with SprayJsonSupport with ActorLogging { import context.dispatcher @@ -43,15 +43,12 @@ class Agent extends Actor with RequestBuilding with ResponseTransformation with AgentInfo(licenseKey, appName, runtimeName(1), runtimeName(0).toInt) } - - def receive = { - case Initialize(runId, collector) => context become reporting(runId, collector) + case Initialize(runId, collector) ⇒ context become reporting(runId, collector) } - def reporting(runId: Long, collector: String): Receive = { - case batch: MetricBatch => sendMetricData(runId, collector, batch.metrics) + case batch: MetricBatch ⇒ sendMetricData(runId, collector, batch.metrics) } override def preStart(): Unit = { @@ -60,26 +57,26 @@ class Agent extends Actor with RequestBuilding with ResponseTransformation with } def initialize: Unit = { - pipe ({ - for( - collector <- selectCollector; - runId <- connect(collector, agentInfo) - ) yield Initialize(runId, collector) - } recover { - case NonFatal(ex) => InitializationFailed(ex) - }) to self + pipe({ + for ( + collector ← selectCollector; + runId ← connect(collector, agentInfo) + ) yield Initialize(runId, collector) + } recover { + case NonFatal(ex) ⇒ InitializationFailed(ex) + }) to self } import AgentJsonProtocol._ - val compressedPipeline: HttpRequest => Future[HttpResponse] = encode(Deflate) ~> sendReceive - val compressedToJsonPipeline: HttpRequest => Future[JsValue] = compressedPipeline ~> toJson + val compressedPipeline: HttpRequest ⇒ Future[HttpResponse] = encode(Deflate) ~> sendReceive + val compressedToJsonPipeline: HttpRequest ⇒ Future[JsValue] = compressedPipeline ~> toJson def toJson(response: HttpResponse): JsValue = response.entity.asString.asJson def selectCollector: Future[String] = { compressedToJsonPipeline { Post(s"http://collector.newrelic.com/agent_listener/invoke_raw_method?method=get_redirect_host&license_key=${agentInfo.licenseKey}&marshal_format=json&protocol_version=12", JsArray()) - } map { json => + } map { json ⇒ json.extract[String]('return_value) } } @@ -87,12 +84,11 @@ class Agent extends Actor with RequestBuilding with ResponseTransformation with def connect(collectorHost: String, connect: AgentInfo): Future[Long] = { compressedToJsonPipeline { Post(s"http://$collectorHost/agent_listener/invoke_raw_method?method=connect&license_key=${agentInfo.licenseKey}&marshal_format=json&protocol_version=12", connect) - } map { json => + } map { json ⇒ json.extract[Long]('return_value / 'agent_run_id) } } - def sendMetricData(runId: Long, collector: String, metrics: List[(ID, Data)]) = { log.info("Reporting this to NewRelic: " + metrics.mkString("\n")) @@ -103,14 +99,10 @@ class Agent extends Actor with RequestBuilding with ResponseTransformation with } } - - } object Agent { - - case class Initialize(runId: Long, collector: String) case class InitializationFailed(reason: Throwable) case class CollectorSelection(return_value: String) |