我用Akka创建了一个示例服务,用于测试Kamon + DataDog监控。
下面是我添加的依赖项:
"io.kamon" %% "kamon-core" % "1.1.0",
"io.kamon" %% "kamon-datadog" % "1.0.0",
"io.kamon" %% "kamon-akka-2.5" % "1.0.1"以下是在build.sbt中启用的插件
.enablePlugins(AshScriptPlugin, DockerPlugin, SbtAspectJRunner)然后是application.conf
kamon {
datadog {
time-units = "ms"
memory-units = "b"
}
util {
filters {
"akka.tracked-actor" {
includes = [ "testSystem/user/**" ]
excludes = [ "testSystem/system/**" ]
}
"s3-worker-actors" {
includes = [ "testSystem/user/s3Router/*" ]
}
"fb-worker-actors" {
includes = [ "testSystem/user/fbRouter/*" ]
}
"akka.tracked-router" {
includes = [ "testSystem/user/s3Router", "testSystem/user/fbRouter" ]
}
"akka.tracked-dispatcher" {
includes = [ "**" ]
}
"akka.traced-actor" {
includes = [ "**" ]
}
}
}
akka.actor-groups = [ "s3-worker-actors", "fb-worker-actors" ]
}最后,在我调用的Main类中:
Kamon.addReporter(new DatadogAgentReporter())在EC2上,我为docker安装了datadog-agent。
当我在EC2实例上运行服务容器,然后查看DataDog接口时,我没有看到任何与akka相关的指标,只看到了一系列标准指标,比如:datadog.process.agent、docker.cpu.usage、system.io.await等
当一个akka应用打包到docker中并部署到EC2上时,如何开启akka相关指标?
发布于 2018-10-24 22:06:01
当你开始你的Akka应用程序时,有必要使用add AspectJ weaver as Java Agent:-javaagent:aspectjweaver.jar
您可以在项目SBT配置中添加以下设置:
.settings(
retrieveManaged := true,
libraryDependencies += "org.aspectj" % "aspectjweaver" % aspectJWeaverV)因此,AspectJ weaver JAR将被复制到项目根目录下的./lib_managed/jars/org.aspectj/aspectjweaver/aspectjweaver-[aspectJWeaverV].jar中。
然后你可以在你的Dockerfile中引用这个JAR:
COPY ./lib_managed/jars/org.aspectj/aspectjweaver/aspectjweaver-*.jar /app-
workdir/aspectjweaver.jar
WORKDIR /app-workdir
CMD ["java", "-javaagent:aspectjweaver.jar", "-jar", "app.jar"]https://stackoverflow.com/questions/50468823
复制相似问题