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

## はじめに
システム安定稼働のためには、日ごろから運用システムのリソース状態を確認しておくことは非常に重要です。
今回は、OCI上の下記構成の2つのBase Databaseのリソース(メトリック)表示、また、その確認方法ついてみていきます。
![BDB構成図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762549/9474b9f9-38da-4ba9-a777-728e846a2024.png)

## 前提条件
* Base 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/Content/Security/Reference/monitoring_security.htm#iam-policies)

## メトリック・ネームスペースとサービス・メトリック
**メトリック・ネームスペース**と**サービス・メトリック**がわかるとモニタリングを効果的に利用できます。
![BDBはじめに.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762549/94b1c56d-1e45-0f25-e5bd-bcfe8bd09ab4.png)



*  **メトリック・ネームスペース(oci_****)**
    * メトリックがまとめられている
 * **サービス・メトリック**
    * 複数リソースのメトリックを一括で表示(同一リージョン, 同一コンパートメント内)
    * メトリック・ネームスペース内の全メトリックを表示
:::note warn
補足
CDBはデフォルト(無償)でメトリックを確認できるが、PDBのメトリック確認する場合は、[別途有償サービスが必要](https://speakerdeck.com/oracle4engineer/oci-database-management?slide=13)
:::




## Base Databaseのメトリック・ネームスペース
Base Databaseで利用可能なメトリック・ネームスペースは、下記2つになります。
* oci_database_cluster(Databaseシステム)
* oci_database(Database)

#### oci_database_cluster(Databaseシステム)
DBシステムの詳細＞メトリック(画面左下のResourcesから選択)
※上記の遷移をすると、自動的にoci_database_clusterが選択されます。
![BDBメトリックネームスペース.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762549/af66c71c-c27b-8344-2a3a-7a27234f262b.png)


| No. | メトリック表示名 | メトリック名 | 説明 |
|:-:|---|---|---|
| 1  | CPU使用率  | CpuUtilization  | CPU使用率  |
|  2 |  メモリー使用率  | MemoryUtilization     | スワップせずに新しいアプリケーションを起動するために使用できるメモリーの割合    |
| 3  | スワップ使用率  |  SwapUtilization  | 合計スワップ領域の使用率  |
| 4  | 負荷平均    | LoadAverage  |  5分間のシステム負荷平均 |
| 5  |  ノード・ステータス |  NodeStatus | RAC環境でホストにアクセスできるかどうかを示します  |
|  6 | ASMディスク・グループ使用率   | ASMDiskgroupUtilization  |  ディスク・グループで使用されている使用可能な領域の割合 |
| 7★  |  ファイルシステム使用率 |   FilesystemUtilization |  ファイルシステムの使用率 |
| 8★  | 割当て済OCPU  | OcpusAllocated  | 割当て済OCPUの数  |


※★の項目は、Base Database個別画面上で非表示なため、サービス・メトリックから確認します。

#### oci_database(Database)
DBシステムの詳細＞データベースの名前選択
※上記の遷移をすると、自動的にoci_databaseが選択されます。
![BDBメトリックネームスペースDB.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762549/5ec64bd9-725c-9c07-3b47-ed46fe521a89.png)


| No. | メトリック表示名 | メトリック名 | 説明 |
|:-:|---|---|---|
|  1 |  CPU使用率   |  CpuUtilization       | すべてのコンシューマ・グループにわたって集計された、パーセントで表したCPU使用率     |
|  2 | ストレージの使用率    | StorageUtilization      | ストレージ容量のうち、現在使用中の割合(すべての表領域の割当て済領域の合計)       |
|  3 | DBブロック変更       | BlockChanges        | 1秒当たりの変更されたブロックの平均数。           |
|  4 | 実行数    | ExecuteCount      |選択した間隔中にSQL文を実行したユーザー・コールおよび再帰コールの数。      |
|  5 | 現在のログオン    | CurrentLogons   | 選択した間隔中に成功したログオン数。     |
|  6 | 解析数  | ParseCount   |	選択した間隔中のハード解析とソフト解析の数。     |
|  7★ | トランザクション数  | TransactionCount    |選択した間隔中のユーザー・コミットとユーザー・ロールバックを合せた数。      |
|  8★ | ユーザー・コール  | UserCalls   |選択した間隔中のログオン、解析および実行コールを合せた数。     |
|  9★ | 使用済ストレージ領域  | StorageUsed  |	収集時にデータベースによって使用されたストレージ領域の合計量。     |
|  10★ | 割当て済ストレージ領域  | StorageAllocated  |	収集時にデータベースに割り当てられたストレージ領域の合計量。     |
|  11★ | 表領域による使用済ストレージ領域  | StorageUsedByTablespace  |	収集時に表領域によって使用されたストレージ領域の合計量。コンテナ・データベースの場合、このメトリックはルート・コンテナ表領域を提供します。    |
|  12★ | 表領域による割当て済ストレージ領域 | StorageAllocatedByTablespace  |	収集時に表領域に割り当てられたストレージ領域の合計量。コンテナ・データベースの場合、このメトリックはルート・コンテナ表領域を提供します。    |
|  13★ | 表領域によるストレージ領域使用率 | StorageUtilizationByTablespace  |	これは、収集時に表領域によって使用されたストレージ領域の割合を示します。コンテナ・データベースの場合、このメトリックはルート・コンテナ表領域を提供します。    |

※★の項目は、Base Database個別画面上で非表示なため、サービス・メトリックから確認します。

## メトリック画面
下記ハイライト部分項目を変化させることで、モニタリング結果を分析可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762549/ed84c01f-f877-309b-6c9d-3ec5cff965ce.png)

* 開始時間と終了時間枠(過去90日分)
* 統計
  * 平均, 最小、最大等
* 期間内における間隔
  * 自動, 1分, 5分, 1時間
       * メトリックにより最小の間隔が異なる(例：CPU使用率は5分, ストレージ使用率は1時間)
       * 期間が長い場合、間隔は限定される(例：時間範囲1時間の場合はすべての間隔選択可能。90日だと1時間から選択可能)
* オプション
  * 選択しているメトリックに対するアラームの設定等が可能



## サービス・メトリック
複数Base Databaseのメトリックを一括※1で確認可能です。
ハンバーガーメニュー(左上)＞監視および管理＞モニタリング＞サービス・メトリック
※1 特定コンパートメントと特定リージョン内にある全Base Databaseが対象です。
![BDBメトリックサービス.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762549/a222706d-fcff-2640-6b42-1d94b1c9d62d.png)


Base Databaseの個別画面で表示されていなかったその他全てのメトリック(oci_database_cluster)が確認できます(ハイライトの項目が個別画面から追加)。
![BDBメトリックサービスふえてる.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762549/2c6f0d62-ca7b-cea3-b4c4-66a834156deb.png)



## まとめ
今回は、**メトリック・ネームスペース**と**サービス・メトリック**の使い方を確認しました。OCIでは、Base Databaseの他にもComputeやストレージ(block volume, object storage)のリソースもありますが、基本的なモニタリングの考え方は同じなので、応用できそうですね。