OCI Cloud Advisor

OCI(Oracle Cloud Infrastructure)にはお客様がコスト管理をするために無料で利用できる標準サービスが提供されており、順次紹介していきます。今回は第２回OCI Cloud Advisorです。

第１回　OCI FinOps Hub
https://qiita.com/nsaka0315/items/e645bb0114e8e9a19dc4
第２回　OCI Cloud Advisor(本稿)
第３回　OCI Bugedts　https://qiita.com/nsaka0315/items/460dd316defabdc0fc2b
第４回　OCI Cost&Usage Report
https://qiita.com/nsaka0315/items/d1faba63218596d8982b
第５回　OCI Cost Analysys https://qiita.com/nsaka0315/items/61b65a1bc3ae7805a32f
# クラウド・アドバイザー
Oracle クラウド・アドバイザは、すべてのテナンシのOCIクラウド・リソースを分析し、コスト削減を最大化し、テナンシのパフォーマンス、セキュリティおよび可用性を最適化するための推奨事項を提供するOracle Cloud Infrastructure (OCI)サービスです。
クラウド・アドバイザには、次の4つの機能があります。

1. コストの削減:コスト管理の推奨事項は、十分に利用されていないリソースを識別し、パフォーマンスを低下させることなくリソースを縮小してコストを削減できるように推奨事項を作成します。

1. パフォーマンスの向上: パフォーマンスの推奨事項では、過度に使用されているリソースを識別し、リソースの拡大を推奨します。パフォーマンス自動チューニング機能を使用していないブロック・ボリュームおよびブート・ボリュームを識別して、有効化することを推奨します。

1. システム・レジリエンスの強化: 高可用性の推奨事項は、環境のレジリエンスとビジネス継続性を確保するために異なる可用性ドメイン内の冗長なコンピュート・ノードを使用したり、フォルト・ドメインを正しく活用して、Oracle Cloud Infrastructure上で実行されているアプリケーションの可用性を高めることをお薦めします。

1. セキュリティの強化:セキュリティサービスのクラウド・ガードが標準で組み込まれており、セキュリティの脆弱性を確認して対処するための推奨事項を生成します。

OCI管理コンソールからは[ガバナンスと管理]-[クラウド・アドバイザ]-[概要]を選択すれば次の画面が現れ上記４つの機能(コスト管理、高可用性、パフォーマンス、セキュリティ)毎に推奨事項の件数や種別、ステータスが示されています。

![スクリーンショット 2024-07-26 11.53.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3849840/18440d56-a5f3-f4e1-0efe-2fe0fa1c127f.png)

下記ではコスト管理について推奨事項のより詳細な内容を記述しています。

推奨事項一覧(コスト管理)
![スクリーンショット 2024-08-16 15.34.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3849840/7e5a4d85-42fc-1a01-a082-1f942e9392fa.png)


## 1.前提
テナンシーでoptimizer-api-familyが管理できる権限が必要になります。
optimizer-resource-action、optimizer-resource-metadataはコンパートメントレベルで必要となります。
必要なIAM policyは以下の通りです。

```
Allow group <group名> to manage optimizer-api-family in tenancy

Allow group <group名> to manage optimizer-api-family in compartment id ocid1.compartment.oc1..******

Allow group <group名> to manage optimizer-resource-action in compartment id ocid1.compartment.oc1.. ..******

Allow group <group名> to manage optimizer-resource-metadata in compartment id ocid1.compartment.oc1.. ..****** 
```

## 2.有効化
テナンシー内でリソースを何か作成していればクラウドアドバイザーは自動で有効化されます。
OCI管理コンソールからは[ガバナンスと管理]-[クラウド・アドバイザ]-[設定]
の画面で"クラウドアドバイザの無効化"のボタンが表示されていることを確認してください。
もしボタンが"クラウドアドバイザの有効化"であれば、まだ有効化されていないので
そのまま押して有効化してください
![スクリーンショット 2024-07-26 11.52.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3849840/3e9f9846-5686-e47e-704c-ee9949ca7c8b.png)

