aboutsummaryrefslogtreecommitdiff
path: root/kamon-newrelic/src/main/scala/kamon/newrelic/Agent.scala
diff options
context:
space:
mode:
authorDiego Parra <diegolparra@gmail.com>2013-11-26 15:54:10 -0300
committerDiego Parra <diegolparra@gmail.com>2013-11-26 15:54:10 -0300
commit5e0b032bfef9509e64af2960452aed44b6e6cb22 (patch)
tree464573c5093b966eaddc65b52244bb1b50c03857 /kamon-newrelic/src/main/scala/kamon/newrelic/Agent.scala
parentdad8547a63d65a5b929346310d53ba2ab45d615c (diff)
downloadKamon-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.scala42
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)