2024年4月9日火曜日

Oracle CloudのApplication Performance MonitoringのReal User MonitorをAPEXアプリケーションに組み込む

GitHubにoracle-quickstartというリポジトリがあり、そこにOracle Cloudの監視および管理(Observability and Management)に含まれるアプリケーション・パフォーマンス・モニタリング(Application Performance Monitoring)のリアル・ユーザー・モニターをOracle APEXアプリケーションに組み込む方法が紹介されています。

Set up a Real User Monitor for an APEX application with OCI Application Performance Monitoring
https://github.com/oracle-quickstart/oci-o11y-solutions/tree/main/knowlege-content/oracle-database/APEX/apm

設定手順がYouTubeのビデオで紹介されていて、その手順に従うと設定できました。ただしAlways Free(無償枠)の範囲だと、ビデオの後半で説明されているカスタム・ダッシュボードの作成とデータベースへのドリルダウンは(データベースのモニタリングが無償ではないため)できないようです。

本記事では、Oracle APEXに関わる設定で確認した内容を紹介します。

最初にAPMドメインを作成します。

Oracle Cloudのコンソールのメニューより、監視および管理を選択し、アプリケーション・パフォーマンス・モニタリング管理を開きます。


すでに作成済みのAPMドメインがあればそれを利用するか、または新規に作成します。

今回は新規に作成します。APMドメインの作成をクリックします。


作成するAPMドメインの名前はAPEXとします。無償枠の範囲とするためAlways Freeドメインとして作成チェックを入れます。

作成するコンパートメントを選んで、作成をクリックします。


大体、10分弱の時間がかかりましたが、APMドメインとしてAPEXが作成されました。

APMエージェントのダウンロードを開きます。


APEXアプリケーションに組み込むのはブラウザ・エージェントです。

YouTubeのビデオでは、これをコピーしてAPEXのアプリケーションに貼り付けるように案内していますが、GitHubにリアル・ユーザー・モニターのudfAttributesを含んだブラウザ・エージェントの記述があるので、そちらを使います。

ブラウザ・エージェントについて、以下で説明されています。


APEXアプリケーションに移ります。

今回はサンプル・データセットのEMP/DEPTをインストールしたときに作成できるアプリケーション、Demonstration - EMP / DEPTにブラウザ・エージェントを組み込みます。

組み込むブラウザ・エージェントを、以下よりコピペします。


グローバール・ページを開き、タイプ静的コンテンツのリージョンを作成します。識別タイトルRUM Agentとします。

ソースHTMLコードブラウザ・エージェントのコードを記述します。ページにJavaScriptのコードを埋め込むだけで、何も表示する必要はないため、外観テンプレートなしにします。


作成したAPMドメインAPEXの詳細を開き、データ・アップロード・エンドポイントパブリック・データ・キーを確認します。これらの値は、ブラウザ・エージェントのコードに埋め込みます。


<APM Browser>の部分はAPEX UI<Web App Name>Demonstration - EMP / DEPTに置き換えます。2箇所ある<ociDataUploadEndpoint>をAPMドメインの詳細画面に記載のあるデータ・アップロード・エンドポイントに置き換え、<APM_Public_Datakey>パブリック・データ・キーに置き換えます。


以上でAPEXアプリケーションへのブラウザ・エージェントの組み込みは完了です。

アプリケーションを実行し、色々と操作をします。


Oracle Cloudのコンソールよりアプリケーション・パフォーマンス・モニタリングダッシュボードを開きます。


Oracleが標準で提供しているダッシュボードよりリアル・ユーザー・モニタリングを開きます。


ブラウザ・エージェントから取得した情報がダッシュボードに表示されます。


無償枠の範囲でできることは以上です。

YouTubeのビデオでは、ブラウザ・エージェントのudfAttributesに設定したUserNameAPP_USER)、APEXSessioinIdAPP_SESSION)、APEXPageIdAPP_PAGE_ID)さらにAPEXDBClientIdAPP_USER:APP_SESSIONはデータベースのV$SESSIONの列CLIENT_IDENTIFIERに設定されるため、この値を使ってDBの情報をドリルダウンできます)などの情報を使った、カスタムのダッシュボードの作成やデータベースの情報の参照方法を紹介しています。