コスト分析の概要

コスト分析は、Oracle Cloud Infrastructureの支出の追跡と最適化に役立つ使いやすいビジュアライゼーション・ツールであり、チャートを生成したり、Oracle Cloud Infrastructureの消費量に関する集計コスト・データの正確で信頼性の高い表形式のレポートをダウンロードできます。このツールは、支出トレンドのスポット・チェックおよびレポートの生成に使用します。参考として一般的なシナリオを次に示します:

  • コンパートメントXおよびその子の月次コストをサービス別またはタグ別にグループ化して表示します。
  • タグ・キーAおよびタグ・キーBの日次コスト、値X、YおよびZを、サービスと製品の説明(SKU)別にグループ化して表示します。
  • サービスがコンピュートまたはデータベースの毎時コストを、コンパートメント名別にグループ化して表示します。

目的の日付を選択できます。特定のタグ、コンパートメント、サービスまたはフィルタでフィルタ処理し、それをどのようにグループ化するかを選択します。その結果、チャートおよび対応するデータ表が生成され、データ表としてダウンロードすることもできます。

クラシック・バージョンによって提供された内訳を最新バージョンのコスト分析ツールで再作成する場合は、SKU (部品番号)グループ化ディメンションを適用します。新しい方法でコストを探索するには、サービスまたはサービスと製品の説明に基づいてコストを表示することをお薦めします。コスト・トラッキングを行う場合は、コンパートメントまたはタグ別にグループ化することをお薦めします。

ノート

コスト・トラッキング・タグだけでなく、すべてのタグがサポートされています。

必要なIAMポリシー

Oracle Cloud Infrastructureを使用するには、管理者によってポリシーでセキュリティ・アクセス権が付与されている必要があります。このアクセス権は、コンソール、あるいはSDK、CLIまたはその他のツールを使用したREST APIのいずれを使用している場合でも必要です。権限がない、または認可されていないというメッセージが表示される場合は、管理者に連絡して、どのタイプのアクセス権があり、どのコンパートメントで作業する必要があるかを確認してください。

ポリシーを初めて使用する場合は、ポリシーの開始共通ポリシーを参照してください。

コスト分析を使用するには、次のポリシー・ステートメントが必要です:

Allow group <group_name> to read usage-report in tenancy

認証と認可

Oracle Cloud Infrastructureの各サービスは、すべてのインタフェース(コンソール、SDKまたはCLI、およびREST API)の認証および認可のためにIAMと統合されています。

組織の管理者は、どのユーザーがどのサービスとリソースにアクセスできるか、およびアクセスのタイプを制御する、グループコンパートメントおよびポリシーを設定する必要があります。たとえば、ポリシーは、新しいユーザーの作成、クラウド・ネットワークの作成と管理、インスタンスの起動、バケットの作成、オブジェクトのダウンロードなどを実行できるユーザーを制御します。詳細は、ポリシーの開始を参照してください。異なる各サービスに対するポリシーの記述の詳細は、ポリシー・リファレンスを参照してください。

会社が所有するOracle Cloud Infrastructureリソースを使用する必要がある通常のユーザー(管理者ではない)の場合は、ユーザーIDを設定するよう管理者に連絡してください。管理者は、使用する必要があるコンパートメントを確認できます。

コスト分析問合せフィールド

次の表で、コスト分析の問合せフィールドについて説明します。

フィールド名 説明
期間(UTC)

使用状況ストアで使用可能なデータについて事前定義済の時間範囲を問い合せることができます。他の時間範囲は、クラシック・バージョンを使用して問い合せることができます。

ドロップダウンで使用可能なオプション(たとえば、「今月」「先月」)はUTCタイム・ゾーンに準拠し、カレンダ年に基づいています。実際の時間範囲はカッコで囲まれて示されます。期間を変更すると、グラフのすぐ上にもそれが表示されます。

粒度(毎時、毎日、毎月)は、リクエストされた日付範囲サイズに基づきます。ロジックは次のとおりです:

  • 毎時: 48時間以内
  • 毎日: 48時間超、2か月以内
  • 毎月: 2か月超
ノート

履歴データがテナンシ用にバックフィルされているために、すぐには表示されない場合があります。そのプロセスが完了すると、最大12か月分の過去の消費データが使用可能になります。
表示

