実行中のスプリング・ブートアプリケーションへのJavaエージェントを接続する方法

mrtCherry:

私は今、私はプロメテウスを用いたマイクロサービスを監視するために、このアプリケーションにJavaエージェントを添付したい、ポート上で実行されている戦争にパッケージ化春のブートアプリケーションを持っています。しかしからメトリックをこすり取る際には、スプリングプラグインのいずれかを使用しません。

そのために私はそれを開始することにより、アプリケーションとJavaエージェントを実行する方法を発見した(ジュース、それは完全に働いた裁判のために瓶に私のアプリをパッケージ化)

java -javaagent <Path-to javaagent jar>:PORT -jar app.jar

私のプロジェクトをjarファイルにパッケージ化されている場合、これは罰金を動作しますが、それは別のポートにPORTと私のアプリケーションでJavaエージェントを開始し、Javaエージェントからメトリックを取得することができイム。

しかし、実際の問題は、私のアプリケーションは戦争にパッケージ化されています。

私たちは戦争のファイルを使用してJavaエージェントを実行することはできますか?

アプリケーションはMavenので開始された後も、私は試してみたい他の事はある、と他のスプリングブートアプリケーションのように、JVMにこのエージェントjarを添付「MVN春ブート:実行」

これはどのように達成することができますか?

mrtCherry:

@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が起動するには、アプリの戦争を展開し、ビルドし、ジェンキンスの仕事と私たちのステージング環境の実行サーバ。

予想通り、それは、働いていました。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=180486&siteId=1