Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jul 23 08:26

    SimunKaracic on v2.2.3

    (compare)

  • Jul 21 14:33
    yarosman edited #1050
  • Jul 21 14:32
    yarosman edited #1050
  • Jul 21 14:32
    yarosman edited #1050
  • Jul 21 11:28
    SimunKaracic labeled #1024
  • Jul 21 11:28
    SimunKaracic labeled #1043
  • Jul 21 11:28
    SimunKaracic labeled #1044
  • Jul 21 11:28
    SimunKaracic labeled #1044
  • Jul 21 11:28
    SimunKaracic edited #1044
  • Jul 21 11:27
    SimunKaracic closed #1047
  • Jul 21 11:27
    SimunKaracic commented #1047
  • Jul 21 11:27
    SimunKaracic labeled #1047
  • Jul 21 11:27
    SimunKaracic labeled #1049
  • Jul 21 11:26
    SimunKaracic commented #1050
  • Jul 21 11:25
    SimunKaracic labeled #1050
  • Jul 20 15:06
    yarosman commented #1050
  • Jul 20 15:03
    yarosman commented #1050
  • Jul 19 09:37

    SimunKaracic on master

    Initial rediscala instrumentati… Add error to tests Disable tests because of connec… and 5 more (compare)

  • Jul 19 09:37
    SimunKaracic closed #1052
  • Jul 19 08:16

    SimunKaracic on master

    WIP parsing sql for operation n… Merge branch 'master' into feat… Update sql parser version and c… and 1 more (compare)

VarunVats9
@VarunVats9
Can kamon run with openJdk-11 ?
And can it tum with jdk-8 version ?
usagiy
@usagiy
@ivantopo yes, I did it for experiment
usagiy
@usagiy

@ivantopo just one comment, suggestion
on http server tracing you have covered

 onType("akka.http.scaladsl.HttpExt")
    .advise(method("bindAndHandle"), classOf[HttpExtBindAndHandleAdvice])

use case when we used api

bindAndHandle(
    handler:   Flow[HttpRequest, HttpResponse, Any],
    interface: String, port: Int = DefaultPortForProtocol,
    connectionContext: ConnectionContext = defaultServerHttpContext,
    settings:          ServerSettings    = ServerSettings(system),
    log:               LoggingAdapter    = system.log)

but on some other places we used

IncomingConnection. handleWith[Mat](handler: Flow[HttpRequest, HttpResponse, Mat])(implicit fm: Materializer)

handler: Flow[HttpRequest, HttpResponse, Any] was same in both apis so it was trivial to change to bindAndHandle but it was confusing that one case worked and other not. It seems that would be same for you to cover IncomingConnection as handleWith, maybe I'm wrong

Daniel Leon
@leon-daniel
Hello, everyone! Has anyone used kamon-akka-http span_processing_time_seconds_bucket metric?
I would like to know if I can scale down from seconds to milliseconds maybe
camomileann
@camomileann
Hello, Colleagues. I have a setup of sbt + kamon + prometheus. And I want to see my metrics exposed in Grafana. I have a local running grafana, I have set up a dashboard in Grafana with Prometheus as data source, that it shows "No data". Could u pls tell if I missed smth?
Daniel Leon
@leon-daniel
Is the data available in prometheus?
camomileann
@camomileann
Yes, I see the metrics in the browser
localhost:9096
I have configured kamon prometheus.embedded-server to use the embedded-server on port 9096
Daniel Leon
@leon-daniel
the same query in prometheus should work in grafana. so it must be a mis-configuration in grafana data sources
camomileann
@camomileann
@leon-daniel the weird thing is that the same grafana dashboard works for a standalone Prometheus. Looks like kamon+prometheus is a bit different from prometheus standalone
moriyasror
@moriyasror

Hi, I have a very wired issue, I have service which use kamon with jvm-metrics disabled in the configuration.
I deploy the service on a machine and run it with the kanela agent, now I updated the configuration to enable jvm-metrics and restart the service, but it was not enabled.
Only when I enabled jvm-metrics in my code recompile and redeploy the service, the jvm-metrics are enabled.
But if now I will disable it and restart it won't work.
It's look like somehow kamon ignore the configuration file on the machine and relate only to the configuration as it was on the compilation.

I'm using kamon 2.1.0 with scala
Any one have any idea what can cause that?

Kelvin Mungai
@klvmungai

@camomileann you should have a standalone prometheus configured to collect your metrics from kamon. So you can either

  1. Setup a prometheus server and have it pull metrics from localhost:9096.
  2. Setup a prometheus server and have kamon-prometheus push metrics to a push gateway.

Kamon-prometheus only provides a way to get application metrics to prometheus, it does not run an actual prometheus server.

Daniel Leon
@leon-daniel
Has anyone else noticed that for JVM metrics, the jvm.gc histogram doesn't track the old generation?
I get jvm_gc_seconds_bucket{collector="g1-young"..but not a single metric for g1-old
Daniel Leon
@leon-daniel
I took a look and when a new Notification from JMX arrives, in instrumentation/kamon-system-metrics/src/main/scala/kamon/instrumentation/system/jvm/JvmMetricsCollector.scala:64 the Collector for the old gen can't be found
Daniel Leon
@leon-daniel
and one curious thing is that even though the Metrics is defined to have milliseconds: val GC = Kamon.histogram ( name = "jvm.gc", description = "Tracks the distribution of GC events duration", unit = MeasurementUnit.time.milliseconds ), the resulting metric in prometheus seems to be in seconds jvm_gc_seconds_bucket
Daniel Leon
@leon-daniel
I found the answer to my second question. Apparently all values when exported from prometheus are exported/converted in seconds for Time dimension and bytes for Information dimension no matter what MeasurementUnit is defined for the metric
Daniel Leon
@leon-daniel
@ivantopo , I see no test available for kamon-system-metrics. Do you have any idea why I can't see any old gen GC events?
1 reply
Ivan Topolnjak
@ivantopo
hey folks :wave:
Sergey Morgunov
@ihostage
:wave: We missed you :disappointed:
Ivan Topolnjak
@ivantopo
lol
Sergey Morgunov
@ihostage
It’s true :joy:
Ivan Topolnjak
@ivantopo
still, I'm seeing people helping each other around here, that's super awesome!
not much need for me around here :joy:
@leon-daniel to be honest, I'm not really sure of how it woks with G1, it might be that all GCs are reported as young or that we are actually missing something specific for G1
regarding prom, metrics must be exposed in base units for Prometheus to scrape, see more info here
in the case of time, the base unit is seconds
Chetan Mehrotra
@chetanmeh

For integrating with New Relic whats the recommended way. I see few repos

  1. https://github.com/kamon-io/kamon-newrelic - This is now archived
  2. https://github.com/kamon-io/Kamon/tree/master/reporters/kamon-newrelic - It does not have README detailing how to use
  3. https://github.com/newrelic/kamon-newrelic-reporter - This is also archived

https://kamon.io/docs/latest/reporters/ - It does not list Kamon New Relic reporter. So not sure if its currently supported

Ivan Topolnjak
@ivantopo
hey @chetanmeh, actually those three repositories ended up in the same place (your option number 2) and that's the latest and greatest
the reporter is not yet listed on the website but that reporter is the right one, it was actually developed by folks from New Relic! If you have any questions just drop them here and maybe mention @jkwatson, he will most likely know the right answers in anything related to the NR reporter!
Chetan Mehrotra
@chetanmeh
Thanks @ivantopo for confirming. Was looking for steps and some help doc. Would try to work out using existing README from one of the archived repo
John Watson
@jkwatson
We should move the old README over from the archived project
John Watson
@jkwatson
Hi @chetanmeh . I'm going to connect you with @abhihub , who can help make sure you can get the support you need.
Chetan Mehrotra
@chetanmeh
Thanks John. I am going through the readme and would try to integrate. Would ping once I make any progress. Thanks for reaching out!
John Watson
@jkwatson
great!
abhihub
@abhihub
@chetanmeh Hi Chetan, let me know if you need anything else
1 reply
davidnaughton
@davidnaughton
Hey Guys, im new to Kamon and looking for some tutorials about setting up kamon with AKKA and sending these metrics to an elasticsearch cluster and visualising the metrics in kibana . thanks
Matt Fulgo
@mfulgo

I'm attempting to get Kamon tracing set up with a DataDog reporter for APM. I've noticed the following warning in the DataDog agent logs:

Error getting trace count: "HTTP header \"X-Datadog-Trace-Count\" not found". Functionality may be limited.

I'm wondering if this is a bug and possibly why I'm not seeing every trace get to the dashboard.

Ivan Topolnjak
@ivantopo
@mfulgo have you checked your sampler configuration?
it might be that traces are just not being sampled
Matt Fulgo
@mfulgo
Ah. I'll dig into that. Having read some documentation about Spans always getting captured, I didn't realize that's not the case for the requests/traces as a whole. Thanks.
Ivan Topolnjak
@ivantopo
yeap.. a sampling decision is taken with the very first request and then carried around to all related requests and services
@davidnaughton setting up Kamon for an Akka application is the same as for any other application and the Get Started steps should be enough to get you going. But, there is no reporter for Elasticsearch :confused:
Matt Fulgo
@mfulgo
It looks like the @Segment annotation went away at some point. I was wondering if there's a way to annotate methods to add spans to a trace? Or do we need to add Kamon.withSpan(...) into methods we want to measure?
Matt Fulgo
@mfulgo
@ivantopo - Is there any way to automatically create Spans for all Scala Futures ? (I imagine that could become quite noisy, but it might be worth it...) https://kamon.io/docs/latest/instrumentation/futures/#creating-spans explains how to do it manually, but that would end up being a lot of code I'd have to add in order to get meaningful traces, given all the places in which we create futures...
Matt Fulgo
@mfulgo
Okay... to do what I want to do - instrument a number of classes without having to annotate every method - I'm looking at creating a custom kanela instrumentation module. However, it seems to not be attaching the OnMethodEnter/Exit advice, and my instrumentation module is greyed out on the Kamon status page. (Looking at the kanela debug logging, it loaded my module) Is there something I have to do to activate the module, besides adding my own section to kanela.modules?
30 replies
Alexis Hernandez
@AlexITC
Hi, I'm trying Kamon but got an example that doesn't compile, is there any equivalent method to the refine one?
val operationLatency = Kamon.timer("operation-latency")
  .refine("operation" -> "login")
Alexis Hernandez
@AlexITC
looks like withTag(name, value) seems the way it works now