## 3.活用
OCI管理コンソールからは[ガバナンスと管理]-[クラウド・アドバイザ]-[推奨事項]を選択すれば次の画面が現れます。
![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3849840/449a4da2-2b5d-0e02-b05a-a8bba1e67359.png)

画面では推奨事項のタイプの"利用率の低いコンピュート・インスタンスの縮小"の数が１なので、これは1つのリソースが当推奨事項に該当することを意味しており、クリックすることで詳細画面に移ります。

![図2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3849840/1f16c5af-e291-d36f-76f1-8c8685bc3601.png)

リソース名、推定節約額、月次請求の割合等が表示されます。

この画面から実装(推奨される変更の実施)、延期(変更を延期して、指定の期間までダッシュボードに表示させない)、却下(変更を却下して、Activateするまでダッシュボードに表示させない)を選択することが可能です。実装を選択することで、該当のリソースに対して推奨OCPU数への変更が実施(24-48時間後)され、実装済みにステータスが変更されます。通常のコンピュート・インスタンス詳細画面から編集を選択してリソース縮小することも可能です、この場合でも次回のCloud Advisor日次チェック時にステータスが実装済みに変更されます。

クラウド・アドバイザは、1日に1回テナンシをスキャンして問題を特定し、それらを解決するための推奨事項を表示します。直近のスキャン日時は推奨事項の詳細画面の表の右上の「最終チェック」の日時で確認できます。表示されても翌日のスキャン時に問題が解決されていれば表からは消えます。ただし、この場合でも[ガバナンスと管理]-[クラウド・アドバイザ]-[履歴]の表には残るので後から確認することもできます。
クラウド・アドバイザがリソース使用率を確認して、コンピュート推奨事項を表示するには、コンピュート・インスタンスのモニタリングの有効化、同様にデータベース推奨事項を表示するには、データベース管理のモニタリングの有効化が必要になります。有効でない場合、クラウド・アドバイザによって有効にする推奨事項が生成されます。

組織の機能を活用しているアカウントの場合、親テナンシは、組織内の子テナンシに対して生成された推奨事項を表示できます。またリージョン全体およびリージョンに含まれるテナンシ全体のクラウド・アドバイザの推奨事項を表示できます。

