kamon prometheus integration
Clone or download
andreas-schroeder and ivantopo Allow colons in names and dashes in tags (#23)
* Allow colons in names and dashes in tags

* Remove dash from allowed tag chars
Latest commit 6c42fc0 Sep 12, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
project initial commit Jun 17, 2017
src Allow colons in names and dashes in tags (#23) Sep 12, 2018
.gitignore initial commit Jun 17, 2017
.travis.yml update readme Oct 9, 2017
CONTRIBUTING.md initial commit Jun 17, 2017
LICENSE initial commit Jun 17, 2017
README.md remove invalid environment tag from readme Jul 23, 2018
build.sbt Include tags from Kamon.environment.tags (#10) Mar 30, 2018
version.sbt set version to 1.1.2-SNAPSHOT Apr 27, 2018


Prometheus Integration

Build Status Gitter Maven Central

Getting Started

Kamon Prometheus is currently available for Scala 2.10, 2.11 and 2.12.

Supported releases and dependencies are shown below.

kamon status jdk scala
1.1.1 stable 1.8+ 2.10, 2.11, 2.12

Adding the Reporter to your project

First, add the dependency to your build. For SBT that would look like this:

libraryDependencies += "io.kamon" %% "kamon-prometheus" % "1.1.1"

and for Maven:


Then, start the reporter when your application starts:

import kamon.prometheus.PrometheusReporter
Kamon.addReporter(new PrometheusReporter())

That's it! You can now go to `http://localhost:9095 and see the metrics. Check the reference.conf file for more details on what settings can be configured for the module.

Consuming the metrics

Finally, all you need to do is configure a scrape configuration in Prometheus. The following snippet is a minimal example that shold work with the minimal server from the previous section.

A minimal Prometheus configuration snippet
  - job_name: kamon-prometheus
      - targets: ['localhost:9095']

Custom environment tags

Kamon allows you to provide custom environment tags to all your metrics by configuring kamon.environment.tags in your application.conf, e.g.

kamon.environment.tags {
  custom-id = "test1"
  env = staging

In order to include these tags in your Prometheus metrics as well, you need to activate this feature for the PrometheusReporter by setting

kamon.prometheus.include-environment-tags = yes

in your application.conf as well, yielding, for example

# TYPE some_metric_seconds_total counter
some_metric_seconds_total{custom_id="test1",env="staging"} 10.0
# TYPE some_metric_seconds gauge
some_metric_seconds{custom_id="test1",env="staging"} 10.0

Note that environment tags always have precedence over any other custom tag that may have been set by the application at runtime.