【Informatica】IPUを計算するためのメータリングデータ取得APIが強化されました、というお話
はじめに
データ事業本部の川中子(かわなご)です。
導入を検討しているサービスや、サービスの導入初期って、費用管理面が結構気になりますよね。
私も学習初期に個人作成したアプリで、翌月2万円の請求が来て速攻で運用を停止したことがあります。
(事前の費用見積もりや使用状況の監視は大切)
InformaticaではIPUという単位で費用が計算されていて、
対象期間に実行されたジョブやプロセスの実行時間などに応じて計算されます。
このIPUの確認は管理者画面のメータリング
ページからグラフと併せて確認が可能です。
もちろんデータのエクスポートも可能ですが、毎月各サービスのcsvを手動で取得するのは大変ですね。
ということで今回は、10月のメジャーアップデートで強化されたメータリングデータ取得APIを紹介します。
ドキュメントの変更点
まずAPIの概要ですが、前述した管理者画面から取得できるデータをAPI経由で取得するものになっています。
バージョンアップ前と比較するために、日本語用ページと英語用ページを比較してみようと思います。
まずは日本語表示(旧バージョン)のドキュメントを確認してみます。
項目としては以下のようになっています。
- IPU使用率データのエクスポートジョブ要求の送信
- ジョブレベルメータリングデータのエクスポートジョブ要求の送信
- メーターID
- メータリングデータのエクスポートジョブのステータスの取得
- メータリングデータのダウンロード
次に最新のドキュメントを見てみます。
項目としては以下のようになっています。
並べてみると純粋に項目が増えていることが分かりますね。
English | 日本語 |
---|---|
Requesting summary IPU usage data | IPU使用率データのエクスポートジョブ要求の送信 |
Request summary data with the new REST API resource | - |
Request summary data with the older REST API resource | IPU使用率データのエクスポートジョブ要求の送信(実質対応) |
Requesting project-level metering data | - |
Requesting asset-level data | - |
Requesting job-level metering data | ジョブレベルメータリングデータのエクスポートジョブ要求の送信 |
Meter IDs for job-level reports | メーターID |
Getting the metering data export job status | メータリングデータのエクスポートジョブのステータスの取得 |
Downloading the metering data | メータリングデータのダウンロード |
以前から公開されていた組織全体のサマリーやジョブ単位のIPU取得のAPIは据え置きで、
新しい形式のAPIがいくつか追加で公開されているようです。
そのため今まで使用していたAPIもそのまま使用できますし、
よりニーズに応じた粒度のデータを取得できるようになったという改修のようです。
各取得単位ごとの解説は以下のページで説明されています。
各APIを実際に動かしてみる
ここからは現在公開されている各APIを実際に動かしてみて、出力形式を見てみようと思います。
なお、メータリングデータを取得する際に共通するステップは以下の通りです。
- ログインAPIを実行してセッションIDを取得
- メータリングデータを取得するためのリクエストAPIを実行して、ジョブIDを取得
- ジョブIDを指定して、ジョブのステータスを確認するAPIを実行
- ステータスがSUCCESSになったら、ジョブIDを指定してダウンロード用のAPIを実行
比較対象として、GUIの管理者画面からCDIのメータリングデータを取得して置きます。
アセットの内訳
タブからデータを取得しているため、アセット単位のデータ出力になっています。
プロジェクトやフォルダのカラムもあるので、詳細にIPU消費を計算することができそうです。
Request summary data with the older REST API resource
まずは以前からあった古い方の、サマリー取得用のAPIを叩いてみます。
項目:Request summary data with the older REST API resource
対応URI:
/public/core/v3/license/metering/ExportMeteringDataAllLinkedOrgsAcrossRegion
{
"startDate":"2024-09-01T00:00:00Z",
"endDate":"2024-9-30T00:00:00Z",
"combinedMeterUsage":"TRUE",
"callbackUrl":"https://MyExportJobStatus.com"
}
出力されたCSVデータがこちらになります。
このデータではOrgId > MeterId > Dateごとのレコードが表示されているので、
あくまでも組織全体の概要を把握する用途での使用が想定されているものです。
IPU列の値が少数第一位までしか表示されないので、そこは注意です。
Request summary data with the new REST API resource
次に新しく公開された方の、サマリー取得用APIを叩いてみます。
項目:Request summary data with the new REST API resource
対応URI:
/public/core/v3/license/metering/ExportMeteringData
まずここのURIがスッキリしましたね。
そしてBodyに渡せるパラメータが増えてます。
{
"startDate":"2024-09-01T00:00:00Z",
"endDate":"2024-9-30T00:00:00Z",
"jobType":"SUMMARY",
"combinedMeterUsage":"TRUE",
"allLinkedOrgs":"TRUE",
"callbackUrl":"https://MyExportJobStatus.com"
}
出力されたCSVですが、改修前の形式から特に変更はなさそうでした。
Requesting project-level metering data
次はプロジェクト単位でデータを取得するAPIです。
項目:Requesting project-level metering data
プロジェクト単位でデータを取得したい場合は、前項で実行したAPIから、
jobType:PROJECT_FOLDER
としてパラメータを1つ変更するだけでOKです。
{
"startDate":"2024-09-01T00:00:00Z",
"endDate":"2024-9-30T00:00:00Z",
"jobType":"PROJECT_FOLDER",
"combinedMeterUsage":"TRUE",
"allLinkedOrgs":"TRUE",
"callbackUrl":"https://MyExportJobStatus.com"
}
出力されたCSVデータがこちらになります。
こちらはOrgId > Project > Folder > Dateごとのレコードが表示されています。
重要なカラムのみに絞られ、プロジェクト列やIPU列など情報がより詳細に表示されるようになったので、
プロジェクトごとにIPU消費量を集計する用途でも使用することができるようになりました。
Requesting asset-level data
次はプロジェクト単位でデータを取得するAPIです。
項目:Requesting asset-level data
こちらも新しく公開されたAPIと同じURLが使用されており、パラメータだけが少し異なっています。
jobType:ASSET
として、加えてmeterId
を指定する形でパラメータを設定します。
指定するmeterId
はこちらを参考にして下さい。
{
"startDate":"2024-09-01T00:00:00Z",
"endDate":"2024-9-30T00:00:00Z",
"meterId":"a2nB20h1o0lc7k3P9xtWS8",
"jobType":"ASSET",
"callbackUrl":"https://MyExportJobStatus.com"
}
出力されたCSVデータがこちらになります。
meterId
列は指定した値だけが並んでいて、IPU列などがより詳細に表示されているような形式です。
またアセットの単位でレコードが表示されるようになっているので、
特に稼働時間が長くて費用に負担をかけているジョブを探すときなどに特に有効そうですね。
なおmeterId
を指定せずに実行した場合は、全てのmeterId
を取得する仕様になっています。
Requesting job-level metering data
最後は、以前からあったジョブ単位でデータを取得するAPIです。
項目:Requesting job-level metering data
対応URI:
/public/core/v3/license/metering/ExportServiceJobLevelMeteringData
{
"startDate":"2024-09-01T00:00:00Z",
"endDate":"2024-9-30T00:00:00Z",
"allMeters":"FALSE",
"meterId":"a2nB20h1o0lc7k3P9xtWS8",
"callbackUrl":"https://MyExportJobStatus.com"
}
出力されるテーブルはとてもカラムが多くなっています。
こちらはアセット単位よりも詳細な、実際に稼働したジョブ単位でのレコードになってます。
この粒度のデータは管理者画面のメータリングページからだと取得できません。
さいごに
今回仕様を確認したAPIについて、簡単に表にまとめてみました。
取得単位 | 使用想定シーン |
---|---|
サマリ | 組織全体やサービス単位のIPUが確認できればよい |
プロジェクト | プロジェクトごとにIPUを計算して、担当部署の費用を計算したい |
アセット | 運用上で特に費用に負担をかけているアセットを把握したい |
ジョブ | ジョブの稼働状況も併せて把握したい |
メジャーアップデート前と比べると、実行するAPIのURLがシンプルになって、
欲しいデータの粒度に応じてパラメータでコントロールができるようになった のが変更点となりそうです。
基本はGUI上で操作できるのがメリットとなるInformaticaですが、
費用の算出などの事務作業はうまくAPIを活用して自動化できるとよいですね。
この記事が何かしらの参考になれば幸いです。
最後まで記事を読んで頂き、ありがとうございました。