## 4.設定カストマイズ
[ガバナンスと管理]-[クラウド・アドバイザ]-[設定]と押せば、下記の設定の画面が現れます。
![スクリーンショット 2024-08-19 13.03.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3849840/b198adfd-c4e5-269a-08a7-bf3fe7b342df.png)
グローバル推奨事項で、「カスタマイズ可能な推奨事項のみ表示」にチェツクをつけることで設定カストマイズ可能な推奨事項の一覧が表示されます。
画面では9つの推奨事項(コスト管理5つ,パフォーマンス4つ）に推奨プロファイルと評価期間が表示されています。
これらはリソース利用率をチェックして推奨事項を生成するものであり、しきい値等の変更が可能になっています。表の右端をクリックしてカストマイズを押せば、下記のように推奨事項のロジックをカスタマイズする画面が現れます。ここでは利用率の低いコンピュート・インスタンスの縮小を選択します。

「評価期間」は直近1/7/14/30/60/90日(デフォルト7日)から、「方法」は評価方法を意味しており平均もしくはp95(上位95%の値)を選択します。評価期間は7~30日をお勧めします。経験上1日だと短すぎて推奨項目が頻繁に表示されたり、消えたりすること、60日以上だと表示されにくくなるからです。
その下には3つのプロファイルが表示されており、CPU/メモリ/ネットワーク利用率のしきい値を組み合わせたものです。保守的(しきい値を高くして推奨をでにくくする）、標準(デフォルトで平均のしきい値)、積極的(しきい値を低して推奨をでやすくする）の３つのプロファイルから選択することになります。特別な要件がない限り平均をお勧めします。
![スクリーンショット 2024-08-16 16.35.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3849840/8aefa04c-278c-ad87-46b2-8fc465a5e4ba.png)
変更の保存ボタンを押せば反映されます。

元の設定画面に戻りスクロールダウンして、「オーバーライドの作成ボタン」を押せば下記画面が現れます。オーバーライドによって、指定したコンパートメントまたは指定したタグ付きのリソースのみを対象に適用される推奨事項のロジックを変更できます。

![スクリーンショット 2024-08-14 16.54.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3849840/370e812d-21d1-2a97-47e8-8dfb9aa0b08b.png)

## 5.CLI/API (Optimizer)
マルチテナンシー/マルチコンパートメントでリソース数が膨大にのぼる大規模OCI環境を運用する場合は、表示される推奨事項のリソース数も多くなり、OCIコンソール画面からの確認も大変煩雑になります。このような場合はCLI/API等を利用して運用シェルを作成するのが有効です。

Cloud AdvisorのCLIのサービスはoptiomizerとなり、下記がよく利用される主要なタイプとなります。

1. category-summary: 推奨事項のカテゴリーを表示。
1. recommendation-summary: 推奨事項のタイプの一覧を表示。(recommendation-id)毎に問題に該当するリソースの数、推定節約金額等を含む。optimizer　CLIの中心となるタイプで他のタイプの親表のような位置付けで、recommendation-idが参照キーとなる、OCI管理コンソールの推奨事項の画面に相当する。
1. resource-action-summary:　推奨事項の問題に該当したリソース毎に現状のステータス(pending,implemented等)を保有。recommendation-idが外部キーとなり、recommendation-summaryに紐付け。　OCI管理コンソールの推奨事項の詳細画面に相当する。
1. profile-summary: 推奨事項の(リソースしきい値)設定ファイル。recommendation-idが外部キーとなり、recommendation-summaryに紐付け。OCI管理コンソールの設定のグローバル推奨事項に相当する。
1. profile-level: リソース(CPU,メモリ,Network)利用率の
しきい値の組み合わせ (aggressive,average,conservative等)　recommendation-nameが外部キーとなり、recommendation-summaryに紐付け。

次にこれらの5つのoptimizerタイプを利用したサンプルコマンドを見ていきます。
詳細なCLI/API利用方法は最後にある参考情報のリンクを参照ください。CLIの出力はJSONですがそのフォーマット、識別キー、意味等はAPIのリンクの方に記載あります。
今回はJSONレコード抽出などにjqコマンドは利用せず極力CLI --queryオプション(JMEPATH問い合わせ言語)を利用しています。合わせて参考情報のリンクを参照ください。

### Optimizer CLIサンプル

### [1]推奨項目カテゴリーの一覧
category-summaryのタイプを利用して推奨項目のカテゴリーの一覧を出力
```
% oci optimizer category-summary list -c ocid1.tenancy.oc1..aaaaaaaa********* --query 'data.items[].name' --compartment-id-in-subtree true --all

[
  "high-availability-name",
  "performance-name",
  "cost-management-name"
]
```
高可用性、パフォーマンス、コスト管理の３つが出力されます。

### [2]利用率の低いコンピュート・インスタンスのocidを出力 
利用率の低いコンピュート・インスタンスの縮小の推奨事項に該当するインスタンスのocid及びインスタンス名を出力させます。recommendation-summaryには該当するリソース情報はないので、resource-action-summaryも合わせて利用します。
まずrecommendation-summary listを利用しますが、推奨事項が全て一覧として出てしまうので、ここでは--queryオプションを使用してcountが0でない(推奨事項の問題にhitした)推奨事項のidだけを出力させます。このrecommendation-idを条件にresource-action-summaryで該当するリソースのocid/リソース名を出力させます。

```
% oci optimizer recommendation-summary list --all --compartment-id ocid1.tenancy.oc1..aaaaaaaa******* --compartment-id-in-subtree True --query 'data.items[?"resource-counts"[?status==`PENDING` && count != `0`]].{"name":name, "id":id, "count":"resource-counts"[?status==`PENDING`].count | [0]}'              

[
  {
    "count": 1,
    "id": "ocid1.optimizerrecommendation.oc1..aaaaaaaa*****",
    "name": "high-availability-compute-fault-domain-name"
  },
  {
    "count": 4,
    "id": "ocid1.optimizerrecommendation.oc1..aaaaaaaa******",
    "name": "performance-boot-volume-enable-auto-tuning-name"
  },
  {
    "count": 1,
    "id": "ocid1.optimizerrecommendation.oc1..aaaaaaaahz****",
    "name": "cost-management-compute-host-underutilized-name"
  },
  {
    "count": 2,
    "id": "ocid1.optimizerrecommendation.oc1..aaaaaaaa******",
    "name": "cost-management-object-storage-enable-olm-name"
  }
]
```
cost-management-compute-host-underutilized-name(利用率の低いコンピュート・インスタンスの縮小)のidを控えておき、resource-action-summary listの--queryオプションの条件指定に利用します。
```
% oci optimizer resource-action-summary list --all --compartment-id ocid1.tenancy.oc1..aaaaaaaa******* --compartment-id-in-subtree True --query 'data.items[?"recommendation-id" == `ocid1.optimizerrecommendation.oc1..aaaaaaaahz6hiljsz5kyqd4tu4o5gamrms2l7pxn24vuntkdrjlyjrnh4ugq`].{resourceId: "resource-id", name: name}'
[
  {
    "name": "ca01",
    "resourceId": "ocid1.instance.oc1.ap-tokyo-1.**********"
  }
]
```
上記の通りrecommendation-idを条件にインスタンスリソース縮小のリソース名とocidを取得できました。リソースのocidにより他にもより詳細な情報を入手することが可能になります。下記はmonitoring metric-dataを利用してCPU利用率のデータを取得した例です。

```
oci monitoring metric-data summarize-metrics-data --namespace oci_computeagent --query-text 'CpuUtilization[1m]{resourceId = "ocid1.instance.oc1.ap-tokyo-1.anxhiljrnyabxsyck2z75j2d7ydo4q6n5bkmvpngpob37lafdmhzuiqrir2a"}.mean()' --compartment-id ocid1.compartment.oc1..aaaaaaaa*************
{
  "data": [
    {
      "aggregated-datapoints": [
        {
          "timestamp": "2024-08-18T22:44:00+00:00",
          "value": 0.0444509466147499
        },
        {
          "timestamp": "2024-08-18T22:45:00+00:00",
          "value": 0.0528106893076415
        },
        {
          "timestamp": "2024-08-18T22:46:00+00:00",
          "value": 0.058355579179650306
        },

        ・・・・・・・・・
        中途省略
        ・・・・・・・・・
        
        {
          "timestamp": "2024-08-19T01:43:00+00:00",
          "value": 0.05279445108325104
        }
      ],
      "compartment-id": "ocid1.compartment.oc1..aaaaaaaa**************",
      "dimensions": {
        "availabilityDomain": "ozjB:AP-TOKYO-1-AD-1",
        "dedicatedVmHostId": "DefaultVmHostId",
        "faultDomain": "FAULT-DOMAIN-3",
        "imageId": "ocid1.image.oc1.ap-tokyo-1.aaaaaaaa******************",
        "instancePoolId": "Default",
        "region": "ap-tokyo-1",
        "resourceDisplayName": "ca01",
        "resourceId": "ocid1.instance.oc1.ap-tokyo-1.*************",
        "shape": "VM.Standard.A1.Flex"
      },
      "metadata": {
        "displayName": "CPU Utilization",
        "maxRange": "100",
        "minRange": "0",
        "unit": "Percent"
      },
      "name": "CpuUtilization",
      "namespace": "oci_computeagent",
      "resolution": null,
      "resource-group": null
    }
  ]
}
```

### [3]グローバル推奨事項のプロファイルの一覧を出力

profile-summary listを使い設定画面で紹介したカスタマイズ可能なグローバル推奨事項の推奨プロファイルの一覧を出力させます。

```
oci optimizer profile-summary list --compartment-id ocid1.tenancy.oc1..aaaaaaaa******* --all --query 'data.items[].{"profile-id": id, "name": name, "levels": "levels-configuration".items[]}'

[
  {
    "levels": [
      {
        "level": "cost-lbaas_standard_max",
        "recommendation-id": "ocid1.optimizerrecommendation.oc1..aaaaaaaaree2zjvspluiqszu76rcwddkgbtm2uduhbgjbsjajzp2hbqfkh7a"
      }
    ],
    "name": "cost-management-load-balancer-underutilized-name-default-profile",
    "profile-id": "ocid1.optimizerprofile.oc1.ap-tokyo-1.amaaaaaanyabxsyadt7bo66zapzpl74rszyvzaq2c36o663fpowogvci6baq"
  },
  {
    "levels": [
      {
        "level": "cost-compute_burstable_standard",
        "recommendation-id": "ocid1.optimizerrecommendation.oc1..aaaaaaaat7ds4zszfjzsljcceltylhxypbzbj5llckkyrb2ivczj2cpbiewq"
      }
    ],
    "name": "cost-management-compute-host-burstable-name-default-profile",
    "profile-id": "ocid1.optimizerprofile.oc1.ap-tokyo-1.amaaaaaanyabxsya5utaaiwzpsd5qbuiqtpdypb24vzns4xgefqdiax4gxoq"
  },
  {
    "levels": [
      {
        "level": "cost-vmdb_aggressive_mean",
        "recommendation-id": "ocid1.optimizerrecommendation.oc1..aaaaaaaasbrvihmit2dp3konlry5h66xtcfb4a7su6cp5qqt34xa7olbho6q"
      }
    ],
    "name": "downsize-vmdb-system-default-profile",
    "profile-id": "ocid1.optimizerprofile.oc1.ap-tokyo-1.amaaaaaanyabxsyaf3iea6yua2kn234duugix2uus64lb7pgpism5wd3znta"
  },
  {
    "levels": [
      {
        "level": "perf-vmdb_standard_mean",
        "recommendation-id": "ocid1.optimizerrecommendation.oc1..aaaaaaaa4gixofzivejqhmin6xoex5wbp7kq4mf3zzui4orunpdgcbecivoa"
      }
    ],
    "name": "rightsize-vmdb-system-default-profile",
    "profile-id": "ocid1.optimizerprofile.oc1.ap-tokyo-1.amaaaaaanyabxsya2gcuwnlaegkidzhjgxn7mlrvxojgee4aecaczl2yfwqa"
  },
  {
    "levels": [
      {
        "level": "perf-exacs-x6-x7-x8_standard_mean",
        "recommendation-id": "ocid1.optimizerrecommendation.oc1..aaaaaaaabaoqlxzl4253ewrpysrlviijh5pbqspih5lo3ds4r6qiw3nial5a"
      }
    ],
    "name": "rightsize-exacs-x6-x7-x8-db-cluster-default-profile",
    "profile-id": "ocid1.optimizerprofile.oc1.ap-tokyo-1.amaaaaaanyabxsya4hoygsr4cxead5gxlffpzzsuj7q32dbw4hr7khugjbua"
  },
  {
    "levels": [
      {
        "level": "perf-compute_aggressive_average",
        "recommendation-id": "ocid1.optimizerrecommendation.oc1..aaaaaaaajbzuorokomu5zdmrdmqrtgnhctqmqs4jvero65mhd7kaahqwi7gq"
      }
    ],
    "name": "performance-compute-host-highutilization-name-default-profile",
    "profile-id": "ocid1.optimizerprofile.oc1.ap-tokyo-1.amaaaaaanyabxsyayv2umydn5uwleiunl7jb6abvbc236mqgrelqbhviq45a"
  },
  {
    "levels": [
      {
        "level": "perf-lbaas_standard_max",
        "recommendation-id": "ocid1.optimizerrecommendation.oc1..aaaaaaaa3bpvpwhlszd5w3oxi2n7asvf23r32mvmhj3purcuwn56kenlhfva"
      }
    ],
    "name": "performance-load-balancer-highutilization-name-default-profile",
    "profile-id": "ocid1.optimizerprofile.oc1.ap-tokyo-1.amaaaaaanyabxsyaet7bg5mvaf65yiumrxoloqycvxa3ikwcp2fx6pnaobxq"
  },
  {
    "levels": [
      {
        "level": "cost-exacs-x6-x7-x8_standard_mean",
        "recommendation-id": "ocid1.optimizerrecommendation.oc1..aaaaaaaarmn5a7hexhuy2uip6yk3k5xwphf7q3t6hpwbn3r2mb7xxkt5wckq"
      }
    ],
    "name": "downsize-exacs-x6-x7-x8-db-cluster-default-profile",
    "profile-id": "ocid1.optimizerprofile.oc1.ap-tokyo-1.amaaaaaanyabxsya7l7w5pqdg5zl5rfkyvlrssctthyrpibgdwh2ano6rvwa"
  },
  {
    "levels": [
      {
        "level": "cost-compute_aggressive_average",
        "recommendation-id": "ocid1.optimizerrecommendation.oc1..aaaaaaaahz6hiljsz5kyqd4tu4o5gamrms2l7pxn24vuntkdrjlyjrnh4ugq"
      }
    ],
    "name": "cost-management-compute-host-underutilized-name-default-profile",
    "profile-id": "ocid1.optimizerprofile.oc1.ap-tokyo-1.amaaaaaanyabxsyafmmw4o7ujxbavpqw5svqsvmlxwtmbqn5ecyxe4ejjnbq"
  }
]
```
以下のProfileが出力されます。設定画面で紹介した９つのカスタマイズ可能なグローバル推奨事項に一致します。
- cost-management-load-balancer-underutilized-name-default-profile
- cost-management-compute-host-burstable-name-default-profile
- downsize-vmdb-system-default-profile
- rightsize-vmdb-system-default-profile
- rightsize-exacs-x6-x7-x8-db-cluster-default-profile
- performance-compute-host-highutilization-name-default-profile
- performance-load-balancer-highutilization-name-default-profile
- downsize-exacs-x6-x7-x8-db-cluster-default-profile
- cost-management-compute-host-underutilized-name-default-profile

oci optimizer profile update を利用すれば、profile-idを指定しlevelを変更すればupdateは可能です。level名は下記で説明します。

### [4]推奨事項のprofile-levelの一覧を出力
グローバル推奨事項のうち"利用率の低いコンピュート・インスタンスの縮小"のprofile-level(しきい値の組み合わせ)の一覧を出力させます。
profile-level-summaryを利用して、cost-management-compute-host-underutilized-nameの条件を指定して抽出します。

現時点ではprofile-levelを構成するリソースのしきい値を変更したり、新規にprofile-levelを作成して、グローバル推奨事項のカストマイズ設定に利用することはできません。

```
% oci optimizer profile-level-summary list-profile-levels --all --compartment-id ocid1.tenancy.oc1..aaaaaaaa3bgp7z6kffjkajrxckvtxfnj7lnn7cvgvqbbr4stmozk7obqdjjq --compartment-id-in-subtree true --query 'data.items[?"recommendation-name"==`cost-management-compute-host-underutilized-name`]'

[
  {
    "default-interval": 7,
    "metrics": [
      {
        "name": "CpuUtilization",
        "statistic": "p95",
        "target": 30.0,
        "threshold": 15.0
      },
      {
        "name": "MemoryUtilization",
        "statistic": "max",
        "target": 20.0,
        "threshold": 10.0
      },
      {
        "name": "NetworkUtilization",
        "statistic": "max",
        "target": 6.0,
        "threshold": 3.0
      }
    ],
    "name": "cost-compute_aggressive_p95",
    "recommendation-name": "cost-management-compute-host-underutilized-name",
    "time-created": "2020-10-30T01:50:20.903000+00:00",
    "time-updated": "2021-07-30T19:39:47.980000+00:00",
    "valid-intervals": [
      1,
      7,
      14,
      30,
      60,
      90
    ]
  },
  {
    "default-interval": 7,
    "metrics": [
      {
        "name": "CpuUtilization",
        "statistic": "p95",
        "target": 20.0,
        "threshold": 10.0
      },
      {
        "name": "MemoryUtilization",
        "statistic": "max",
        "target": 20.0,
        "threshold": 10.0
      },
      {
        "name": "NetworkUtilization",
        "statistic": "max",
        "target": 6.0,
        "threshold": 3.0
      }
    ],
    "name": "cost-compute_standard_p95",
    "recommendation-name": "cost-management-compute-host-underutilized-name",
    "time-created": "2020-10-30T01:49:46.129000+00:00",
    "time-updated": "2021-07-30T19:39:47.854000+00:00",
    "valid-intervals": [
      1,
      7,
      14,
      30,
      60,
      90
    ]
  },
  {
    "default-interval": 7,
    "metrics": [
      {
        "name": "CpuUtilization",
        "statistic": "p95",
        "target": 10.0,
        "threshold": 5.0
      },
      {
        "name": "MemoryUtilization",
        "statistic": "max",
        "target": 20.0,
        "threshold": 10.0
      },
      {
        "name": "NetworkUtilization",
        "statistic": "max",
        "target": 6.0,
        "threshold": 3.0
      }
    ],
    "name": "cost-compute_conservative_p95",
    "recommendation-name": "cost-management-compute-host-underutilized-name",
    "time-created": "2020-10-30T01:49:11.927000+00:00",
    "time-updated": "2021-07-30T19:39:47.785000+00:00",
    "valid-intervals": [
      1,
      7,
      14,
      30,
      60,
      90
    ]
  },
  {
    "default-interval": 7,
    "metrics": [
      {
        "name": "CpuUtilization",
        "statistic": "avg",
        "target": 30.0,
        "threshold": 15.0
      },
      {
        "name": "MemoryUtilization",
        "statistic": "max",
        "target": 20.0,
        "threshold": 10.0
      },
      {
        "name": "NetworkUtilization",
        "statistic": "max",
        "target": 6.0,
        "threshold": 3.0
      }
    ],
    "name": "cost-compute_aggressive_average",
    "recommendation-name": "cost-management-compute-host-underutilized-name",
    "time-created": "2020-10-30T01:48:36.979000+00:00",
    "time-updated": "2021-07-30T19:39:47.723000+00:00",
    "valid-intervals": [
      1,
      7,
      14,
      30,
      60,
      90
    ]
  },
  {
    "default-interval": 7,
    "metrics": [
      {
        "name": "CpuUtilization",
        "statistic": "avg",
        "target": 20.0,
        "threshold": 10.0
      },
      {
        "name": "MemoryUtilization",
        "statistic": "max",
        "target": 20.0,
        "threshold": 10.0
      },
      {
        "name": "NetworkUtilization",
        "statistic": "max",
        "target": 6.0,
        "threshold": 3.0
      }
    ],
    "name": "cost-compute_standard_average",
    "recommendation-name": "cost-management-compute-host-underutilized-name",
    "time-created": "2020-10-30T01:47:55.800000+00:00",
    "time-updated": "2021-07-30T19:39:47.674000+00:00",
    "valid-intervals": [
      1,
      7,
      14,
      30,
      60,
      90
    ]
  },
  {
    "default-interval": 7,
    "metrics": [
      {
        "name": "CpuUtilization",
        "statistic": "avg",
        "target": 10.0,
        "threshold": 5.0
      },
      {
        "name": "MemoryUtilization",
        "statistic": "max",
        "target": 20.0,
        "threshold": 10.0
      },
      {
        "name": "NetworkUtilization",
        "statistic": "max",
        "target": 6.0,
        "threshold": 3.0
      }
    ],
    "name": "cost-compute_conservative_average",
    "recommendation-name": "cost-management-compute-host-underutilized-name",
    "time-created": "2020-10-30T01:47:13.940000+00:00",
    "time-updated": "2021-07-30T19:39:47.581000+00:00",
    "valid-intervals": [
      1,
      7,
      14,
      30,
      60,
      90
    ]
  }
]
```
以下6つが出力されました。
- cost-compute_aggressive_p95　
- cost-compute_standard_p95
- cost-compute_conservative_p95
- cost-compute_aggressive_average
- cost-compute_standard_average
- cost-compute_conservative_average

## 参考情報
[OCIドキュメント クラウドアドバイザー](https://docs.oracle.com/ja-jp/iaas/Content/CloudAdvisor/home.htm)

[OCI CLI optimizer](https://docs.oracle.com/en-us/iaas/tools/oci-cli/3.45.2/oci_cli_docs/cmdref/optimizer.html)

[Cloud Advisor API](https://docs.oracle.com/en-us/iaas/api/#/en/advisor/20200606/)

[CLIの入力および出力の管理](
https://docs.oracle.com/ja-jp/iaas/Content/API/SDKDocs/cliusing.htm#Managing_CLI_Input_and_Output)