「コスト」(デフォルト)または「使用状況」に関するレポートを表示できます。

「使用状況」を表示するには、「フィルタ」フィールドから単位のフィルタを選択し、「使用状況情報の表示」ダイアログ・ボックスでそれを適用する必要があります。Oracle Cloud Infrastructureサービスには、GB/月、CPU/時間、APIリクエストの単位があります。

「使用状況」を選択すると、ダイアログが表示され、使用状況データを表示するための単位のフィルタを追加するように求められます。

ノート

「使用状況」で選択できるのは単位のフィルタリングだけであり、その単位に選択できる値は1つだけです。
累積 選択した期間の値が累積されるように値を変更するには、このオプションを選択します。たとえば、10日分のデータを累積的に調べる場合に、各日の値が$5であるとします。このような場合に「累積」を選択すると、10日間の値がそれぞれ5、10、15、20、25、30、35、40、45、50として表示されます。非累積チャートでは、値は5、5、5、5、5、5、5、5、5、5として表示されます。
フィルタ

次を基準にしたフィルタリングを許可します:

  • 可用性ドメイン
  • コンパートメント
    ノート

    コンパートメントによるフィルタリングでは、選択したコンパートメント内のすべてのリソースおよびその子コンパートメントに関連する使用状況とコストが表示されます。
    • OCID別
    • 名前別
    • パス別(たとえば、root/compartmentname/compartmentname)
  • プラットフォーム(Gen-1はOCIネイティブではないサービスです。Gen-2にはすべてのOCIネイティブ・サービスが含まれています)
  • タグ
    • タグ・ネームスペース別
    • TagKey + 値別
  • リージョン
  • サービス
  • 製品の説明(判読可能な対応する名前)
  • SKU - 部品番号(たとえば、B91444)
  • 単位

フィルタの追加、編集、削除およびフィルタ・ロジックの詳細は、フィルタを参照してください。

グループ化ディメンション

特定のグループ化に関してデータをビジュアル化できます。デフォルトでは、サービス別のグループ化ディメンションが表示されます。一度に1つのみのグループ化ディメンションを表示できます。

  • 可用性ドメイン
  • コンパートメント。コンパートメント別のグループ化を選択する場合は、表示名の値とコンパートメントの深さを選択できます。コンパートメントの深さは、コンパートメントのグループ化基準の最下位レベルに相当します。そのグループ化レベルより上のレベルはすべて、それらのコンパートメントに直接含まれるものを返します。グループ化レベルは、それらのコンパートメント内のすべてのリソースの値と、その下位のコンパートメント内のすべてのリソースの値を返します。
    • 表示方法
      • コンパートメント名として表示
      • コンパートメントOCIDとして表示
      • コンパートメント・パスとして表示
      ノート

      「コンパートメントOCID」または「コンパートメント名」を選択した場合、「コンパートメント・レベル」は表示されません。
    • コンパートメント・レベル
      • すべて(デフォルト): すべてのコンパートメントが表示されます。値には、その特定のコンパートメント内のリソースのみに関連する使用状況/支出が表示されます。
      • レベル1 (ルートのみ): 1列のみが返され(ルート)、ルートおよびすべての子コンパートメントに含まれるリソースの値が表示されます。
      • レベル2 (ルート/<value>): ルートが、ルートに含まれるリソースと等しいルートの値とともに表示されます。ルートの直接の子であるすべてのコンパートメントも返されます。それらの各コンパートメントの値は、それに含まれるすべてのリソースの合計、またはそれらのコンパートメントの子に含まれるリソースの合計です。
      • レベル3 (ルート/<value>/<value>): ルートが、ルートに含まれるリソースと等しいルートの値とともに表示されます。また、レベル2のコンパートメントも、その特定の各コンパートメントに含まれるリソースと等しい値とともに返されます。レベル2のコンパートメントの第1子レベルも返されます。第3レベルのコンパートメント(root/child1/child2 <<)の値は、それらのコンパートメント内のリソースに、それらのコンパートメントのすべての子の中のすべてのリソースを加えた値と等しくなります。
      • レベル4 (ルート/<value>/<value>/<value>)
      • レベル5 (ルート/<value>/<value>/<value>/<value>)
  • プラットフォーム(Gen-1はOracle Cloud Infrastructureネイティブではないサービスですが、Gen-2にはすべてのネイティブOracle Cloud Infrastructureサービスが含まれます)
  • リージョン
  • リソースOCID
  • サービス
  • サービスと製品の説明
  • SKU - 部品番号
  • SKU - 製品の説明
  • タグ
  • 単位

