2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

さくっとJAVAのWEBアプリを作成してOMC APMを試す

Last updated at Posted at 2020-01-11

Oracle Management CloudのApplication Performance Monitoringをちょっと試してみたいと思っても、実際にWEBアプリケーションの動作する環境を準備しなければいけないのでなかなか面倒です。
ここではJAVAのWEBアプリケーションと必要な環境の構築をDockerを使い、誰でも簡単にAPMを試せる環境を極力簡単に構築する方法をご紹介します。

作成するWebアプリケーション

MySQLにJDBCアクセスするダミーのWEBサンプルアプリケーション。レスポンスが遅くなるような仕掛けあり。
image.png

Dockerでの構築イメージ

ここではOracle CloudのAlways FreeにDockerをインストールして、ApacheとMySQLのコンテナを起動します。そしてサンプルのWEBアプリケーションをOMCのAPMで監視するという構成を作成します。OCIのLinuxのVMインスタンスであれば、手順通りのCopy&Pasteで実施できるようにしています。
image.png

##Always FreeのVMインスタンスを用意

  • VMインスタンスはインターネットへHTTPSアクセスができることが必須
  • アクセスはアウトバンドのみ(Cloud Agent --> OMC) インバウンドは発生しない
    image.png
1. Docker&Docker Composeのインストール
$ sudo yum install docker-engine
$ sudo gpasswd -a $USER docker
$ docker -v
Docker version 19.03.1-ol, build ead9442
$ sudo curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
※ここで今接続しているターミナルを終了して、もう一度新しくターミナルを開き直す
$ sudo systemctl start docker.service
$ sudo systemctl enable docker.service

2.Webアプリのソースをダウンロード&解凍
$ pwd
/home/opc
$ wget https://github.com/westan24/omcapp/archive/master.zip
$ unzip master.zip
$ cd omcapp-master
$ unzip omcapp.zip
$ ls
apmdemo2.war        Dockerfile   my.cnf      person_db_mysql.sql
docker-compose.yml  initial.sql  omcapp.zip  README.md

3.Docker MySQLに必要なフォルダの作成
$ sudo rm -rf ./db
$ sudo mkdir ./db
$ sudo mkdir ./db/mysql_data
$ sudo mkdir ./db/mysql_init/
$ sudo cp initial.sql db/mysql_init/
$ sudo cp person_db_mysql.sql db/mysql_init/

##最新のAPMエージェントをOMCからダウンロードする

  • OMCのコンソールからエージェントをクリック
    image.png

  • 右上のアイコンのエージェントのダウンロードをクリック
    image.png

  • エージェントタイプをAPMエージェントを選択し、APM JAVA Agentをクリックしてダウンロード
    image.png

  • 右上のアイコンの登録キーの管理をクリック
    image.png

  • 好きな名前を入力し、新規キーの作成をクリック
    image.png

  • 生成されたキーの値をダウンロードしておく
    image.png

Dockerコンテナの作成及び起動

ダウンロードした1.4x_APM_226.zipとregistrationKey.txtの2つのファイルを/home/opc/omcapp-masterにコピーする
$ ls
1.46_APM_226.zip    Dockerfile   omcapp.zip           registrationKey.txt
apmdemo2.war        initial.sql  person_db_mysql.sql
docker-compose.yml  my.cnf       README.md

※APMエージェント名をリネーム (APMエージェント名はバージョンごとにインクリメントされるので)
$ mv 1.46_APM_226.zip 1.45_APM_226.zip

$ docker-compose up -d
~色々構築中メッセージが流れる~
Creating mysql ... done
Creating tomcat ... done

$ docker-compose ps
 Name              Command             State                 Ports
--------------------------------------------------------------------------------
mysql    docker-entrypoint.sh mysqld   Up      0.0.0.0:3306->3306/tcp, 33060/tcp
tomcat   catalina.sh run               Up      0.0.0.0:8080->8080/tcp

※両方のコンテナがUPされていればOK
  • ブラウザで以下のアドレスにアクセス

  • サンプルのWebアプリケーション
    このWebアプリは途中エラーが発生することもあります。あまり細かいことは気にせずに・・・。
    (Log Analyticsのログ分析とかで使えるようにしているので)
    image.png

実際にAPMでWEBアプリケーションのパフォーマンスを見る

  • APMのホーム画面
    image.png

  • サーバーリクエスト内部の詳細ダイアグラム
    image.png

  • データベースがJDBC接続の場合はSQLクエリーごとの実行状況が見れる
    image.png

  • 各インスタンスごとの実行履歴 (10秒かかっているアクセスが表示されている)
    image.png

  • ユーザのブラウザ操作履歴の情報を見るに、エンドユーザー・モニタリングの有効化が必要です

  • レスポンスが10秒遅延した場合のユーザのブラウザ操作履歴
    image.png

  • アクセスの経路とページ表示まで10秒かかったことが分かる
    image.png

いかがだったでしょうか?
OMCのInfrastructure MonitoringでDockerの監視やLog AnalyticsでTomcatとMySQLのログを分析するなどの動作検証にもそのまま使えるかと思います。Node.jsのバージョンもまたの機会にご紹介したいと思います。

Oracle Management Cloud関連の情報はこちら

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?