私は今、私はプロメテウスを用いたマイクロサービスを監視するために、このアプリケーションにJavaエージェントを添付したい、ポート上で実行されている戦争にパッケージ化春のブートアプリケーションを持っています。しかしからメトリックをこすり取る際には、スプリングプラグインのいずれかを使用しません。
そのために私はそれを開始することにより、アプリケーションとJavaエージェントを実行する方法を発見した(ジュース、それは完全に働いた裁判のために瓶に私のアプリをパッケージ化)
java -javaagent <Path-to javaagent jar>:PORT -jar app.jar
私のプロジェクトをjarファイルにパッケージ化されている場合、これは罰金を動作しますが、それは別のポートにPORTと私のアプリケーションでJavaエージェントを開始し、Javaエージェントからメトリックを取得することができイム。
しかし、実際の問題は、私のアプリケーションは戦争にパッケージ化されています。
私たちは戦争のファイルを使用してJavaエージェントを実行することはできますか?
アプリケーションはMavenので開始された後も、私は試してみたい他の事はある、と他のスプリングブートアプリケーションのように、JVMにこのエージェントjarを添付「MVN春ブート:実行」
これはどのように達成することができますか?
@Strelokで示唆したように、私はポートで実行するMAVEN_OPTSにJavaエージェントを追加しました、
設定MAVEN_OPTS = -javaagent:パスにjavaagent瓶= PORT = 9300
次のコマンドを実行します。私は、MVN、スプリングブーツと私のアプリケーションを実行するとどちらが私のローカル環境で働いていました。
しかし、2つの異なるマイクロサービスが実行されている場合は/エージェントが既に同じポート上で実行されているとおり、第二のマイクロサービスの問題原因上記のかもしれませんがMAVEN_OPTSを追加し、同時に監視しました。代わりに、ENV変数にMAVEN_OPTSを追加するような場合には、我々は春・ブートのMaven-プラグインとしてエージェントを開始するには下のpom.xmlにエージェントタグを追加することができます。
<configuration>
<agent>
PATH to JAR=port=XXXX
</agent>
</configuration>
しかし、私は私のTomcatのsetenv.shにCATALINA_OPTSにJavaエージェントのjarファイル・パスを追加しているので(./startup.shを実行することによって。)TomcatサーバとTomcatが起動するには、アプリの戦争を展開し、ビルドし、ジェンキンスの仕事と私たちのステージング環境の実行サーバ。
予想通り、それは、働いていました。