グループ化ディメンションの表示と変更の詳細は、グループ化ディメンションを参照してください。

チャート・データの表示および作業

「コスト分析」ページの初回のロード時に、デフォルト・ビューに「今月」の期間のサービスがサービス別にグループ化されて表示されます。「コスト分析」チャートは、X軸に時間(UTC)、Y軸にコスト金額が示される編成になっています。チャートが表示されているときに、チャート内のデータ・ポイントの上にマウスを置くと、その詳細が表示されます。チャートの表示形式がグラフ(デフォルト)、折れ線グラフまたは積上げ折れ線グラフのいずれであっても、ツールチップに特定の時間における特定のY軸アイテムのコスト値のサマリーが表示されます。

チャートの右側の「凡例」ボックスには、デフォルトですべてのデータが表示され、各アイテムが色分けされています。「凡例」のアイテムの横にある目のアイコンをクリックすると、チャート・データのオンとオフを切り替えることができます。たとえば、各種サービスとそのコストが示されたチャートを表示すると、「凡例」ボックスに、問合せに関連する影響を受けるすべてのサービスが含まれます。1つ以上のサービスを切り替えると、チャート出力でそれが動的に表示または非表示になります。ただし、「凡例」のデータを切り替えても、表ビューに表示されるデータやダウンロードされる内容は変わりません。

チャートが表示されているときに、フィルタまたはグループ化ディメンション(あるいはその両方)を追加して、1つ以上のフィルタに従って、またはフィルタと単一のグループ化ディメンションの両方に基づいてコスト・データを表示することもできます。

チャートの下にチャートの表形式ビューも表示されます。期間、フィルタリングおよびグループ化ディメンションのオプションを変えて適用すると、これが更新されます。表データが表示されているときに、列ヘッダーをクリックすると、昇順または降順でソートできます。

ノート

「コスト分析」にデータが表示されるまでに48時間かかる場合があります。

フィルタ

フィルタの追加、編集、削除の方法、およびフィルタ・ロジックについては、次を参照してください。

フィルタを追加するには
  1. ナビゲーション・メニューを開きます。「ガバナンスと管理」で、「アカウント管理」に移動して「コスト分析」をクリックします。
  2. 「期間(UTC)」で、期間を選択します。
  3. 「表示」で、「コスト」「使用状況」のどちらを表示するかを選択します。
  4. 3つのチャート・タイプのいずれか(「棒」(デフォルト)、「折れ線」または「積上げ折れ線」)を選択します。
  5. 「フィルタ」で、フィルタを選択します。選択したフィルタに固有のダイアログが表示されます。たとえば、「サービス」を選択した場合は、ドロップダウン・メニューからサービスを選択します。必要に応じて複数のサービスを追加することも、「X」アイコンをクリックしてサービス・フィルタを削除することもできます。フィルタ基準の選択が終了したら、「選択」をクリックします。
  6. 「適用」をクリックして変更を適用し、選択したフィルタを使用してチャートおよび表をリロードします。
フィルタを編集するには
  1. すでにチャートに適用されているフィルタを編集するには、そのフィルタをクリックします。フィルタのダイアログ・ボックスが表示されます。
  2. フィルタ・ダイアログのドロップダウン・メニューから1つ以上のフィルタを選択し、「選択」をクリックします。
  3. 「適用」をクリックして変更を適用し、選択したフィルタを使用してチャートおよび表をリロードします。
フィルタを削除するには
  1. チャートに適用されたフィルタを削除するには、「すべてのフィルタのクリア」をクリックするか、「フィルタ」でそのフィルタの「X」アイコンをクリックします。
  2. 「適用」をクリックして変更を適用し、選択したフィルタを使用せずにチャートおよび表をリロードします。

フィルタ・ロジック

複数のフィルタを指定する場合、特定の各フィルタ内ではOR、異なるフィルタ間ではANDを使用します。たとえば、サービスがコンピュート、ブロック・ストレージ、オブジェクト・ストレージ、データベースであり、タグのタグ・キーが"MyKey"のフィルタを適用すると、(Compute OR Block Storage OR Object Storage OR Database) AND Tag Key "MyKey"に対するデータが表示されます。

