使用 sbt-native-packager 通过 JavaServerAppPackaging 检测 promethe



我正在尝试使用 prometheus 导出器检测 java 应用程序,使用sbt-native-packager

这是我所拥有的:

插件.sbt

addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.5.1")

build.sbt

import com.typesafe.sbt.packager.docker.DockerChmodType
dockerChmodType := DockerChmodType.UserGroupWriteExecute
enablePlugins(JavaServerAppPackaging, AshScriptPlugin, DockerPlugin)
settings(moduleName := "my-test")
settings(mainClass in Compile := Some("org.name.demo.stream.MyTestClass"))
dockerBaseImage := "openjdk:8-jre-alpine"
daemonUser in Docker    := "test"

根据普罗米修斯导出器文档,我想将导出器检测为 java 代理:

java -javaagent:./jmx_prometheus_javaagent-0.12.0.jar=8080:config.yaml -jar my-test_2.12-0.1.jar

我可以通过sbt-native-packager进行此检测吗?欣赏输入。

使用 https://github.com/sbt/sbt-javaagent 在插件中.sbt

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

然后在build.sbt

val MyAppSettings = Seq(
name := "My",
dockerBaseImage := "adoptopenjdk:11-jre-hotspot",
mainClass := Some("com.MyClass"),
packageName in Docker := "mycontainer",
libraryDependencies ++= myDependencies,
javaAgents += JavaAgent("io.prometheus.jmx" % "jmx_prometheus_javaagent" % "0.16.1", arguments = "33002:/opt/docker/jmx-exporter.yaml"),
mappings in Universal ++= Seq(
file("jmx-exporter.yaml") -> "jmx-exporter.yaml"
)
)
lazy val myProject = (project in file("my-project"))
.settings(MyAppSettings)
.enablePlugins(JavaAppPackaging, JavaAgent)

最新更新