DoiTは進化と成長を続けていますが、開発者の作業をもっと楽にしたいという想いは変わりません。クラウドサービス管理の複雑さを誰よりも理解しているからこそ、分析機能の新たな仲間として reports.query() APIをリリースできることを大変うれしく思います。
この新機能を使えば、Cloud Analyticsのレポートをプログラムから生成し、わずか1回のAPI呼び出しでデータを取得・分析できます。まるで専属アナリストをポケットに忍ばせているような感覚です。

reports.query() がもたらす価値
たとえば、Google Cloud Platform (GCP) と Amazon Web Services (AWS) の両方でアプリケーションを運用しているとします。直近1週間のAWS EC2やGCP BigQueryなど、特定サービスの利用料金を把握したい——通常であれば、別々のダッシュボードや管理画面を行き来し、データをまとめるのにかなりの時間がかかるでしょう。
しかし reports.query() APIを使えば、この作業は驚くほどシンプルになります。実際の呼び出し例を見てみましょう。
curl --request POST \
--url https://api.doit.com/analytics/v1/reports/query \
--header 'Authorization: Bearer {{your-api-key}}' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '
{
"group": [\
{\
"id": "service_description",\
"type": "fixed"\
}\
],
"timeRange": {
"unit": "day",
"amount": 7,
"includeCurrent": false,
"mode": "last"
},
"timeInterval": "day"
}
'
このシンプルなリクエストひとつで、過去1週間にわたる複数サービスの包括的なコストレポートを生成できます。
リクエスト内容を簡単に解説します。
group: レポートデータのグルーピング方法を指定します。この例ではservice_descriptionで分類しています。利用可能なディメンションの一覧は dimensions.list() APIメソッド を使ってプログラムから取得できます。timeRange: レポートの対象期間を指定します。この例では直近7日間のデータをリクエストしています。timeInterval: 時系列集計の粒度を設定します。ここでは日次集計に設定しています。
APIから返ってくるデータのイメージは以下のとおりです。便宜上、レスポンスの一部のみを掲載しています。
{
"Result": {
"schema": [\
{\
"name": "service_description",\
"type": "string"\
},\
{\
"name": "year",\
"type": "string"\
},\
{\
"name": "month",\
"type": "string"\
},\
{\
"name": "day",\
"type": "string"\
},\
{\
"name": "cost",\
"type": "float"\
},\
{\
"name": "timestamp",\
"type": "timestamp"\
}\
],
"rows": [\
[\
"AWS CloudTrail",\
"2023",\
"07",\
"06",\
1.5757174094000006,\
1688601600\
],\
[\
"AWS CloudTrail",\
"2023",\
"07",\
"07",\
1.3773117481,\
1688688000\
],\
[\
"AWS CloudTrail",\
"2023",\
"07",\
"08",\
1.3947479550999997,\
1688774400\
],\
[\
"AWS CloudTrail",\
"2023",\
"07",\
"09",\
1.4486706111999998,\
1688860800\
],\
[\
"AWS CloudTrail",\
"2023",\
"07",\
"10",\
1.3961570165000001,\
1688947200\
],\
[\
"AWS CloudTrail",\
"2023",\
"07",\
"11",\
1.4235074821999998,\
1689033600\
],\
[\
"AWS CloudTrail",\
"2023",\
"07",\
"12",\
1.4268483946000001,\
1689120000\
],\
[\
"AWS Cost Explorer",\
"2023",\
"07",\
"06",\
0.07,\
1688601600\
],\
[\
"AWS Cost Explorer",\
"2023",\
"07",\
"07",\
0.07,\
1688688000\
],\
[\
"AWS Cost Explorer",\
"2023",\
"07",\
"08",\
0.07,\
1688774400\
],\
[\
"AWS Cost Explorer",\
"2023",\
"07",\
"09",\
0.08,\
1688860800\
],\
[\
"AWS Cost Explorer",\
"2023",\
"07",\
"10",\
0.07,\
1688947200\
],\
[\
"AWS Cost Explorer",\
"2023",\
"07",\
"11",\
0.06999999999999999,\
1689033600\
],\
[\
"AWS Cost Explorer",\
"2023",\
"07",\
"12",\
0.07,\
1689120000\
],\
[\
"AWS Data Pipeline",\
"2023",\
"07",\
"06",\
0.09677419200000002,\
1688601600\
],\
[\
"AWS Data Pipeline",\
"2023",\
"07",\
"07",\
0.09677419200000002,\
1688688000\
],\
[\
"AWS Data Pipeline",\
"2023",\
"07",\
"08",\
0.09677419200000002,\
1688774400\
],\
[\
"AWS Data Pipeline",\
"2023",\
"07",\
"09",\
0.09677419200000002,\
1688860800\
],\
[\
"AWS Data Pipeline",\
"2023",\
"07",\
"10",\
0.09677419200000004,\
1688947200\
],\
[\
"AWS Data Pipeline",\
"2023",\
"07",\
"11",\
0.09677419200000002,\
1689033600\
],\
[\
"AWS Data Pipeline",\
"2023",\
"07",\
"12",\
0.09677419200000002,\
1689120000\
],\
[\
"AWS Directory Service",\
"2023",\
"07",\
"06",\
1.4365837167000002,\
1688601600\
],\
[\
"AWS Directory Service",\
"2023",\
"07",\
"07",\
1.4837915334,\
1688688000\
],\
[\
"AWS Directory Service",\
"2023",\
"07",\
"08",\
1.4360271,\
1688774400\
],\
[\
"AWS Directory Service",\
"2023",\
"07",\
"09",\
1.4397221999,\
1688860800\
],\
[\
"AWS Directory Service",\
"2023",\
"07",\
"10",\
1.4407052167000003,\
1688947200\
],\
[\
"AWS Directory Service",\
"2023",\
"07",\
"11",\
1.4418464164,\
1689033600\
],\
[\
"AWS Directory Service",\
"2023",\
"07",\
"12",\
1.4447365167000001,\
1689120000\
],\
[\
"AWS Glue",\
"2023",\
"07",\
"06",\
0,\
1688601600\
],\
[\
"AWS Glue",\
"2023",\
"07",\
"07",\
0,\
1688688000\
],\
[\
"AWS Glue",\
"2023",\
"07",\
"08",\
0,\
1688774400\
],\
[\
"AWS Glue",\
"2023",\
"07",\
"09",\
0,\
1688860800\
],\
[\
"AWS Glue",\
"2023",\
"07",\
"10",\
0,\
1688947200\
],\
[\
"AWS Glue",\
"2023",\
"07",\
"11",\
0,\
1689033600\
],\
[\
"AWS Glue",\
"2023",\
"07",\
"12",\
0,\
1689120000\
],\
[\
"AWS Key Management Service",\
"2023",\
"07",\
"06",\
0.09687619200000003,\
1688601600\
],\
[\
"AWS Key Management Service",\
"2023",\
"07",\
"07",\
0.09687619200000003,\
1688688000\
],\
[\
"AWS Key Management Service",\
"2023",\
"07",\
"08",\
0.09687619200000003,\
1688774400\
],\
[\
"2023",\
"07",\
"12",\
0,\
1689120000\
]\
]
}
}
もちろん、実際のレポートはこの例よりもはるかに複雑に組み立てられます。たとえば、コストや使用量、独自のカスタムメトリクスを複数のディメンション(「cloud」「service」「labels」、さらには「team」「app」といった独自属性)で分類しつつ、特定のデータをフィルターで除外することも可能です。
意思決定を加速する強力なツール
新しい reports.query() APIなら、分析レポートをプログラムから素早く生成し、重要なインサイトを手軽かつスピーディーに引き出せます。必要な情報を常に手元に揃え、より的確で根拠のある判断を後押しします。
クラウドコストのモニタリング、各サービスのパフォーマンス追跡、利用パターンの把握まで、開発環境を離れることなくすべて完結できます。
今すぐ reports.query() を使ってみる
この新機能に私たちと同じくワクワクしていただけたなら、ぜひ APIキーを取得 して今日から試してみてください。気軽に触ってみていただき、ご質問やフィードバックがあればいつでもお寄せください。皆さまが reports.query() APIを駆使してクラウド戦略をどのように最適化・進化させていくのか、私たちも楽しみにしています。