Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jun 18 08:14

    SimunKaracic on master

    Bump Merge pull request #1039 from S… (compare)

  • Jun 18 08:14
    SimunKaracic closed #1039
  • Jun 17 14:36

    SimunKaracic on master

    delete the extracted Kanela fil… add exception handling for dele… Merge pull request #1036 from i… (compare)

  • Jun 17 14:36
    SimunKaracic closed #1036
  • Jun 17 14:36
    SimunKaracic commented #1036
  • Jun 17 13:33

    SimunKaracic on master

    try to bind Status Page on a di… Merge pull request #1042 from i… (compare)

  • Jun 17 13:33
    SimunKaracic closed #1042
  • Jun 17 13:33
    SimunKaracic commented #1042
  • Jun 17 11:49
    SimunKaracic opened #1044
  • Jun 17 11:11
    SimunKaracic closed #1040
  • Jun 17 11:11

    SimunKaracic on master

    Truncate 128-bit trace IDs befo… Merge pull request #1040 from d… (compare)

  • Jun 17 11:11
    SimunKaracic closed #1032
  • Jun 17 11:10

    SimunKaracic on master

    add hsqldb to the kamon-jdbc wi… Merge pull request #1041 from i… (compare)

  • Jun 17 11:10
    SimunKaracic closed #1041
  • Jun 16 15:55
    ivantopo opened #1043
  • Jun 15 14:53
    dbwiddis commented #884
  • Jun 15 12:11
    ivantopo commented #884
  • Jun 15 12:05
    ivantopo opened #1042
  • Jun 15 10:15
    ivantopo opened #1041
  • Jun 15 10:12
    ivantopo synchronize #1036
Sherif Mohamed
@sherifkandeel

Hello guys, sorry for the silly simple question, our team is trying to massively bump Kamon from 1.x to latest, basically replacing:

def aspectjWeaver(version: String = "1.8.2"): ModuleID = "org.aspectj" % "aspectjweaver" % version % "java-agent"
def kamonCore(version: String = "1.1.6"): ModuleID = "io.kamon" %% "kamon-core" % version
def kamonSystemMetrics(version: String = "1.0.1"): ModuleID = "io.kamon" %% "kamon-system-metrics" % version
def kamonAkka25(version: String = "1.1.2"): ModuleID = "io.kamon" %% "kamon-akka-2.5" % version
def kamonAkkaHttp25(version: String = "1.1.0"): ModuleID = "io.kamon" %% "kamon-akka-http-2.5" % version
def kamonAkkaRemote25(version: String = "1.1.0"): ModuleID = "io.kamon" %% "kamon-akka-remote-2.5" % version
def kamonScala(version: String = "1.0.0-RC4"): ModuleID = "io.kamon" %% "kamon-scala" % version
def kamonPrometheus(version: String = "1.1.1"): ModuleID = "io.kamon" %% "kamon-prometheus" % version
def kamonJdbc(version: String = "1.0.2"): ModuleID = "io.kamon" %% "kamon-jdbc" % version

With simply

def kamonBundle(version: String = "2.1.14"): ModuleID = "io.kamon" %% "kamon-bundle" % version
def kamonPrometheus(version: String = "2.1.14"): ModuleID = "io.kamon" %% "kamon-prometheus" % version

From what I saw I have two questions:

  • Is Kanela agent present alrady with the Kamon bundle?
  • More improtantly, we rely on akka 2.5.22 does the Kamon bump require a more recent dependency?

I am trying to estimate the work required for the bump, I can already see a lot of renamings!! Thanks in advance.

