aboutsummaryrefslogtreecommitdiff
path: root/kamon-newrelic/src/main/scala/kamon/newrelic/AgentJsonProtocol.scala
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2014-11-06 16:29:54 +0100
committerIvan Topolnjak <ivantopo@gmail.com>2014-11-09 18:01:35 +0100
commitf498749274bc9f25ede7221d6bd8b3f0c3822dda (patch)
tree9371eb98b88830b5c61619a29f53fd4d45040e71 /kamon-newrelic/src/main/scala/kamon/newrelic/AgentJsonProtocol.scala
parent6e3d9ae88ecce10420eeac82294c54c1b43dedf4 (diff)
downloadKamon-f498749274bc9f25ede7221d6bd8b3f0c3822dda.tar.gz
Kamon-f498749274bc9f25ede7221d6bd8b3f0c3822dda.tar.bz2
Kamon-f498749274bc9f25ede7221d6bd8b3f0c3822dda.zip
! newrelic: major refactor of the newrelic reporter
Most notable changes: - The agent connection setup is separated from the actual metrics reporting, this will be important in the near future when we start sending errors too. - The metrics subscriptions are delayed until the connection to the agent is established. - The Tick metrics buffer is only created if necessary. - Introduced the kamon.newrelic.max-initialize-retries and initialize-retry-delay settings. - External service calls via HTTP clients are reported as external services.
Diffstat (limited to 'kamon-newrelic/src/main/scala/kamon/newrelic/AgentJsonProtocol.scala')
-rw-r--r--kamon-newrelic/src/main/scala/kamon/newrelic/AgentJsonProtocol.scala63
1 files changed, 0 insertions, 63 deletions
diff --git a/kamon-newrelic/src/main/scala/kamon/newrelic/AgentJsonProtocol.scala b/kamon-newrelic/src/main/scala/kamon/newrelic/AgentJsonProtocol.scala
deleted file mode 100644
index 9b3e6dea..00000000
--- a/kamon-newrelic/src/main/scala/kamon/newrelic/AgentJsonProtocol.scala
+++ /dev/null
@@ -1,63 +0,0 @@
-/* ===================================================
- * Copyright © 2013 the kamon project <http://kamon.io/>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-package kamon.newrelic
-
-import spray.json._
-import kamon.newrelic.Agent._
-
-object AgentJsonProtocol extends DefaultJsonProtocol {
-
- implicit object ConnectJsonWriter extends RootJsonWriter[AgentInfo] {
- def write(obj: AgentInfo): JsValue =
- JsArray(
- JsObject(
- "agent_version" -> JsString("3.1.0"),
- "app_name" -> JsArray(JsString(obj.appName)),
- "host" -> JsString(obj.host),
- "identifier" -> JsString(s"java:${obj.appName}"),
- "language" -> JsString("java"),
- "pid" -> JsNumber(obj.pid)))
- }
-
- implicit def seqWriter[T: JsonWriter] = new JsonWriter[Seq[T]] {
- def write(seq: Seq[T]) = JsArray(seq.map(_.toJson).toVector)
- }
-
- implicit object MetricDetailWriter extends JsonWriter[NewRelic.Metric] {
- def write(obj: NewRelic.Metric): JsValue = {
- JsArray(
- JsObject(
- "name" -> JsString(obj.name) // TODO Include scope
- ),
- JsArray(
- JsNumber(obj.callCount),
- JsNumber(obj.total),
- JsNumber(obj.totalExclusive),
- JsNumber(obj.min),
- JsNumber(obj.max),
- JsNumber(obj.sumOfSquares)))
- }
- }
-
- implicit object MetricDataWriter extends RootJsonWriter[MetricData] {
- def write(obj: MetricData): JsValue =
- JsArray(
- JsNumber(obj.runId),
- JsNumber(obj.timeSliceMetrics.from),
- JsNumber(obj.timeSliceMetrics.to),
- obj.timeSliceMetrics.metrics.values.toSeq.toJson)
- }
-}