[OCI]Autonomous Databaseのメトリック(CPU使用率等)のモニタリングに関して調べてみた

## はじめに
システム安定稼働のためには、日ごろから運用システムのリソース状態を確認しておくことは非常に重要です。
今回は、下記構成のAutonomous Databaseのメトリックを確認します。[Base Databaseの記事](https://qiita.com/ToooCan/private/e80c825742fa8b3a5fc7)を事前に確認いただくとこで、以降読みやすくなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762549/72d747a8-3667-0574-572d-d73d305ad805.png)


## 前提条件
* Autonomous Databaseが作成済みであること
* 管理者権限([administratosグループ所属](https://docs.oracle.com/ja-jp/iaas/Content/Identity/conversion/groups.htm#default-group-names)) or [必要なIAMポリシーがあること](https://docs.oracle.com/ja-jp/iaas/autonomous-database/doc/view-autonomous-database-metrics-database.html)

## oci_autonomous_database
* **個別のAutonomous_databaseのメトリックをみる場合(一部のメトリックのみ表示)**
Autonomous Databaseの詳細＞画面下へスクロール
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762549/3d60b194-4fd7-2964-7d04-40e6830c9212.png)

| No. | メトリック表示名 | メトリック名 | 説明 |
|:-:|---|---|---|
| 1  | CPU使用率  | CpuUtilization  | すべてのコンシューマ・グループ間で集計された、パーセントで表されたCPU使用率。  |
| 2  |ストレージの使用状況  | StorageUtilization | プロビジョニングされたストレージ容量のうち、現在使用中の割合。  |
| 3  | セッション | Sessions | データベース内のセッション数。 |
| 4  | 実行数 | ExecuteCount |SQL文を実行したユーザー・コールおよび再帰コールの数。 |
| 5  | 実行中の文 | RunningStatements| すべてのコンシューマ・グループ間で集計した実行中のSQL文の数。 |
| 6  | キュー済のステートメント | QueuedStatements | すべてのコンシューマ・グループ間で集計したキュー済SQL文の数。 |
| 7  | 失敗した接続 | FailedConnections | 失敗したデータベース接続の数。 |
| 8  | データベース可用性 | DatabaseAvailability | データベースは指定された分単位で接続可能：1 = DB 利用可能, 0 = DB利用不可 |


* **複数台のAutonomous_databaseメトリックを一括※1でみる場合(全てのメトリック表示)**

ハンバーガーメニュー(左上)＞監視および管理＞モニタリング＞**サービス・メトリック**
※1 特定コンパートメントと特定リージョン内にある全Autonomous Databaseが対象です。下記全メトリックの一部表示します。**個別ページから確認できなかったメトリックが表示**されていることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762549/654789c7-ab69-5e57-6a99-4b201875c1fc.png)

| No. | メトリック表示名 | メトリック名 | 説明 |
|:-:|---|---|---|
| 1  | CPU使用率  | CpuUtilization  | すべてのコンシューマ・グループ間で集計された、パーセントで表されたCPU使用率。  |
| 2  |ストレージの使用状況  | StorageUtilization | プロビジョニングされたストレージ容量のうち、現在使用中の割合。  |
| 3  | セッション | Sessions | データベース内のセッション数。 |
| 4  | 実行数 | ExecuteCount | SQL文を実行したユーザー・コールおよび再帰コールの数。 |
| 5  | 実行中の文 | RunningStatements| すべてのコンシューマ・グループ間で集計した実行中のSQL文の数。 |
| 6  | キュー済のステートメント | QueuedStatements | すべてのコンシューマ・グループ間で集計したキュー済SQL文の数。 |
| 7  | 失敗した接続 | FailedConnections | 失敗したデータベース接続の数。 |
| 8  | データベース可用性 | DatabaseAvailability | データベースは指定された分単位で接続可能：1 = DB 利用可能, 0 = DB利用不可 |
| 9★  | 最大ストレージ領域 | StorageMax | データベースに予約されるストレージの最大量。 |
| 10★  | 割当て済ストレージ領域 |StorageAllocated| データベースに割り当てられた領域の最大量。 |
| 11★  | 使用済ストレージ領域 |StorageUsed| 各表領域によって使用された領域の最大量。 |
| 12★  | トランザクション件数 |TransactionCount| ユーザーコミット数とユーザーロールバック数の合計。 |
| 13★  | 現在のログオン |CurrentLogons| 成功したログオン数。 |
| 14★  | ユーザー・コール |UserCalls| ログオン、解析、実行コールの合計数。 |
| 15★  | 解析数(合計) |ParseCount| ハード解析とソフト解析の数。 |
| 16★  | DB時間 |DBTime| データベース・ユーザー・セッションがデータベース・コードの実行に費やす時間(CPU時間 + WaitTime)。DB時間は、データベース・コール・レイテンシ(レスポンス時間)とコール量の両方に直接比例して増加するため、データベース・コール・レイテンシを推測するために使用されます。 |
| 17★  | 待機時間 |WaitTime| データベースのフォアグラウンド・セッションによる非アイドル状態の累積待機時間の平均レート。 |
| 18★  | 失敗したログオン |FailedLogons| 無効なユーザー名および/またはパスワードのために失敗したログオンの数。 |
| 19★  | 接続レイテンシ |ConnectionLatency|同じリージョンのComputeサービス仮想マシンから、各リージョンのOracle Autonomous Database Serverlessインスタンスに接続するのにかかる時間。  |
| 20★  | 問合せレイテンシ |QueryLatency| 単純なクエリ結果をユーザーの画面に表示するのにかかる時間。 |
| 21★  | CPU時間 |CpuTime|データベースのフォアグラウンド・セッションによる累積CPU時間の平均レート。 |
| 22★  | ユーザー・コミット |UserCommits| ユーザーがコミットした回数。ユーザがトランザクションをコミットすると、データベース・ブロックに加えられた変更を反映する生成されたREDOをディスクに書き込む必要があります。コミットは多くの場合、ユーザー・トランザクション率に最も近いものを表します。 |
| 23★  | ユーザー・ロールバック |UserRollbacks| ユーザーが手動でROLLBACK文を発行した回数、またはユーザーのトランザクション中にエラーが発生した回数 |
| 24★  | REDOサイズ |RedoGenerated| 生成されたREDOサイズ |
| 25★  | セッション論理読取り数 |LogicalReads| 「db ブロックの取得」と「一貫性のある取得」の合計。これには、バッファキャッシュまたはプロセスのプライベートメモリからのデータベースブロックの論理読み込みが含まれる。 |
| 26★  | DBブロック変更 |DBBlockChanges| 1秒当たりの変更されたブロックの平均数。 |
| 27★  | 物理読取り |PhysicalReads| ディスクから読み込まれたデータブロック数 |
| 28★  | 物理書込み |PhysicalWrites| ディスクに書き込まれたデータブロック数 |
| 29★  | 物理読取り合計バイト |PhysicalReadTotalBytes| アプリケーションの読み取り、バックアップとリカバリ、その他のユーティリティを含む、すべてのデータベースインスタンスアクティビティによるディスク読み取りサイズ |
| 30★  | 物理書込み合計バイト |PhysicalWriteTotalBytes| アプリケーション・アクティビティ、バックアップとリカバリ、およびその他のユーティリティを含む、データベース・インスタンスのすべてのディスク書き込みのサイズ |
| 31★  | 解析数(ハード) |HardParseCount| パース・コールの回数（実際のパース回数） |
| 32★  | 解析数(失敗) |ParseFailureCount| パースに失敗した回数 |
| 33★  | SQL*Net経由でDBLinkから受信したバイト |SQLNetBytesFromDBLink| Oracle Net Services経由でデータベースリンクから受信したバイト数 |
| 34★  | SQL*Net経由でDBLinkに送信されたバイト |SQLNetBytesToDBLink| データベースリンクで送信されたバイト数 |
| 35★  | SQL*Net経由でクライアントから受信したバイト |SQLNetBytesFromClient| クライアントからOracle Net Services経由で受信したバイト数 |
| 36★  | SQL*Net経由でクライアントに送信されたバイト |SQLNetBytesToClient|フォアグラウンド・プロセスからクライアントに送られたバイト数 |

※★の項目は、サービス・メトリック画面にのみ表示されます。

## Appendix
* **APEX**
oci_autonomous_databaseのサービス・メトリックからは、**APEXというキーワードを含んだメトリック**も表示されます。[APEX](https://oracle-japan.github.io/ocitutorials/adb/adb105-create-apex-app/)とは、Autonomous Database作成と同時に追加コストなしで、使用できるローコードのアプリ開発ツールです。

| No. | メトリック表示名 | メトリック名 | 説明 |
|:-:|---|---|---|
| 1  | APEXページ・イベント | APEXPageEvents  | 一定期間にわたるページ・イベントの数を表示します。  |
| 2  |APEXページ・ロード時間  | APEXPageLoadTime | 時間間隔での平均APEXページ実行時間。  |
| 3  | アクティブなAPEXアプリケーション | APEXApps | 一定の間隔でアクティブなAPEXアプリケーションの数を表示します。 |
| 4  | APEXワークスペース数 | APEXWorkspaceCount | 一定の間隔におけるAPEXワークスペースの数を表示します。 |


* **Autonomous DatabaseとBase Databaseの違い**
[こちら](https://speakerdeck.com/oracle4engineer/oracle-autonomous-database?slide=29)によると、Base Databaseに比べ、Autonomousという名がついている通り、運用自動化(スケーリング等)される部分が多いDatabaseです。
<br>

* **その他、モニタリングツール**
     * [パフォーマンス・ハブ](https://oracle-japan.github.io/ocitutorials/adb/adb203-bulk-query/#%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%83%8F%E3%83%96)
     * [データベース・ダッシュボード](https://oracle-japan.github.io/ocitutorials/adb/adb203-bulk-query/#%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%83%8F%E3%83%96)


## まとめ
今回は、Autonomous Databaseをメトリックについて確認しました。