ただし、タグ・フィルタは一意のケースです。結合されたORとして機能する複数のタグ・フィルタを追加できます。

ノート

使用可能なタグ・キー値を選択しようとすると、10個のタグ・キー値のみが取得され、ドロップダウンに表示されます。または、フィルタ対象のタグ・キー値を手動で入力することもできます。

複数のフィルタを使用したコストの表示

最初に単一のフィルタに基づいてコスト分析チャート・データをフィルタし、その後フィルタを追加できます。例:

  1. 「グループ化ディメンション」「サービス」に設定して、サービス別にコストを表示します。
  2. 「フィルタ」から、タグによるフィルタを追加します。
  3. タグ・ネームスペースを選択します(この例では、選択したネームスペースとして"Financial"を使用します)。
  4. タグ・キーを選択します(この例では、選択したキーとして"Owner"を使用します)。
  5. 「いずれかの値と一致」(AND条件)または「次のいずれかと一致」(OR条件)のいずれかを指定します。

    たとえば、"alpha"が値で、「次のいずれかと一致」が選択されている場合、所有者として"alpha"を持つすべてのサービスが表示されることを意味します。逆に、複数の値"alpha"および"beta"が選択されており、「次のいずれかと一致」が選択されている場合、これはOR条件(つまり、"alpha"または"beta"値と一致するタグ・キー"Owner"を持つ、"Financial"ネームスペースのすべてのサービスのコストを表示するフィルタ)に相当します。

  6. 「選択」「適用」の順にクリックし、フィルタされた情報を含む「コスト分析」チャートをリロードします。

タグによる別のフィルタを追加して、データをさらに分類することもできます。例::

  1. 「フィルタ」から、タグによるフィルタを追加します。
  2. タグ・ネームスペース("Cost Center"ネームスペースなど)を選択します。
  3. 「次のいずれかと一致」を選択し、たとえば、"1234"または"5678"のコスト・センター値でフィルタします。

    「選択」「適用」の順にクリックすると、このフィルタによって、前のタグ・フィルタに加えてこの2つ目のタグ・フィルタが適用された("Financial"ネームスペース、タグ・キー"Owner"、"alpha"または"beta"値 + "1234"または"5678"の値を持つ"Cost Center"ネームスペース)すべてのサービスのコストが表示されます。2つのタグ・フィルタを合せると、実質上前のフィルタとのANDに等しくなります(2つのフィルタは「フィルタの追加」ドロップダウン・リストの横に表示されます)。

    または、この2つ目のタグ・フィルタ("1234"または"5678"の値を持つ"Cost Center"ネームスペース)のかわりに、サービス・フィルタ(NETWORK)を追加できます。これにより、"alpha"または"beta"の両方の値と一致し、かつ、NETWORKサービス・タイプでフィルタされるタグ・キー"Owner"を持つ、"Financial"ネームスペースのすべてのサービスのコストが表示されます。

グループ化ディメンション

グループ化ディメンションを表示および変更する手順については、次を参照してください。グループ化ディメンションを使用すると、データの集計方法は変更されますが、合計は変更されません。リソースの特定のフィールドに値がない場合は、それらのリソースの合計を反映する「値なし」列が表示されます。具体的には、Gen-1の製品には「可用性ドメイン」、「コンパートメント」または「リソースID」がないことがよくあります。

グループ化ディメンションを表示するには
  1. ナビゲーション・メニューを開きます。「ガバナンスと管理」で、「アカウント管理」に移動して「コスト分析」をクリックします。
  2. 「期間(UTC)」で、期間を選択します。
  3. 「表示」で、「コスト」「使用状況」のどちらを表示するかを選択します。
  4. 3つのチャート・タイプのいずれか(「棒」(デフォルト)、「折れ線」または「積上げ折れ線」)を選択します。
  5. 「グループ化ディメンション」で、目的のグループ化ディメンションを選択します。「コンパートメント」または「タグ」を選択すると、追加の「コンパートメント」または「タグ」選択フィールドが表示されます。
  6. 「適用」をクリックして変更を適用し、選択したグループ化ディメンションを使用してチャートおよび表をリロードします。
