1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure Portal 上で表示される予測コストと実コストの内容と取得動作

Last updated at Posted at 2024-12-07

What is this?

"これは何?" は卒業しました。
Azure の予測コスト (Forecast Cost) の取得ロジックを検証していたところ、
Forecast の動作として、実データを保持する DB カラムは存在せず、
API コールタイミングで対象スコープの Forecast を都度計算している、
との仮説が私の中で立ちました。
あくまで仮説であり、実際の実装は不明なのでこの記事は単なる私の推測です。

本記事はその仮定に至るまでの調査事項と関連する API 及び、
調査手順として実施した内容の覚書です。

検証内容

[コストの管理と請求 | 概要] - [{対象サブスクリプション}] - [リソース毎のコスト : 詳細を表示] の順で遷移し、[コスト分析] 画面を開きます。
image.png

この際の実行 API は DevTool の "ネットワーク" にて確認が可能です。

ここでは "12月いっぱい" の "リソース毎" 予測コストを確認してみることにします。
Microsoft Edge の DevTool (F12) を開いたのち、"表示" を "Cost by Service"、カレンダーを "12月 2024" に設定します。
image.png

このタイミングで、Dev ツールのネットワークには API の履歴が出力されます。
いくつかコールされている API の中に "forecast" の存在を確認できます。
API "forecast" は予測コストを取得するAPI です。
image.png

戻り値としての Json には下記の値が格納されていることが確認できます。
内部には Cost として 39.849586775654195 という値が保持されています。
image.png

一方で、もう一つ "query" も確認可能です。
API "query" は任意の情報を取り出す汎用 API です。
内部には0.11694152925 / 0.366935201189456 / 8.180012629788 の三つの値が Cost として保持されています。
この合算は 8.66388936023, すなわち画面上の Actual Cost (\8.66) に合致します。
image.png

各 Json の値を総合算すると、39.849586775654195 + 8.66388936023 = 48.5134761359 となり、Azure Portal の画面上における予測コストの値 (\48.51) と合致することが確認出来ます。

一方で各種 API の内容から予測コストの値である数値に合致する値は確認できませんでした。

総括

検証結果より、画面上の予測コストは "現時点での実コスト" + "(forecast API で取得される) 残期間の予測コスト" であると推測されます。

また、API "Forecast" の取得スコープにリソースグループを指定している場合、
Body 設定できるパラメータの範囲では、スコープ指定した対象の合算値が API の戻り値として返るようです。
このため、予測値をリソース毎に取得したい場合はリソースを指定した Filter を掛けた API をリソース数分ぶん投げる必要がありそうです (=非現実的)。

とはいえ、予測コストはあくまで目安に過ぎないことを考えると妥当な仕様に感じますね。

補足

Azure Portal で利用されている API のバージョンとリンクで参照しているドキュメントのバージョンは一致しない場合があります。
(一例として 2024/12/17 時点では Portal の API は "2022-04-01" ですが、最新は "2024-11-01" です。)

ぼやき

ドキュメントとにらめっこしながら Powershell からしてパラメータ作っては投げてたんですが、Azure Portal のネットワーク履歴を見たら API がそのまま投げられているのに気づき
ひどくがっかりしました。ちくせう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?