お問い合わせ
お問い合わせ
TOPICS
更新情報
ホーム > ブログ > Oracle Cloud > Oracle Application Performance Monitoring(APM)アプリケーション監視

Oracle Application Performance Monitoring(APM)アプリケーション監視

Oracle Cloud
2021.06.02

はじめに

s−ikeokaです

OracleApplication Performance Monitoring(APM)とは、一般的にはアプリケーションやシステムの性能を管理・監視することを指します。Oracle Application PerformanceMonitoringでは、アプリケーションやシステムの応答時間を調査することや、アプリケーションを構成するさまざまな要素のパフォーマンスを調査することなどにより、アプリケーション全体の稼働状況を把握します。

目次

  • 環境
  • 前提条件
    • 1.ポリシーの作成
    • 2.APMドメインの作成
    • 3.データアップロードエンドポイントとデータキーの取得
  • テストアプリ作成
  • リアル・ユーザ・モニタリング
  • OCIモニタリング

環境

今回利用するOracleCloud環境

コンパートメントenigma
グループAPM-Admins
APMドメイン名APM-Admin

前提条件

事前に以下の設定をしておく必要があります。

  1. ポリシー作成
  2. PMドメインを作成
  3. データアップロードエンドポイントとデータキーを取得

1.ポリシーの作成

APMドメイン管理権限
  • Allow group APM-Admins to manage apm-domains in compartment enigma
モニタリング監視用にアラーム作成、通知権限
  • Allow group APM-Admins to manage alarms in compartment enigma
  • Allow group APM-Admins to read metrics in compartment enigma
  • Allow group APM-Admins to use ons-topics in compartment enigma

ポリシーをAPM-Adminsグループに割り当てる。

2.APMドメインを作成

コンソールから以下の手順で作成する。

アプリケーション・パフォーマンス・モニタリング>Administration
APMドメインの作成
任意の名前を入力しコンパートメントを選択する。

3.データアップロードエンドポイントとデータキーを取得

作成したAPMドメインのエンドポイントとパブリックデータキーをコピーしておく

テストアプリ作成

任意のサーバにdockerテスト用pythonアプリを作成します。

../samcats/
├── app.py
├── Dockerfile
├── requirements.txt
└── templates
└── index.html

app.py

`from flask import Flask, render_template
import random

app = Flask(__name__)

# list of cat images
images = [
    "http://ak-hdl.buzzfed.com/static/2013-10/enhanced/webdr05/15/9/anigif_enhanced-buzz-26388-1381844103-11.gif",
    "http://ak-hdl.buzzfed.com/static/2013-10/enhanced/webdr01/15/9/anigif_enhanced-buzz-31540-1381844535-8.gif",
    "http://ak-hdl.buzzfed.com/static/2013-10/enhanced/webdr05/15/9/anigif_enhanced-buzz-26390-1381844163-18.gif"
]

@app.route('/')
def index():
    url = random.choice(images)
    return render_template('index.html', url=url)

if __name__ == "__main__":
    app.run(host="0.0.0.0")`

テストアプリは8888ポートにアクセスすると画像を返す処理をします。
http://xxx.xxx.xxx.xxx:8888 (XXXはホストIP)

リアル・ユーザー・モニタリング

リアルユーザモニタリングはページの読み込み時間とユーザーアクションを監視することにより、パフォーマンスの低下を識別します。

<script>
window.apmrum = (window.apmrum || {});
window.apmrum.serviceName='samcats';←アプリケーション名
window.apmrum.webApplication='samcats';←APM表示名
window.apmrum.ociDataUploadEndpoint='https://aaaac6fl7alzcaaaaaaaaaaaxy.apm-agt.ap-osaka-1.oci.oraclecloud.com';←データアプロードエンドポイント
window.apmrum.OracleAPMPublicDataKey='ZDFQYR2EZGAPR3ZZMYX6YGZZLXXLMO57';←パブリックデータキー
 </script>
 <script async crossorigin="anonymous" src="https://aaaac6fl7alzcaaaaaaaaaaaxy.apm-agt.ap-osaka-1.oci.oraclecloud.com/static/jslib/apmrum.min.js">
 </script>

index.htmlヘッダー領域に必要なコードを含めます。

APMドキュメントのAPMブラウザエージェントコードをヘッダー領域に追加する。

先程コピーしたデータアップロードエンドポイント、パブリックデータキーを追加する。

コードを配置すると、APMはアプリの追跡を開始し、APMダッシュボードとトレースエクスプローラーにアプリに関する情報が表示される。

OCI Application Performance リアルユーザーモニタリングダッシュボード
実行の成功と失敗、およびロード時間の内訳を示すシンセティック監視ダッシュボード
トレースエクスプローラーでページアクセスの詳細を表示

合成モニタリング

合成モニターは、アプリケーションパフォーマンス監視データソースの一種で

URLのステータス監視などを行えるようになります。

合成モニタリング→モニターの作成を選択
名前 任意の名前を指定
タイプ Browserを指定
ベースURL URLを指定
バンテージ・ポイント 任意のポイントを指定
実行時間 10分
タイムアウト 1分
メトリックが作成される。
メトリックに監視設定アラームの設定もできます。

まとめ

APMは他社の製品もありますが、Oracle Management Cloudでも提供してるのでぜひ利用してみてください。

使い始めるのは非常に簡単です。

AWS、Azure等他クラウドやオンプレに構築しているアプリケーションにも対応可能です。

コストは1日あたり約$16程度で利用できるようです。

今回はインストールまでとしましたが、次回は解析に使いそうなモニタリングの内容を触って見たいと思います。

参考

https://docs.oracle.com/en-us/iaas/application-performance-monitoring/doc/application-performance-monitoring.html


この記事が気に入ったら
「いいね!」

この記事を書いた人


関連コンテンツ

CONTACT お問い合わせ

Cloudiiのサービスやプロダクトについて
興味をお持ちの方は、
お気軽にお問い合わせください。