ソースコードのディレクトリ構成
Glowroot のソースリポジトリは、機能ごとにモジュールが明確に分割されています。主要なディレクトリとその役割は以下の通りです。
.
├── agent # Java エージェントの実装本体
├── build # ビルドスクリプトおよび設定
├── central # データ収集・表示サーバー
├── common | 共通ユーティリティライブラリ
├── common2 # 追加共通コンポーネント
├── ui # フロントエンド資産(HTML/CSS/JS)
├── webdriver-tests # Selenium による E2E テスト
└── wire-api # 内部通信用 API 定義
- agent: 対象アプリケーションにアタッチされ、パフォーマンスデータを収集する Java エージェント。
- central: 収集されたデータを集約し、Web UI を通じて可視化するバックエンドサービス。
- common / common2: 複数モジュールで共有される基底クラスやヘルパー機能。
- ui: ユーザーインターフェースを構成する静的リソース。
- webdriver-tests: ブラウザ自動化ツールを用いた統合テスト suite。
- wire-api: エージェントと中央サーバー間の通信プロトコル定義。
実行環境の起動プロセス
システムを稼働させるには、エージェント側の設定と中央サーバーの起動が必要です。
エージェントの接続
監視対象の Java アプリケーションに対して、JVM 起動オプションとしてエージェントを指定します。環境変数を利用すると管理が容易になります。
export JAVA_OPTS="-javaagent:/opt/glowroot/agent.jar"
java $JAVA_OPTS -jar your-application.jar
上記のパスは、実際に配置したエージェント JAR ファイルの絶対パスに置き換えてください。
中央サーバーの起動
データ収集サーバーは standalone な Jar ファイルとして実行可能です。必要に応じてヒープメモリサイズを指定することを推奨します。
java -Xmx512m -jar central/dist/glowroot-central.jar
起動完了後、ブラウザで http://localhost:4000 にアクセスするとダッシュボードが表示されます。
UI 開発モード
フロントエンドの修正やデバッグを行う場合、サンドボックス環境を起動できます。これにより、ローカルホスト上で UI を独立して実行し、バックエンドへプロキシ接続できます。
mvn -pl ui exec:java -Dexec.mainClass=org.glowroot.ui.sandbox.UiSandboxMain
設定パラメータの管理
動作制御は、エージェント側と中央サーバー側でそれぞれ設定ファイルを用意します。
エージェント設定
エージェントの挙動は、主に agent/glowroot.properties または config.ini で定義されます。ここではログ出力レベルや、メトリクス収集のサンプリング間隔などを調整できます。変更を反映させるには、監視対象アプリケーションの再起動が必要です。
中央サーバー設定
サーバー側の設定は central/conf/application.conf に集約されています。データベース接続文字列、HTTP リスナーポート、認証機構などの構成を記述します。実行中に書き込み権限が必要な項目もあるため、プロセス実行ユーザーの権限管理に注意してください。設定変更後は中央サーバーサービスの再起動を行い、変更を有効化します。