Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • 07:47

    ivantopo on v2.4.5


  • Jan 26 16:01

    ivantopo on master

    include environment tags in the… (compare)

  • Jan 26 15:17

    ivantopo on master

    reorganize the bundle build so … (compare)

  • Jan 26 08:31

    ivantopo on master

    Add finagle client instrumentat… (compare)

  • Jan 26 08:31
    ivantopo closed #1096
  • Jan 26 01:55
    seglo commented #1096
  • Jan 26 01:55
    seglo synchronize #1096
  • Jan 25 17:43
    ivantopo commented #1096
  • Jan 25 16:34
    seglo commented #1096
  • Jan 25 16:04

    ivantopo on master

    #563 Add lagom circuit breaker … (compare)

  • Jan 25 16:04
    ivantopo closed #760
  • Jan 25 15:47
    ivantopo commented #1096
  • Jan 25 15:25
    ivantopo opened #1098
  • Jan 25 15:16
    ivantopo commented #1096
  • Jan 20 15:39
    seglo commented #1096
  • Jan 20 15:21
    seglo synchronize #1096
  • Jan 20 12:23
    ivantopo commented #1096
  • Jan 17 17:01
    seglo commented #1096
  • Jan 12 12:46
    ihostage synchronize #760
  • Jan 07 14:12
    ryanb93 opened #1097
High all, have a question about cadinality for Kamon tags. Docs say, avoid high cadinality for "metric-related tags". Does "metric-related tag" here means span#tagMetrics - as opposed to Span#tag ? If yes, can I store high cadinality values in Span#tag without generating time series for each value combination ?
Giridhar Pathak
hey folks, i have an older application built on playframework 2.3. does kamon still support that?
or is there an older version of it i can use?
any direction would be helpful.
Tom Milner
Hey, has anyone experienced missing traces when using scala ZIO? I am using Kamon 2.1.4 with OpenTelemetry, and the app is a bit weird, but I basically have a Akka HTTP API, that runs a ZIO, which in turn calls an Akka HTTP Client (I know this is a weird setup). I see the main trace, and spans for things which happens before the ZIO is run but I do not see the traces for the Client call that happened in the ZIO, and it appears the service that was called did not get the trace ID either. I will keep digging, but if anyone has seen something like that or has an idea what it could be I am all ears.
3 replies
Ivan Topolnjak

@/all hey folks, this is a reminder that we are migrating to Discord for questions and chat related to Kamon. You can join our Discord here: https://discord.gg/5JuYsDJ7au

Have a great week!

Zvi Mints

i cannot find any metrics exposed via kamon-prometheus


kamon.prometheus {
  include-environment-tags = true
  embedded-server {
    hostname =
    port = 9404


class SinkConnector() extends org.apache.kafka.connect.sink.SinkConnector {
  val underlying: AerospikeSinkConnector = new AerospikeSinkConnector()
  override def start(map: util.Map[String, String]): Unit = {
    try {
    catch {
      case ex: Throwable =>
        println(s"Failure on underlying.start($map)")
        Kamon.counter("underlying-start-connector-failure").withTag("config-file",configFile).withTag("message", ex.getMessage).increment()
        throw ex
    finally {


  "io.kamon" %% "kamon-prometheus" % "2.2.2" exclude("org.slf4j", "slf4j-api"),
  "io.kamon" %% "kamon-core" % "2.1.0" exclude("org.slf4j", "slf4j-api")

I already have JMX Exporter which expose Kafka metrics to 9404, i tried to make Kamon use this port also, when i remove the application.conf and use the default value of port 9095 i cannot port-forward to this port for some reason.

I'm missing something?


Zvi Mints
Im getting 2021-08-31 12:03:52,224 WARN Failed to attach the instrumentation because the Kamon Bundle is not present on the classpath (kamon.Init) [connector-thread-dashboard-connector-profile] when i'm using "io.kamon" %% "kamon-prometheus" % "2.2.2" exclude("org.slf4j", "*") - any ideas why?
1 reply
Thomas Jaeckle

Hi. We are experiencing the following WARN message:

Failed to record value [-401488] on [span.processing-time,{operation=serialize,error=false}] because the value is outside of the configured range. The recorded value was adjusted to the highest trackable value [3600000000000]. You might need to change your dynamic range configuration for this metric

So the recorded value is negative. What we use is the Kamon SpanBuilder.start(Instant), however the span is later (within sub-milliseconds) finished via Span.finish() (where the underlying Clock is used to determine the nanos of the finish time)
Could it be that this "mixing" can cause negative values being recorded?

Thomas Jaeckle
ah, maybe instead of Instant.now() we should use Kamon.clock().instant() which provides better precision/performance?
6 replies
Dana Borinski
Trying to add kamon metrics to my caffeine cache, can someone explain please the part of KamonStatCounter or give an example? i see this page in the docs Caffeine.newBuilder().recordStats(() -> new KamonStatsCounter("cache_name")).build(); but not sure i understand what is needed to be passed to the recordStats. i see it expects to get a supplier but this example isnt working so i probably miss something.
Can Kamon instrument the play https connections? We have issue in PROD env where the heap memory increased after we deployed with https enabled. Kamon is throwing java.lang.OutOfMemoryError . I suspect that its because Kamon is not able to scrape the https connections. What is your opinion ?
Isaac Povey
Anyone know how to initialize Kamon with a play application loaded by guice. I followed the play guide but am getting these errors when trying to load it Caused by: java.lang.VerifyError: Expecting a stackmap frame at branch target 102. The application loader looks like this
class CustomApplicationLoader extends GuiceApplicationLoader { override protected def builder(context: Context): GuiceApplicationBuilder = super .builder(context) .eagerlyLoaded()

I am trying to add traceability support to a play 2.8 application with Kamon and Jaeger. I followed [instructions here] (https://kamon.io/docs/latest/reporters/jaeger/) . I am able to see the startup logs for Kanela agent as well as the Jaeger reportes as follows

[info] Running the application with the Kanela agent

 _  __                _        ______
| |/ /               | |       \ \ \ \
| ' / __ _ _ __   ___| | __ _   \ \ \ \
|  < / _` | '_ \ / _ \ |/ _` |   ) ) ) )
| . \ (_| | | | |  __/ | (_| |  / / / /
|_|\_\__,_|_| |_|\___|_|\__,_| /_/_/_/

Running with Kanela, the Kamon Instrumentation Agent :: (v1.0.8)

--- (Running the application, auto-reloading is enabled) ---

[info] p.c.s.AkkaHttpServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9001

(Server started, use Enter to stop and go back to the console...)

2021-09-23 13:29:11,210 [info] [play-dev-mode-akka.actor.default-dispatcher-11] k.i.p.GuiceModule$KamonLoader - Reconfiguring Kamon with Play's Config
2021-09-23 13:29:11,211 [info] [play-dev-mode-akka.actor.default-dispatcher-11] k.i.p.GuiceModule$KamonLoader - play.core.server.AkkaHttpServerProvider
2021-09-23 13:29:11,213 [info] [play-dev-mode-akka.actor.default-dispatcher-11] k.i.p.GuiceModule$KamonLoader - 10 seconds
2021-09-23 13:29:11,573 [info] [play-dev-mode-akka.actor.default-dispatcher-11] k.j.JaegerReporter - Started the Kamon Jaeger reporter

Jaeger is started through a docker container with following command:

docker run -d --name jaeger1   -e COLLECTOR_ZIPKIN_HOST_PORT=:9411   -p 5775:5775/udp   -p 6831:6831/udp   -p 6832:6832/udp   -p 5778:5778   -p 16686:16686   -p 14268:14268   -p 14250:14250   -p 9411:9411   jaegertracing/all-in-one:1.25

None of the traces are visible when I try to access the APIs for my play application. Any configuration I am missing here?

Tommaso Schiavinotto
I'm trying to use Kamon-cassandra (v.2.2.2, kanela 1.0.11) . I'm interested in metrics, but the only one I find available at runtime is span_processing_time_seconds. Is there something I need to configure in order to get those listed in the documentation page?
Giridhar Pathak
hey folks... anyone know if the kanela agent works fine with the openj9 jvm?
i find that my apps has heap going up and then OOMs.
Screen Shot 2021-10-13 at 3.33.16 PM.png
the orange line there is the jvm heap.. the heap was set low.. but the container's mem utilization goes up to 1.5Gb and then OOM
does kanela store data off heap?
and how can i debug this/reduce memory usage.
my conf file:
kamon {
  prometheus {
    embedded-server {
      hostname =
      port = 9095
    buckets {
      time-buckets = [
      information-buckets = [

  instrumentation {

    play {
      server.metrics.enabled = no
      http.server.tracing.enabled = no
      http.client.tracing.enabled = no

  modules.host-metrics.enabled = no
  modules.process-metrics.enabled = no
  modules.status-page.enabled = no
  trace {
    sampler = "never"
    span-metrics = off
    span-metric-tags {
      upstream-service = no
      parent-operation = no

kanela.modules {
  akka {
    enabled = no
  akka-remote {
    enabled = no
  akka-remote-sharding {
    enabled = no
Libor Kramoliš
Hi. Is it possible to exclude selected HTTP endpoints from producing spans? For example, I would like to hide /ready operation because it is called in regular bases by K8s as readiness probe. I do not need to track such operation. Thanks.
1 reply
Sean Glover

good day. i'm having an issue where Kamon is generating strange operation names when there exists an endpoint with more than 1 verb implementation. i'm using guardrail to generate akka-http routes from an openapi spec, and then using Kamon's akka-http server integration. i couldn't find any issues that describe a similar problem, but i thought i would see if anyone here has a pointer.

i.e. i have a GET /foo and POST /foo, an operation name of /foo/foo will be generated for the first defined endpoint from my openapi spec. the second defined endpoint operation name seems unaffected..

1 reply
Sean Glover
i created a reproducer PR: kamon-io/Kamon#1063
Zhenhao Li
hi, I'm new to kamon. I inherited a codebase at a client of mine which uses kamon with the datadog-api module. I assume sending metrics data via datadog-api is async and not blocking metrics update, since that's the only sensible way. But it would be nice if people with more experience with kamon can confirm that.
1 reply
Akash Nema
Hi Everyone
Can someone help me with Kamon-Jaeger Integration. Jaeger is not reading the Kamon spans I have created in my app. Application details:
Scala version: 2.12.13
Jaeger Version: 2.3.1
play framework version: 2.12
akka: 2.6.10
Akash Nema
I'm new to kamon. I have referred https://kamon.io/docs/latest/reporters/jaeger/
I can see the generated span traces in kamon status page but not in jaeger.
I am getting this error after upgrading kamon-bundle to 2.3.1 from 2.2.1
ch.qos.logback.core.joran.spi.JoranException: Problem parsing XML document. See previously reported errors.
        at ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:65)
        at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:151)
        at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110)
        at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53)
        at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:75)
        at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:150)
        at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)
        at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
        at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
        at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
        at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:417)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:362)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:388)

Caused by: org.xml.sax.SAXParseException; systemId: jar:file:/Users/shaileshpatil/workspace/xxxx-jar!/logback.xml; lineNumber: 42; columnNumber: 2; The markup in the document following the root element must be well-formed.
        at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1243)
        at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
        at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:324)
        at ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:59)
        ... 18 more
Any help will be appreciated
Aditya Maheshwari

How to get current value of a counter? For example -

          .withTag("Reason", "The requested resource could not be found.")

After calling increment how to check if the value was incremented?

Zvi Mints

Hey, I'm facing an issue with the following exception:

2021-11-29 17:44:41.710 31 WARN  MacOperatingSystem:365 - Failed syctl call for process arguments (kern.procargs2), process 42643 may not exist. Error code: 22


  "io.kamon" %% "kamon-core" % "2.4.1",
  "io.kamon" %% "kamon-bundle" % "2.0.6",
  "io.kamon" %% "kamon-prometheus" % "2.0.1",

I'm trying to disable these errors with the following configurations on application.conf:

kamon.modules {
  host-metrics {
    enabled = no

But its not working, any ideas?
cc: @ivantopo (:pray:)

Mayank Srivastava
Hi @ivantopo !! I have recently implemented Kamon Instrumentation to my play application and expect to log traceIds/SpanIds/Context-keys, etc with logback. All of it is built into a docker image. But I faced very weird issue, the same image when run in a container would sometimes work properly and sometimes just skip logging traceId/spanId/context-key etc. This was fairly intermittent. On turning debug mode on for Kanela, I saw both logback and play-framework modules had order=2 and competed to be loaded. When logback loaded before play, everything worked fine but if it loaded after play that is when we noticed missing logback entries. The way I have worked around is to explicitly give different orderings to both above modules. But is that expected behaviour to have two modules compete to be loaded.
Ivan Topolnjak
@/all hey folks, this is a reminder that the official Kamon folks are now giving support on Discord and not checking this room at all. Still some other folks from the community might help here, but if you want to ensure we take a look at your question please drop it on Discord or Github. Thanks!
Sebastien Vermeille
Good morning guys! :) I use Kamon in another project (yes definitely it's a must have
I just have an issue and I am not sure how I should tackle it maybe you could guide me a little:
My goal is to have per day, per week, per month, per quarter, per year how much pellets get consumed by my stove
currently I used a gauge in kamon without any particular tag and I simply update the value everytime
should I use another "type" to reach what I would like ? should I store other metrics extra (such as one each day with the sum() ?) I mean I am totally lost and don't know if it's something I should solve at grafana side, at kamon side when I store my data etc (any help is welcome)