グループ化ディメンションを変更するには
  1. グループ化ディメンションを変更するには、「グループ化ディメンション」でそれを選択します。
  2. 「適用」をクリックして変更を適用し、新しいグループ化ディメンションを使用してチャートおよび表をリロードします。

コストを消費しているリソースの識別

チャートに表示された、たとえばデータベース・サービスの使用量が多いことに気付き、どのリソースが原因であるかを特定する場合は、「グループ化ディメンション」ドロップダウン・リストからリソースOCIDでグループ化できます。次に、「フィルタ」からサービス・タイプ(この例では、データベース)のフィルタを追加し、「適用」をクリックしてチャートをリロードします。

チャートがリロードされ、チャートのデータ・ポイントにカーソルを置いたときと「凡例」ボックスの両方で、データベース・コストを押し上げていたリソースOCIDが表示されます。これらのリソースOCIDは、チャートの下のデータ表にも表示されます。必要に応じて、「ダウンロード」をクリックし、「表をCSVとしてダウンロード」を選択して、この情報を保存できます。

ヒント

「凡例」ボックスは、チャートが最初にロードされたときはデフォルト・サイズに設定されていますが、ボックスをクリックしてドラッグし、その中の長い項目(OCIDなど)を簡単に読み取れるようにすることができます。

リソースの詳細を確認するには、OCIDをコピーしてコンソールの「検索」ボックスに入力し、コストを押し上げているリソースを特定します。

コストを特定するためのサービスとSKUまたはサービスと製品の説明によるグループ化

場合によっては、サービスに複数のSKU番号が表示されることがあります。サービスとSKU(部品番号)でグループ化すると、同じサービスに複数のSKU番号が「凡例」ボックスに表示されます。たとえば、「凡例」ボックスに複数のコンピュート・エントリがあるが、それらのSKUが異なる場合、基礎となるインフラストラクチャ・コンポーネントを複数使用しているリソースが1つあることを意味します。このケースは、実際にはブロック・ストレージで最も一般的です(複数のブロック・ストレージ・エントリが異なるSKUで表示されます)。具体的には、ブロック・ストレージの場合、ストレージ自体に対して課金されますが、ブロック・ストレージからのデータ転送に対しても課金されます。その結果、複数の「ブロック・ストレージ」アイテムが異なるSKU番号で「凡例」ボックスにリストされます。例:

Block Storage / <SKU number 1>
Block Storage / <SKU number 2>
Block Storage / <SKU number 3>
Block Storage / <SKU number 4>

この同じタイプのデータを表示する別の方法として、「サービスと製品の説明」グループ化ディメンションを使用する方法があります。「凡例」ボックスは同様にソートされますが、データの表示方法は異なります。つまり、実際の製品説明に従うか、関連付けられているSKUに従うかです。例:

Block Storage / Block Volume - Backup
Block Storage / Block Volume - Free
Block Storage / Block Volume - Performance Units
Block Storage / Block Volume - Storage
ヒント

デフォルトでは、これらの説明は長くて見えない場合があるため、「凡例」ボックスのサイズを変更して見えるようにする必要があります。

データベース・サービスも有用な例です。データベースのインスタンスが異なる場合があり、データベース・サービス内のブロック・ストレージに対しても課金されます。たとえば、このような場合、次のエントリが凡例に表示されます:

Database / DBaaS - Attached Block Storage Volume - Standard Performance

ネットワーク転送のデータベース・サービスでも課金されます。例:

Database / Oracle Autonomous Data Warehouse - Exadata Storage

アプリケーション・バージョンのライセンス料も発生する可能性があります:

Database / Database Cloud Service - Enterprise Edition High Performance

コストおよび使用状況レポートは、コスト分析チャートで確認したこのような情報をさらに切り分ける場合に適した方法です。たとえば、コスト・レポートで、コンピュートに関連付けられているSKU番号と同じSKU番号がブロック・ストレージにも関連付けられていることに気付いたとします。その結果、二重請求されたのではないかと疑問に思います(ただし、実際にはそうではありません)。実際のコストを調査するには、まずSKUでコストCSVスプレッドシートをフィルタします。特定のSKUを使用してCSVにフィルタを適用すると、製品/説明列から消費しているサービスを確認できます。たとえば、あるSKUが多くの「ブロック・ボリューム - パフォーマンス・ユニット」を使用している可能性があり、この列に「DBaaS - アタッチされたブロック・ストレージ・ボリューム」も表示されていることに気付きます。

