can anyone provide the sample project link with playframework-2.5+kamon latest jars+prometheus.

13 views
Skip to first unread message

Chandra Sekhar

unread,
Nov 15, 2018, 2:53:12 AM11/15/18
to kamon-user
I have been trying to setup kamon with play framework-2.5 and starting play framework from IntelliJ with java agent aspectjweaver-1.8.13.jar application started but there are some below is isues and no metrics 

org.aspectj.weaver.tools.Jdk14Trace error
SEVERE: scala/concurrent/impl/CallbackRunnable
java.lang.NullPointerException
at org.aspectj.weaver.ResolvedType.conflictingSignature(ResolvedType.java:707)
at org.aspectj.weaver.ResolvedType.clashesWithExistingMember(ResolvedType.java:1874)
at org.aspectj.weaver.ResolvedType.addInterTypeMunger(ResolvedType.java:1730)
at org.aspectj.weaver.bcel.BcelWeaver.weaveNormalTypeMungers(BcelWeaver.java:1628)
at org.aspectj.weaver.bcel.BcelWeaver.addNormalTypeMungers(BcelWeaver.java:1437)
at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1124)
at org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.java:527)
at org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.java:363)
at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:121)
at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:54)
at sun.instrument.TransformerManager.transform(TransformerManager.java:188)


Below are my configuration details ? can anyone help what i am missing or provide some sample play application with Prometheus? is aop.xml required?


Intellij . VM params:

-Xms512M -Xmx1024M -Xss1M -XX:+CMSClassUnloadingEnabled -javaagent:/Users/chandu/.ivy2/cache/org.aspectj/aspectjweaver/jars/aspectjweaver-1.8.13.jar -Dkamon.auto-start=true


build.sbt:

name := """kamon-play-java"""

version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayJava,JavaAppPackaging,JavaAgent).disablePlugins(PlayLogback)
//javaAgents += "org.aspectj" % "aspectjweaver" % "1.8.13"

scalaVersion := "2.11.7"

resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"

libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs
)


val kamonVersion_1_1_0 = "1.1.0"
val kamonVersion_1_0_0 = "1.0.0"

libraryDependencies += "io.kamon" %% "kamon-core" % kamonVersion_1_1_0
libraryDependencies += "io.kamon" %% "kamon-play-2.5" % kamonVersion_1_1_0
libraryDependencies += "io.kamon" %% "kamon-system-metrics" % kamonVersion_1_0_0
libraryDependencies += "io.kamon" %% "kamon-statsd" % kamonVersion_1_0_0
libraryDependencies += "io.kamon" %% "kamon-prometheus" % "1.1.1"
libraryDependencies += "org.aspectj" % "aspectjweaver" % "1.8.13"

//javaOptions in Universal += "-Dorg.aspectj.tracing.factory=default"

routesGenerator := InjectedRoutesGenerator

application.conf:

play.crypto.secret = "changeme"

# The application languages
# ~~~~~
play.i18n.langs = [ "en" ]


akka {
loglevel = DEBUG
//extensions = ["kamon.akka.Akka", "kamon.statsd.StatsD"]
}

kamon {
metric {
tick-interval = 1 seconds
track-unmatched-entities = yes

}

statsd {
hostname = "127.0.0.1"
port = 8125
flush-interval = 1 seconds
# Subscription patterns used to select which metrics will be pushed to StatsD. Note that first, metrics
# collection for your desired entities must be activated under the kamon.metrics.filters settings.
subscriptions {
histogram = [ "**" ]
min-max-counter = [ "**" ]
gauge = [ "**" ]
counter = [ "**" ]
trace = [ "**" ]
trace-segment = [ "**" ]
akka-actor = [ "**" ]
akka-dispatcher = [ "**" ]
akka-router = [ "**" ]
system-metric = [ "**" ]
http-server = [ "**" ]
}
metric-key-generator = kamon.statsd.SimpleMetricKeyGenerator
simple-metric-key-generator {
application = "my-application"
include-hostname = true
hostname-override = none
metric-name-normalization-strategy = normalize
}
}



# ======================================== #
# kamon-prometheus reference configuration #
# ======================================== #

prometheus {

# Enable or disable publishing the Prometheus scraping enpoint using a embedded server.
start-embedded-http-server = yes

# Enable of disable including tags from kamon.prometheus.environment as labels
include-environment-tags = no

buckets {
default-buckets = [
10,
30,
100,
300,
1000,
3000,
10000,
30000,
100000
]

time-buckets = [
0.005,
0.01,
0.025,
0.05,
0.075,
0.1,
0.25,
0.5,
0.75,
1,
2.5,
5,
7.5,
10
]

information-buckets = [
512,
1024,
2048,
4096,
16384,
65536,
524288,
1048576
]

# Per metric overrides are possible by specifying the metric name and the histogram buckets here
custom {
// example:
// "akka.actor.processing-time" = [0.1, 1.0, 10.0]
}
}


embedded-server {

# Hostname and port used by the embedded web server to publish the scraping enpoint.
hostname = 127.0.0.1
port = 9095
}
}

modules {
kamon-log-reporter.auto-start = no
kamon-scala.auto-start = yes
kamon-system-metrics.auto-start = yes
kamon-statsd.auto-start = no
kamon-prometheus.auto-start = yes
kamon-akka.auto-start = yes
}

}



plugin.sbt:


// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.10")

// Web plugins
addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.4")
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.8")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.1")
addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.1.0")
addSbtPlugin("org.irundaia.sbt" % "sbt-sassify" % "1.4.6")

// Play enhancer - this automatically generates getters/setters for public fields
// and rewrites accessors of these fields to use the getters/setters. Remove this
// plugin if you prefer not to have this feature, or disable on a per project
// basis using disablePlugins(PlayEnhancer) in your build.sbt
addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.1.0")

// Play Ebean support, to enable, uncomment this line, and enable in your build.sbt using
// enablePlugins(PlayEbean).
// addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "3.0.2")


resolvers += Resolver.bintrayIvyRepo("kamon-io", "sbt-plugins")
addSbtPlugin("io.kamon" % "sbt-aspectj-play-runner" % "1.0.4")


addSbtPlugin("com.lightbend.sbt" % "sbt-javaagent" % "0.1.4")





Reply all
Reply to author
Forward
0 new messages