4 replies
rmckeown
@rmckeown
Not sure if anyone has some hints but I am trying to use kanela 1.0.9 jar via java agent with "io.kamon" %% "kamon-bundle" % "2.1.14", "io.kamon" %% "kamon-datadog" % "2.1.14", I am getting traces and system metrics but not getting any of my actor metrics like akka.actor.mailbox-size. Akka version 2.5.23. I currently even have the doomsday wildcard enabled instrumentation{ akka { ask-pattern-timeout-warning = lightweight filters { actors { doomsday-wildcard = on track { includes = ["**"] ...
7 replies
Khalid Reid
@khalidr

Hello. I am having problems with my play framework (2.8.7) reporting spans to new relic. I have it working for my Akka HTTP app but for some reason the play app is only showing Metrics, not Spans. The Kanela agent is set up and I see the log below:

BatchDataSender configured with endpoint https://metric-api.newrelic.com/metric/v1

1 reply
Dmitriy Zakomirnyi
@dmi3zkm
Keep getting /{}/{} operations despite kamon.http-server.default.tracing.operations.mappings and kamon.akka.http.server.tracing.operations.mapping overrides
1 reply
Tobias Eriksson
@tobiaseriksson
is there some article about the performance penalty / impact that Kamon and it's instrumentation has ?
1 reply
so mostly interrested in latency, but also added CPU and Mem needed
David Knapp
@Falmarri
do you have any thoughts or opinions on https://github.com/open-telemetry/opentelemetry-java-instrumentation ? specifically why i should keep using kamon if i have other services other than scala in my ecosystem, and if kamon plans to be an implementation of opentelemetry? i don't believe currently there's native support for the w3c tracing headers
5 replies
jorkzijlstra
@jorkzijlstra

Is there any documentation on the kamon-mongo instrumentation (https://github.com/kamon-io/Kamon/tree/master/instrumentation/kamon-mongo)?

I included it in my application, but nothing is showing up in the status page or metrics. The code is hitting breakpoint in the MongoClientInstrumentation class so I think its executing

28 replies
Jakub Spręga
@cslysy

Hi Guys,

We are migrating from Kamon '0.6' to '2.1.15'. Everything works fine despite one remaining issue. We noticed that besides our own counters, Kamon starts to report its internal counter 'kamon.trace.sampler.decisions'.
Despite setting 'kamon.trace.sampler' to 'never', Kamon still report it with value equal to 0. The question is, is it possible to configure Kamon in a way that it will not report this counter?

2 replies
Sherif Mohamed
@sherifkandeel

Hi guys, after upgrading form 1.x to 2.x we seem to be missing two metrics jvm.gc.promotion that seems to be empty:

# HELP jvm_gc_promotion_bytes Tracks the distribution of promoted bytes to the old generation regions after a GC
# TYPE jvm_gc_promotion_bytes histogram

And host_context_switches seems to be not there at all.

Did I miss something during migration?

I enabled all metrics

    host-metrics {
      enabled = yes
    }

    process-metrics {
      enabled = yes
    }

    jvm-metrics {
      enabled = yes
      }

    prometheus-reporter {
      enabled = true
    }
4 replies
Henry
@hygt
Hello, Kanela doesn't run on Java 16+ because the embedded version of Byte Buddy is too old. I thought to myself, how hard could bumping a few versions be, let's create a PR... but I quickly realized the codebase isn't super approachable. :sweat_smile:
3 replies
David Knapp
@Falmarri
is starting the jvm with the kamon agent different than attaching it at runtime? are there features that are required to start with the agent? or is just that anything that happens before it attaches won't get instrumented (that seems obvious)
5 replies
Sherif Mohamed
@sherifkandeel
How come the Kamon-datadog is archived repo? am I looking in the wrong place? https://github.com/kamon-io/kamon-datadog
1 reply
Sherif Mohamed
@sherifkandeel
Hi guys, kind of a silly question, I would like to start using Kamon-datadog for reporting metrics to datadog APM. I couldn't find a way to add similar Environment variables, or system properties (e.g. dd.env or dd.version)
4 replies
Mr. Follower
@MrFollo49718686_twitter

hi all!

whilst migrating from spray to akka http, we started 2 servers side by side: one with spray, one with akka http having some functionality migrated off spray, both behind nginx, so that it looked like one server. both spray (1.3.3) & akka http (10.0.15) services used the same akka system.

the problem that for one of the counters sitting only in the akka http router

    val normals = Kamon.metrics.counter("response.normal")

the count apparently was doubled compared to datadog stats before the deployment. kamon is version 0.6.6. all the other stats looked normal. I cannot figure out why that could be the case. would appreciate any pointers!

5 replies
David Knapp
@Falmarri
is it possible to filter out spans from being reported? i'm using the newrelic reporter, and it's reporting spans for sending the metrics/spans to newrelic's http API since it's implemented on okhttp
7 replies
David Knapp
@Falmarri

another question. when running my app under kamon, i'm getting this error

java.lang.VerifyError: Expecting a stackmap frame at branch target 20 Exception Details: Location: org/sqlite/jdbc3/JDBC3Statement.executeBatch()[I @17: goto Reason: Expected stackmap frame at this location.

and then a bunch of bytecode. it's definitely kamon related, since it doesn't happen when running without kamon. it happens when creating a new org.sqlite.jdbc4.JDBC4Connection object. is it possible it's an issue that i'm compiling/running on java8?

20 replies
moznion
@moznion_twitter

Hello folks.

I'm finding a way to measure the response time of the WSClient's requests by Kamon.
I posted a question about this on stackoverflow, does anybody know this?

2 replies
Ben Plommer
@bplommer
Is Scala 3 support on the roadmap? I opened a PR for the core modules (kamon-io/Kamon#1002) which was actually pretty straightforward, but the CI seems to have issues with sbt 1.5.0
1 reply
David Knapp
@Falmarri
i filed an issue for the incorrect bytecode i mentioned above kamon-io/Kamon#1008 let me know if you have any thoughts, because i'm getting pushback from my team when adding -noverify to the process because of potential security concerns. otherwise i have to disable my sqlite instrumentation
David Knapp
@Falmarri

also unrelated to any of the issues i've mentioned, i see this in the logs while I was debugging.

Error => okhttp3.OkHttpClient with message Illegal method name class okhttp3.Dispatcher for public final okhttp3.Dispatcher okhttp3.OkHttpClient.-deprecated_dispatcher(). Class loader: jdk.internal.loader.ClassLoaders$AppClassLoader@3b192d32: java.lang.IllegalStateException: Illegal method name class okhttp3.Dispatcher for public final okhttp3.Dispatcher okhttp3.OkHttpClient.-deprecated_dispatcher()

not sure if it's causing any isssues or not

Sherif Mohamed
@sherifkandeel
This message was deleted
Hi guys, Is there plans to support a Redis module on Kanela?
8 replies
alexander-branevskiy
@alexander-branevskiy
Hello guys! Do we have some way to provide custom span id while constructing span?
23 replies
alexander-branevskiy
@alexander-branevskiy
Hello guys! Is it safe to use Kamon.storeContext in order to resolve this issue? kamon-io/Kamon#829
58 replies
Sherif Mohamed
@sherifkandeel
Hi guys, I have a simlpe question, I do not have to re-call kamon.init() everytime I call kamon.reconfigure() or do I? In other words, is it dangerous to re-call Kamon.init() again after calling it the first thing in the application?
2 replies
Gervais Blaise
@gervaisb

Hello there, I am trying to setup Kamon on our Play 2.8 Scala application. I was able to start Kamon and add the Prometheus exporter as such as privoding a custom gauge. However, while I am executing some requests and trigger actors on the system, I do not get any metrics about Akka.
I do have the HELP and TYPE lines for akka_remote_messages_inbound_size_bytes, akka_remote_messages_outbound_size_bytes, akka_remote_serialization_time_seconds and akka_remote_deserialization_time_seconds but no values. The status page report those metrics but nothing about the AkkaModule.

I am using "sbt-kanela-runner-play-2.8" % "2.0.9"with Sbt 1.3.13 and Scala 2.13.4. We are using compile time DI with a custom loader that initialize Kamon as documented:

Kamon.loadModules()
context.lifecycle
      .addStopHook(() => Kamon.stop())

My Akka filter configuration is quite simple:
actors.track { includes = [ "**" ] excludes = [ "application/system/**" ] }

Any help would be appreciated to be able to monitor our actors.
Thanks

35 replies
David Knapp
@Falmarri
any thoughts on this? https://gitter.im/kamon-io/Kamon?at=60823ed7a2ac0d38e7d277ef not sure if it was seen since i replied to my own thread a bunch. i can't figure out how to get the tests to pass, but not sure i want to spend more time if there's a better approach
David Knapp
@Falmarri
so i'm comparing newrelic's agent with kamon, and newrelic parses out database calls to create a more meaningful operation name like "select table_name". specifically here https://github.com/newrelic/newrelic-java-agent/blob/main/newrelic-agent/src/main/java/com/newrelic/agent/database/DefaultDatabaseStatementParser.java what do you guys think of implementing this? it can be some kind of config switch so we don't break existing operation names for users. and it can either be using regexes like newrelic does, or i found this https://github.com/JSQLParser/JSqlParser i don't know the performance implications of either though. i could imagine a radical change where we could push off the parsing of the sql onto separate threads to not block client code, but that would be a large change i would think.
David Knapp
@Falmarri
here's a proof of concept of the above kamon-io/Kamon#1013
alexander-branevskiy
@alexander-branevskiy
guys, does anyone have an example of how to serialize a span?
16 replies
Harshid Dattani
@harshid86

Hi, are there any plans to publish the kamon sbt plugins on maven, now that bintray has been shut?

sbt-aspectj-runner-play-2.6 v1.1.1 previously available via https://bintray.com/kamon-io/sbt-plugins/ is not available on maven nor https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/

1 reply
David Knapp
@Falmarri
i'm seeing some issues when having both newrelic's agent and kanela running on the same service. do you know of any quick ways to handle this? or is this just unsupported and i'm on my own?
2021-05-06_18:55:46.16634 [statsd-0] ERROR 2021-05-06 11:55:46  Logger : An error occurred while trying to apply an advisor: java.lang.ClassCastException: com.nr.agent.instrumentation.scala.WrappedTry cannot be cast to kamon.instrumentation.context.HasContext
2021-05-06_18:55:46.16637       at kamon.instrumentation.futures.scala.CallbackRunnableRunInstrumentation$.enter(FutureChainingInstrumentation.scala:90)
2021-05-06_18:55:46.16638       at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:63)
2021-05-06_18:55:46.16638       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
2021-05-06_18:55:46.16638       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
2021-05-06_18:55:46.16638       at java.lang.Thread.run(Thread.java:748)
2 replies
Pooriya-Shokri
@Pooriya-Shokri
Hi,
I've noticed three different metrics per kamon reference metrics. one with '_SUM' postfix and two others with '_BUCKET', and '_COUNT'.
is it possible to explain the differences between these metric postfixes and their meaning?
1 reply
Also it bugs me to explain some of weird metrics. For example this the "AKKA_GROUP_MEMBERS_SUM" metric for a local running project with at most 10 actors.
Can any one explain the increasing and surprisingly LARGE metric values?
Screenshot from 2021-05-08 15-57-42.png
Alexandru Nedelcu
@alexandru

Hello — we're getting an ArrayOutOfBoundsException related to tags usage, similar to this one:

kamon-io/Kamon#766

Any ideas?

1 reply
SimunKaracic
@SimunKaracic

Hey everyone, we have a new blog post :tada:
https://kamon.io/blog/monitoring-queues-and-resources-with-kamon-range-samplers/?utm_source=gitter

In this post we discuss the origin story of Kamon’s Range Samplers: what they are, how they work, and how we use them to monitor queues, connection pools and more.
Since there's been quite a bit of questions about how they work, please take a look at it!

alexander-branevskiy
@alexander-branevskiy
Can someone explain how adaptive-sampler.throughput works ?
alexander-branevskiy
@alexander-branevskiy
as I understood it's sth like maximal operations amount per minute, but I'm not 100% sure
8 replies
alexander-branevskiy
@alexander-branevskiy
guys, am I right that if spans number exceeds 4096 within tick-interval old spans will be skipped? https://github.com/kamon-io/Kamon/blob/4b397cbc242aaebbdc5dff5e28eee6cf0b5fac4d/core/kamon-core/src/main/scala/kamon/trace/Tracer.scala#L45,L46
alexander-branevskiy
@alexander-branevskiy
okay seems decreasing throughput resolves the issue
Jason Pickens
@steinybot
How do I set tags like the service and environment when using the Datadog integration?
Jason Pickens
@steinybot
Oh I think I may have found it. kamon.environment
Is that in the docs somewhere?
1 reply
Michael Morris
@micmorris
Hey all, I'm trying to get a simple Kamon setup pushing Zipkin traces on Akka-Http, but I'm running into this error: java.lang.ClassCastException: class akka.dispatch.Envelope cannot be cast to class kamon.instrumentation.context.HasContext
I've thrown so many configs at this, I'm not sure where to start
I've made sure that Kamon is the first thing loaded as far as I can see
18 replies
Jason Pickens
@steinybot
Have you tried adding the agent manually? For a while I thought I was calling Kamon.init early enough but that can be easier said than done. You could put a breakpoint in the ActorSystem initialisation somewhere and in the Kamon initialisation to double check which is hit first.
Michael Morris
@micmorris
Added some details into the reply thread above :)