diff options
Diffstat (limited to 'site/src/main/jekyll/backends')
-rw-r--r-- | site/src/main/jekyll/backends/datadog.md | 88 | ||||
-rw-r--r-- | site/src/main/jekyll/backends/kamon-dashboard.md | 6 | ||||
-rw-r--r-- | site/src/main/jekyll/backends/newrelic.md | 117 | ||||
-rw-r--r-- | site/src/main/jekyll/backends/statsd.md | 94 |
4 files changed, 0 insertions, 305 deletions
diff --git a/site/src/main/jekyll/backends/datadog.md b/site/src/main/jekyll/backends/datadog.md deleted file mode 100644 index f14ec23e..00000000 --- a/site/src/main/jekyll/backends/datadog.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: Kamon | Datadog | Documentation -layout: documentation ---- - -Reporting Metrics to Datadog -=========================== -<hr> - -[Datadog] is a monitoring service for IT, Operations and Development teams who write and run applications at scale, and -want to turn the massive amounts of data produced by their apps, tools and services into actionable insight. - -Installation ------------- - -To use the Datadog module just add the `kamon-datadog` dependency to your project and start your application using the -Aspectj Weaver agent. Please refer to our [get started] page for more info on how to add dependencies to your project -and starting your application with the AspectJ Weaver. - - -Configuration -------------- - -First, include the Kamon(Datadog) extension under the `akka.extensions` key of your configuration files as shown here: - -```scala -akka { - extensions = ["kamon.statsd.Datadog"] -} -``` - -Then, tune the configuration settings according to your needs. Here is the `reference.conf` that ships with kamon-datadog -which includes a brief explanation of each setting: - -``` -kamon { - datadog { - # Hostname and port in which your StatsD is running. Remember that Datadog packets are sent using UDP and - # setting unreachable hosts and/or not open ports wont be warned by the Kamon, your data wont go anywhere. - hostname = "127.0.0.1" - port = 8125 - - # Interval between metrics data flushes to Datadog. It's value must be equal or greater than the - # kamon.metrics.tick-interval setting. - flush-interval = 1 second - - # Max packet size for UDP metrics data sent to Datadog. - max-packet-size = 1024 bytes - - # Subscription patterns used to select which metrics will be pushed to Datadog. Note that first, metrics - # collection for your desired entities must be activated under the kamon.metrics.filters settings. - includes { - actor = [ "*" ] - trace = [ "*" ] - } - - simple-metric-key-generator { - # Application prefix for all metrics pushed to Datadog. The default namespacing scheme for metrics follows - # this pattern: - # application.host.entity.entity-name.metric-name - application = "kamon" - } - } -} -``` - - -Integration Notes ------------------ - -* Contrary to many Datadog client implementations, we don't flush the metrics data as soon as the measurements are taken - but instead, all metrics data is buffered by the `Kamon(Datadog)` extension and flushed periodically using the - configured `kamon.statsd.flush-interval` and `kamon.statsd.max-packet-size` settings. -* Currently only Actor and Trace metrics are being sent to Datadog. -* All timing measurements are sent in nanoseconds, make sure you correctly set the scale when plotting or using the - metrics data. -* It is advisable to experiment with the `kamon.statsd.flush-interval` and `kamon.statsd.max-packet-size` settings to - find the right balance between network bandwidth utilization and granularity on your metrics data. - - - -Visualization and Fun ---------------------- - - - -[Datadog]: http://www.datadoghq.com/ -[get started]: /introduction/get-started/
\ No newline at end of file diff --git a/site/src/main/jekyll/backends/kamon-dashboard.md b/site/src/main/jekyll/backends/kamon-dashboard.md deleted file mode 100644 index 357bf904..00000000 --- a/site/src/main/jekyll/backends/kamon-dashboard.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: kamon | Dashboard | Documentation -layout: documentation ---- -Coming soon ------------
\ No newline at end of file diff --git a/site/src/main/jekyll/backends/newrelic.md b/site/src/main/jekyll/backends/newrelic.md deleted file mode 100644 index 4ba14dd5..00000000 --- a/site/src/main/jekyll/backends/newrelic.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: kamon | NewRelic Module | Documentation -layout: documentation ---- - -NewRelic Module -=============== - -If you are a Newrelic user and tried to start start your app using the Newrelic agent you probably noticed a crude reality: -nothing is shown in your dashboard, no web transactions are recognized and errors are not reported for your Spray applications. -Don't even think about detailed traces for the slowest transactions. - -We love Spray, and we love Newrelic, we couldn't leave this happening anymore! - -Currently the Newrelic Module works together with the Spray Module to get information about your Web Transactions and send -that information to Newrelic servers as a aggregate to the data already colected by Newrelic's Agent. Currently the data -being reported is: - -- Time spent for Web Transactions: Also known as `HttpDispatcher` time, represents the total time taken to process a web -transaction, from the moment the `HttpRequest` is received by spray-can, to the moment the answer is sent to the IO layer. -- Apdex -- Errors - -Differentiation between JVM and External Services is coming soon, as well as actor metrics and detailed traces. - - - -Installation -------------- - -To use the Newrelic module just make sure you put the `kamon-newrelic` and `kamon-spray` libraries in your classpath and -start your application with both, the Aspectj Weaver and Newrelic agents. Please refer to our [get started](/get-started) page -for more info on how to add the AspectJ Weaver and the [Newrelic Agent Installations Instructions](https://docs.newrelic.com/docs/java/new-relic-for-java#h2-installation). - - -Configuration -------------- - -Currently you will need to add a few settings to your `application.conf` file for the module to work: - -```scala -akka { - // Custom logger for NewRelic that takes all the `Error` events from the event stream and publish them to NewRelic - loggers = ["akka.event.slf4j.Slf4jLogger", "kamon.newrelic.NewRelicErrorLogger"] - // Make sure the NewRelic extension is loaded with the ActorSystem - extensions = ["kamon.newrelic.NewRelic"] -} - -kamon { - newrelic { - // These values must match the values present in your newrelic.yml file. - app-name = "KamonNewRelicExample[Development]" - license-key = 0123456789012345678901234567890123456789 - } -} -``` - - -Let's see it in Action! ------------------------ - -Let's create a very simple Spray application to show what you should expect from this module. The entire application code -is at [Github](https://github.com/kamon-io/Kamon/tree/master/kamon-examples/kamon-newrelic-example). - -```scala -import akka.actor.ActorSystem -import spray.routing.SimpleRoutingApp - -object NewRelicExample extends App with SimpleRoutingApp { - - implicit val system = ActorSystem("kamon-system") - - startServer(interface = "localhost", port = 8080) { - path("helloKamon") { - get { - complete { - <h1>Say hello to Kamon</h1> - } - } - } ~ - path("helloNewRelic") { - get { - complete { - <h1>Say hello to NewRelic</h1> - } - } - } - } -} -``` - -As you can see, this is a dead simple application: two paths, different responses for each of them. Now let's hit it hard -with Apache Bench: - -```bash -ab -k -n 200000 http://localhost:8080/helloKamon -ab -k -n 200000 http://localhost:8080/helloNewRelic -``` - -After a couple minutes running you should start seeing something similar to this in your dashboard: - -![newrelic](/assets/img/newrelic.png "NewRelic Screenshot") - -<div class="alert alert-info"> -Note: Don't think that those numbers are wrong, Spray is that fast! -</div> - - -Limitations ------------ -* The first implementation only supports a subset of NewRelic metrics - - -Licensing ---------- -NewRelic has [its own, separate licensing](http://newrelic.com/terms). - diff --git a/site/src/main/jekyll/backends/statsd.md b/site/src/main/jekyll/backends/statsd.md deleted file mode 100644 index 677552e5..00000000 --- a/site/src/main/jekyll/backends/statsd.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Kamon | StatsD | Documentation -layout: documentation ---- - -Reporting Metrics to StatsD -=========================== -<hr> - -[StatsD](https://github.com/etsy/statsd/) is a simple network daemon that continuously receives metrics over UDP and -periodically sends aggregate metrics to upstream services like (but not limited to) Graphite. Because it uses UDP, -sending metrics data to StatsD is very fast with little to no overhead. - - -Installation ------------- - -To use the StatsD module just add the `kamon-statsd` dependency to your project and start your application using the -Aspectj Weaver agent. Please refer to our [get started](/get-started) page for more info on how to add dependencies to -your project and starting your application with the AspectJ Weaver. - - -Configuration -------------- - -First, include the Kamon(StatsD) extension under the `akka.extensions` key of your configuration files as shown here: - -```scala -akka { - extensions = ["kamon.statsd.StatsD"] -} -``` - -Then, tune the configuration settings according to your needs. Here is the `reference.conf` that ships with kamon-statsd -which includes a brief explanation of each setting: - -``` -kamon { - statsd { - # Hostname and port in which your StatsD is running. Remember that StatsD packets are sent using UDP and - # setting unreachable hosts and/or not open ports wont be warned by the Kamon, your data wont go anywhere. - hostname = "127.0.0.1" - port = 8125 - - # Interval between metrics data flushes to StatsD. It's value must be equal or greater than the - # kamon.metrics.tick-interval setting. - flush-interval = 1 second - - # Max packet size for UDP metrics data sent to StatsD. - max-packet-size = 1024 bytes - - # Subscription patterns used to select which metrics will be pushed to StatsD. Note that first, metrics - # collection for your desired entities must be activated under the kamon.metrics.filters settings. - includes { - actor = [ "*" ] - trace = [ "*" ] - } - - simple-metric-key-generator { - # Application prefix for all metrics pushed to StatsD. The default namespacing scheme for metrics follows - # this pattern: - # application.host.entity.entity-name.metric-name - application = "kamon" - } - } -} -``` - - -Integration Notes ------------------ - -* Contrary to many StatsD client implementations, we don't flush the metrics data as soon as the measurements are taken - but instead, all metrics data is buffered by the `Kamon(StatsD)` extension and flushed periodically using the - configured `kamon.statsd.flush-interval` and `kamon.statsd.max-packet-size` settings. -* Currently only Actor and Trace metrics are being sent to StatsD. -* All timing measurements are sent in nanoseconds, make sure you correctly set the scale when plotting or using the - metrics data. -* It is advisable to experiment with the `kamon.statsd.flush-interval` and `kamon.statsd.max-packet-size` settings to - find the right balance between network bandwidth utilization and granularity on your metrics data. - - - -Visualization and Fun ---------------------- - -StatsD is widely used and there are many integrations available, even alternative implementations that can receive UDP -messages with the StatsD protocol, you just have to pick the option that best suits you. For our internal testing we -choose to use [Graphite](http://graphite.wikidot.com/) as the StatsD backend and [Grafana](http://grafana.org) to create -beautiful dashboards with very useful metrics. Have an idea of how your metrics data might look like in Grafana with the -screenshot bellow or use our [docker image](https://github.com/kamon-io/docker-grafana-graphite) to get up and running -in a few minutes and see it with your own metrics! - -![statsD](/assets/img/kamon-statsd-grafana.png "Grafana Screenshot") |