Glowroot で Web サービスの負荷を監視する

Java で作成した Web サービスの CPU 使用率などをブラウザ上で確認できたらいいなと思い、さくっと調べたところ Glowroot がとても簡単に導入できそうでした。

github.com

導入

導入は Github のページ記載されている Quick Start の通りで、zip をダウンロードして Java エージェントを指定してアプリを起動するだけです。

Gradle + Gretty で Web サービスを起動する場合、まずは適当にプロジェクト直下に lib ディレクトリを作成して、その中に zip を解凍します。

projectName/ ・・・ プロジェクトルート
    lib/ ・・・ ライブラリディレクトリ
        glowroot/ ・・・ 解凍した zip。この下に負荷情報が保存される
            glowroot.jar ・・・ Java エージェント
            lib/ ・・・ OS 毎に必要な jar

次に gretty の設定に Javaエージェントを指定します。

build.gradle

gretty {
    jvmArgs = [
        '-javaagent:lib/glowroot/glowroot.jar'
    ]
}

Web アプリの起動方法は特に変わりません。アプリ起動後 localhost:4000 へアクセスするとサーバの負荷を確認できます。

$ gradle appRun

サンプル

前回の JSF プロジェクトで設定した例になります。JSF にも対応しているので、レンダリング処理と呼び出し処理などそれぞれの時間が分けて集計されています。

f:id:erudoru:20190324222927p:plain

サイトの方に対応しているフレームワークが記載されていますが、プラグインを作成すれば他のフレームワークでも監視できるようになるようです。

https://glowroot.org/features.html