データをさらに切り分けるには、すべての「ブロック・ボリューム - パフォーマンス・ユニット」のうち、たとえば「DBaaS - アタッチされたブロック・ストレージ・ボリューム」エントリの製品/リソースID列からリソースIDをコピーし、以前に適用したSKUフィルタを削除します。次に、かわりにリソースIDに基づいてスプレッドシートをフィルタします。これにより、特定のリソースIDが消費しているすべてのコンポーネントが表示されます(製品/説明列に表示されます)。
ノート

コスト・レポートを表示すると、コスト/製品Sku列と製品/説明列は互いにマップされ、CSVでは隣接する列です。レポートに表示されるこれらのフィールドおよびその他のフィールドの詳細は、コストおよび使用状況レポートの概要を参照してください。
同様に、コスト分析を使用して、製品の説明フィルタでリソースOCIDグループ化ディメンションを実行し、特定の製品を使用しているすべてのリソースを表示できます。たとえば、フィルタとして「ブロック・ボリューム - パフォーマンス・ユニット」を選択すると、「コスト分析」チャートには、「ブロック・ボリューム - パフォーマンス・ユニット」を使用しているリソースが表示されます。特定のリソースの識別の詳細は、コストを消費しているリソースの識別を参照してください。

データのダウンロード

「ダウンロード」ボタンをクリックして、データのCSVファイルまたはチャートのPNGファイルをダウンロードします。ダウンロードすると、「コスト分析」ページのチャートまたは表に対応するファイル(適用されたフィルタ、ソートおよびグループ化ディメンションを含む)が生成されます。

使用量APIの使用

APIの使用およびリクエストの署名の詳細は、REST APIおよびセキュリティ資格証明を参照してください。SDKの詳細は、ソフトウェア開発キットとコマンドライン・インタフェースを参照してください。

次の操作を使用して、使用量を管理します:
使用量APIを使用すると、使用量およびコスト・データを取得できます。次のことが可能です:
  • MONTHLYやDAILYなど、様々な粒度に基づいて問い合せます。
  • queryTypeを指定します(COST、USAGEなど)。
  • 異なるディメンション/タグでフィルタおよびグループ化し、SQL問合せのように機能します。
  • 最大4つのgroupByパラメータを使用します。

スキーマに準拠する使用量のエンドポイントURIの例を次に示します:

  • https://usageapi.<region>.oci.oraclecloud.com/20200107/usage

APIの詳細およびエンドポイントの完全なリストを表示するには、使用量APIを参照してください。

粒度の使用

使用量APIでは、MONTLY、DAILYおよびHOURLYの粒度がサポートされます。すべてのstartTimeは包含的で、endTimeは排他的であり、Java部分文字列と同じです。

  • HOURLYの場合、最大36時間の期間のみがサポートされ、1時間を超える精度はありません。これは、入力時間に分または秒がないことを意味します。
  • MONTHLYの場合、月の最初の日付から別の月の最初の日付までのみがサポートされます。たとえば、2020-06-01T00:00:00Zで、最大12か月の期間です。

  • DAILYの場合、最大90日の期間で、1日を超える精度はサポートされません。これは00:00:00として入力する必要があります。たとえば、2020-06-01T00:00:00Zです。

groupByの使用

APIレスポンスでは、ディメンションはgroupByでのみ表示されます。たとえば、"service"がgroupByにない場合、レスポンスの"service"フィールドは空になります。

ノート

一度に使用できるgroupByパラメータは4つのみです。
さらに:
  • groupByリストが空の場合、"currency"がgroupByに追加されます。
  • queryTypeが"Usage"の場合、"unit"がgroupByに追加されます。
  • queryTypeが"COST"または空の場合、"currency"がgroupByに追加されます。
  • computedAmountは、"currency"がgroupByにある場合にのみ正常に機能します。
  • computedQuantityは、"unit"がgroupByにある場合にのみ正常に機能します。
queryTypeの使用

APIはUSAGEまたはCOSTを問い合せることができます。computedQuantityは使用量を表し、computedAmountはコストを表します。使用量を期待どおりに取得するには、queryTypeをUSAGEに設定するか、groupByKeyに"unit"を追加する必要があります。これは、単位別にグループ化する場合に使用量が正しく集計/グループ化されるためです。

フィルタの使用

APIリクエストでのネストされたフィルタリングがサポートされています。フィルタのリストは、演算子によって評価されます。各フィルタでは、すべてのディメンションおよびタグが演算子によって評価されます。フィルタ・リストとディメンション/タグの同時評価はサポートされていません。つまり、ディメンションまたはタグとフィルタ・リストを同時に空以外にすることはできません。

サポートされている演算子はAND、ORです。次の2つのフィルタは等しいです:

"filter": {
  "operator": "AND",
  "dimensions": [
    {
      "key": "service",
      "value": "compute"
    },
    {
      "key": "compartmentPath",
      "value": "abc/cde"
    }
  ],
  "tags": [
    {
      "namespace": "compute",
      "key": "created",
      "value": "string"
    }
  ],
  "filters": null
}
  
or 
 
"filter": {
    "operator": "AND",
    "dimensions": [],
    "tags": [],
    "filters": [{
            "operator": "AND",
            "dimensions": [{
                "key": "service",
                "value": "compute"
            }],
            "tags": null,
            "filters": null
        }, {
            "operator": "AND",
            "dimensions": [{
                "key": "compartmentPath",
                "value": "abc/cde"
            }],
            "tags": null,
            "filters": null
        },
        {
            "operator": "AND",
            "dimensions": null,
            "tags": [{
                "namespace": "compute",
                "key": "created",
                "value": "string"
            }],
            "filters": null
        }
    ]
}
ディメンションとフィルタが同時に空以外であるため、無効な例です:
"filter": {
    "operator": "AND",
    "dimensions": [{
                "key": "compartmentPath",
                "value": "abc/cde"
            }],
    "tags": [],
    "filters": [{
            "operator": "AND",
            "dimensions": [{
                "key": "service",
                "value": "compute"
            }],
            "tags": null,
            "filters": null
        },
        {
            "operator": "AND",
            "dimensions": null,
            "tags": [{
                "namespace": "compute",
                "key": "created",
                "value": "string"
            }],
            "filters": null
        }
    ]
}
タグによる問合せ

前述のように、groupByのフィールドのみを表示します。そのため、groupByにタグ関連フィールドを追加する必要があります。例:

"tagNamespace", "tagKey", "tagValue"

tagKeyを追加すると、レスポンス内のすべてのアイテムにtagKeyが設定されます。tagKeyは、tagKeyを追加した場合でも空にできます。これは、一部のリソースにtagKeyがないためです。これらの3つをすべてgroupByに追加して、レスポンスに完全なタグが表示されるようにすることをお薦めします:

"tagNamespace", "tagKey", "tagValue" 

タグでフィルタする場合は、フィルタ・オブジェクトにタグを追加する必要があります。これは、tagKey/Namespace/valueの任意のtagKey/Namespace/valueの組合せでフィルタできます。

有効なgroupByの例
"tagNamespace", "tagKey", "tagValue", "service", "skuName", "skuPartNumber", "unit",
"compartmentName", "compartmentPath", "compartmentId", "platform", "region", "logicalAd",
"resourceId", "tenantId", "tenantName"
ノート

APIコールで使用できるのは、最大4つのgroupByパラメータのみです。

"tenantId"および"tenantName"は現在サポートされていません。

有効なフィルタ・ディメンションの例
"service", "skuName", "skuPartNumber", "unit", "compartmentName", "compartmentPath", "compartmentId", 
"platform", "region", "logicalAd", "resourceId", "tenantId", "tenantName"
大/小文字が区別されます。"tenantId"および"tenantName"は現在サポートされていません。
コンパートメントのgroupByの方法

コンパートメント関連のgroupByキー("compartmentName""compartmentPath""compartmentId")は、他のgroupByキーとは異なります。

結果を期待どおりに得るには、compartmentDepthを使用してリクエストする必要があります。compartmentDepthは1以上6以下です。

コンパートメントのgroupByでは、指定した深さのコンパートメントに、それより深い深さのすべてのコンパートメントの使用量またはコストが集計されます。例:

           Root             1

        B          C        2

    D    E                  3

 F                          4

深さが1の場合、すべての使用量またはコストはルート・コンパートメントにグループ化されます。

深さが2の場合、深さ2のすべてのコンパートメントに、そのすべての子とともに使用量またはコストが含まれることを意味します。レスポンスでは、ルートにはルートの使用量が含まれ、Bには(B、D、E、F)が集計され、CにはCが含まれます。

レスポンスの一部のフィールドが空の理由

フィールドは、フィールドがgroupByにある場合にのみ表示されます。現在レスポンスですべてのフィールドが使用可能なわけではありません。有効なgroupByの例で説明されているフィールドのみがサポートされます。

nextPageTokenとは

これは、nullとして設定できます。現在サポートされていません。

リクエスト本文の例

APIの動作を理解する最善の方法は、コンソールがAPIをどのように使用しているかを確認することです。リクエスト本文は、Webブラウザのデバッグ・モードで確認できます。

{
  "tenantId": "ocid1.tenancy.oc1..<unique_ID>",
  "timeUsageStarted": "2020-04-01T00:00:00.000Z",
  "timeUsageEnded": "2020-07-01T00:00:00.000Z",
  "granularity": "MONTHLY",
  "queryType": "COST",
  "groupBy": [
    "tagNamespace",
    "tagKey",
    "tagValue",
    "service",
    "compartmentPath"
  ],
  "compartmentDepth": 2,
  "filter": null
}

フィルタを使用せずにリクエストを行うと、ディメンション/タグの値を確認できます。その後、フィルタと正しいディメンション値を使用してリクエストを作成できます。

{
  "tenantId": "ocid1.tenancy.oc1..<unique_ID>",
  "timeUsageStarted": "2020-04-01T00:00:00.000Z",
  "timeUsageEnded": "2020-07-01T00:00:00.000Z",
  "granularity": "MONTHLY",
  "groupBy": ["tagNamespace","tagKey","tagValue", "service", "compartmentPath"],
  "compartmentDepth": 2,
  "filter": {
    "operator": "AND",
    "dimensions": [],
    "tags": [],
    "filters": [{
      "operator": "AND",
      "dimensions": [{
        "key": "service",
        "value": "compute"
      }],
      "tags": null,
      "filters": null
    }, {
      "operator": "AND",
      "dimensions": [{
        "key": "compartmentPath",
        "value": "abc/cde"
      }],
      "tags": null,
      "filters": null
    },
      {
        "operator": "AND",
        "dimensions": null,
        "tags": [{
          "namespace": "compute",
          "key": "created",
          "value": "string"
        }],
        "filters": null
      }
    ]
  }
}
カスタマイズされたスクリプト、CLIおよびSDKの使用

カスタマイズされたスクリプトを記述する場合、Oracleはスクリプトのデバッグをサポートまたは支援していません。CLI、SDKおよびTerraformのみがサポートされています。カスタマイズされたスクリプトの使用方法の詳細は、3. oci-curlのコピーの作成と構成を参照してください。詳細は、コマンドライン・インタフェース(CLI)を参照してください。例:

oci raw-request --http-method POST --target-uri https://usageapi.us-ashburn-1.oci.oraclecloud.com/20200107/usage 
--request-body file:///<system_path>SimpleRequestSummarizedUsagesDetails.json 
--config-file ~/Downloads/clitest.conf
SimpleRequestSummarizedUsagesDetails.json:
{
  "tenantId": "ocid1.tenancy.oc1..<unique_ID>",
  "timeUsageStarted": "2020-03-19T17:00:00.000000-07:00",
  "timeUsageEnded": "2020-03-21T00:00:00Z",
  "granularity": "DAILY",
  "groupBy": [],
  "compartmentDepth": null,
  "filter": null,
  "nextPageToken": "string"
}
clitest.conf:
[DEFAULT]
user=ocid1.user.oc1..<unique_ID>
fingerprint=<MAC_ID>
key_file=<system_path>/oci_api_key.pem
#tenancy=ocid1.tenancy.oc1..<unique_ID>
tenancy=ocid1.tenancy.oc1..<unique_ID>
region=us-ashburn-1
Oracle Cloud Infrastructure SDK (https://github.com/oracle/oci-java-sdkhttps://github.com/oracle/oci-python-sdk)も参照してください。