Jaeger is a distributed tracing system. It was originally created at Uber. The kamon-jaeger
module translates
Kamon’s representation of Spans and sends them to Jaeger using HTTP (collector) or UDP (agent).
libraryDependencies += "io.kamon" %% "kamon-jaeger" % "2.5.9"
<dependency>
<groupId>io.kamon</groupId>
<artifactId>kamon-jaeger_2.13</artifactId>
<version>2.5.9</version>
</dependency>
implementation 'io.kamon:kamon-jaeger_2.13:2.5.9'
Once the reporter is on your classpath it will be automatically picked up by Kamon.
kamon {
jaeger {
# Define the host/port where the Jaeger Collector/Agent is listening.
host = "localhost"
port = 14268
# Protocol used to send data to Jaeger. The available options are:
# - http: Sends spans using jaeger.thrift over HTTP (collector).
# - https: Sends spans using jaeger.thrift over HTTPS (collector).
# - udp: Sends spans using jaeger.thrift compact over UDP (agent).
protocol = http
# for http and https, this is the full url to be used
http-url = ${kamon.jaeger.protocol}"://"${kamon.jaeger.host}":"${kamon.jaeger.port}"/api/traces"
# Enable or disable including tags from kamon.environment as labels
include-environment-tags = no
}
}
These screenshots were taken by running the Elementary Akka Setup guide with the Jaeger reporter, head over there to learn more about how to get started with Monitoring Akka with Kamon!
Trace view in Jaeger:
Trace Details: