by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Aug 07 13:28
    dpsoft assigned #827
  • Aug 06 18:30
    bradrust opened #827
  • Aug 06 18:28
    sebarys commented #825
  • Aug 06 18:25
    sebarys commented #825
  • Aug 06 18:24
    sebarys commented #825
  • Aug 06 18:24
    sebarys commented #825
  • Aug 06 16:55
    sebarys edited #826
  • Aug 06 16:54
    sebarys opened #826
  • Aug 06 16:48
    cspinetta commented #808
  • Aug 06 16:18
    sebarys edited #825
  • Aug 06 16:16
    sebarys edited #825
  • Aug 06 16:15
    sebarys opened #825
  • Aug 06 12:53
    pawelkrupinski-ovo commented #641
  • Aug 06 12:04
    pete-proton closed #824
  • Aug 06 12:04
    pete-proton commented #824
  • Aug 05 10:33
    pete-proton edited #824
  • Aug 05 10:33
    pete-proton edited #824
  • Aug 05 10:32
    pete-proton edited #824
  • Aug 05 10:32
    pete-proton edited #824
  • Aug 05 10:31
    pete-proton edited #824
Oto Brglez
@otobrglez
Hm,... might be that I've put Kamon.init() after ActorSystem() 🤔If I swap that around I get this warning,...
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by kamon.instrumentation.executor.ExecutorInstrumentation$ (file:/Users/otobrglez/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/kamon/kamon-bundle_2.13/2.1.0/kamon-bundle_2.13-2.1.0.jar) to field java.util.concurrent.Executors$DelegatedExecutorService.e
WARNING: Please consider reporting this to the maintainers of kamon.instrumentation.executor.ExecutorInstrumentation$
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Oto Brglez
@otobrglez
What does this WARNING mean? Should I be worried? :)
Barnabás Oláh
@stsatlantis

Hello all,
I'm using kamon-http4s on the client side, but I don't see the metrics propagated for any of the endpoints. However I got all the other metrics.
How I'm using it:

import kamon.http4s.middleware.client.KamonSupport
BlazeClientBuilder[F](ec).resource.map(KamonSupport(_)).use{ client =>
  //application code is here
}

When I'm debugging I can see the spans are created, but there is this do-not-sample value. Is it the problem? On the other hand, how can I change to it to make it sample? Sorry for the silly question.

Oto Brglez
@otobrglez
Guys. I have another question. This is a very strange one.
Error:(60, 26) value increment is not a member of kamon.metric.Metric.Counter
Kamon.counter("x").increment()
7 replies
What am I missing here,... I have import kamon.Kamon at the top of my app; and I have kamon-bundle, kamon-core,... and Kamon.init works...
moriyasror
@moriyasror
Hi all, which version is recommended to use in production, those v2.1.0 stable enough? which versions you use?
Diego Parra
@dpsoft
Hi @/all, we want to share two awesome grafana + prometheus dashboards created by @cspinetta , enjoy!
Jakub Kozłowski
@kubukoz
when would I use an entry vs a tag?
usagiy
@usagiy
Hi,

I would like to disable following headers from my requests

X-B3-Sampled: 1
X-B3-SpanId: c45fa42fbb6e01db
X-B3-TraceId: 19f91af53ab25fb2

I have following settings in my conf file:

kamon.instrumentation.akka.http.client.propagation.enabled = no
kamon.instrumentation.akka.http.server.propagation.enabled = no

But this doesnt have effect.
How to disable B3 headers ?

I am using kamon-bundle 2.1.0

Thanks

John Watson
@jkwatson
Is the source available for these demo services somewhere? https://apm.kamon.io/demo/demo/services?from=1589819640&to=1589825040&minutes=90
Ivan Topolnjak
@ivantopo
good evening folks :wave:
Ivan Topolnjak
@ivantopo
@jkwatson the actual version that is running up there is in a private repo but last year I extracted them for a workshop: https://github.com/ivantopo/beescala-workshop/tree/master/automatic
8 replies
@usagiy those settings look right to me.. have you tried maybe using kamon.instrumentation.http-client.default.propagation.enabled?
Ivan Topolnjak
@ivantopo
@kubukoz I would say, if a String/Long/Boolean is enough for your use case then go with tags. Kamon automatically knows how to propagate tags across HTTP and binary channels. It is all handled out of the box. Entries allow you to put any type you want in the context, but out of the box it will only be propagated in the same process. You will need to create an entry reader/writer if you want any custom entry to be propagated through HTTP and binary channels.
I wish we could somehow unify all of that.. ultimately they are just key/value pairs
and most of the time people just want to use the tags.. only we bother with the entries for the Span
@moriyasror we are using 2.1.0 in production, I would recommend you do the same! We usually test new versions in our staging servers before we publish
Ivan Topolnjak
@ivantopo
we don't use all the available instrumentation (for example, we don't use Mongo) but usually it works fine
^^ I know that "usually" doesn't sound very reassuring but I can say we didn't have any problems so far :)
Jakub Kozłowski
@kubukoz
okay @ivantopo, I see. Thanks!
Srepfler Srdan
@schrepfler
oh, Kamon on Lagom would be super cool, subscribing to kamon-io/Kamon#760
Sergey Morgunov
@ihostage
@schrepfler :+1: But need to wait until @ivantopo takes this module to Kamon family :joy:
Srepfler Srdan
@schrepfler
well, it's obligatory now :D
usagiy
@usagiy

@ivantopo unfortunately it doesn't help
this is my configuration

kamon.instrumentation.akka {
      ask-pattern-timeout-warning = heavyweight

      http {
        server {
          propagation {
            enabled = no
            channel = default
          }
          metrics {
            enabled = yes
          }
          tracing {
            enabled = yes
            span-metrics = on
            response-headers {
              trace-id = "X-Correlation-ID"
            }
          }
        }


        client {
          propagation {
            enabled = no
          }
          metrics {
            enabled = yes
          }
          tracing {
            enabled = yes

          }
        }
      }

kamon.instrumentation.http-client.default.propagation.enabled = no

but I still have headers

X-B3-Sampled: 1
X-B3-SpanId: 88d1ac6d6ac48d84
X-B3-TraceId: 72491d0bf36c6cbd
usagiy
@usagiy
Thanks @ivantopo it works now. I had duplicated dependencies, don't know how is this connected
Ivan Topolnjak
@ivantopo
@usagiy what do you mean by duplicate dependencies? maybe having both the bundle and the akka-http dependency?
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?
Ivan Topolnjak
@ivantopo
hey folks :wave:
Sergey Morgunov
@ihostage
:wave: We missed you :disappointed: