Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

新API「reports.query()」でクラウド分析の真価を引き出す

By Vadim SoloveyJul 14, 20235 min read

このページはEnglishDeutschEspañolFrançaisItalianoPortuguêsでもご覧いただけます。

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を駆使してクラウド戦略をどのように最適化・進化させていくのか、私たちも楽しみにしています。