レポート API ドキュメント

要約

このレポート・エンドポイントは、これまで様々なコンテナAPIに分散していた多くの機能を置き換えるもので、コンテナ・インサイト機能を支えるデータのより単一的なビューを提供することを目的としている。

このエンドポイントでは、集計する特定の測定基準を指定することでデータを分析することができ、グループやフィルタと組み合わせてコストを収集することができます。

エンドポイント

/v3/containers/report

クエリーパラメーター

パラメーター

必須 説明 デフォルト 許可

viewId

いいえ

Cloudability アカウント識別子によるフィルタリングを有効にするために渡すことができるビュー識別子 組織のデフォルト・ビュー識別子 0(許可されていればすべて)、設定された任意の数値

リクエスト・ボディ

レポート・リクエスト・ボディは、以下の主要属性で構成されるjsonオブジェクトです:

パラメーター

必須 タイプ サポートされる値

start

はい

日付 2024年6月1日 2022-01-01以降の日付

end

はい 日付 2024年6月2日 2022-01-01以降の日付は、開始日以上でなければならない

costType

はい 文字列 調整済み 参照サポートされるコストタイプ

指標

はい 文字列リスト [総コスト」、「総コスト効率」]] 参照サポートされるメトリック値

制限

はい 整数 10 1-1000

widgetType

タイプ 文字列 先頭 参照サポートされるウィジェットタイプ

count

いいえ 文字列リスト [クラスター] 参照サポートされるグループ、カウント、フィルター値

グループ

いいえ 文字列リスト [クラスター] 参照サポートされるグループ、カウント、フィルター値

フィルター

いいえ 文字列リスト ["cluster== {cluster_uuid} "] 参照サポートされるグループ、カウント、フィルター値
並べ替え いいえ 構成リスト [{"sortMetric":"total_cost","sortOrder":" desc"}] 参照:サポートされるソート構成
paginationToken いいえ 文字列 ご覧ください:ページネーション

サポートされるコスト・タイプ

ソートタイプ

コンテナUIとの関係

調整済み

現金

合計調整後償却額 調整済み(償却後)

サポートされるメトリック値

メトリック

標準的なコスト指標 標準使用メートル法

cpu/リザーブド

はい

はい 要求されたリソースと利用されたリソースの最大値に基づいて評価される
メモリ/リザーブド はい はい 要求されたリソースと利用されたリソースの最大値に基づいて評価される
ネットワーク/RX はい はい フェアシェアは常に配分額と等しくなる
ネットワーク/TX はい はい フェアシェアは常に配分額と等しくなる
ファイルシステム はい はい
persistent_volume/使用量 はい はい 使用量は、希望するPVのサイズに基づいて決定され、PVCと1:1である
GPU/予約済み はい はい フェアシェアは常に配分額と等しくなる
その他 はい いいえ これはコストのみの指標である

リクエスト可能なフィールド

フィールド名

フィールドタイプ 対応メトリクス 意味

トータル・コスト・シェア

集計

該当なし これは、クエリに貢献するすべてのリソースの基本的なコストを集計したものである
総費用 集計 該当なし 全メトリックタイプの総割当コスト。クエリに貢献した全リソースの利用コストを表す
トータル・コスト・アイドル 集計 該当なし total_cost_fairshare-total_cost_allocatedによって計算される、すべての指標タイプにわたる総アイドルコスト
総合コスト効率 集計 該当なし すべての指標タイプにわたる総コスト効率(total_cost_allocated / total_cost_fairshare によって計算される
使用コスト効率 集計 該当なし すべての指標タイプにおける利用コスト効率。利用コスト/総コスト配分の比率で計算される
{metric} /使用コスト メートル当たり CPU、メモリ 指標ごとの利用コスト
{metric} /使用コスト効率 メートル当たり CPU、メモリ 指標ごとの利用コスト効率。利用コスト/総コスト配分の比率で算出される
{metric} /リクエスト メートル当たり CPU、メモリ、GPU リソースの要求量
{metric} /使用 メートル当たり CPU、メモリ、GPU リソースの利用量
{metric} /リミット メートル当たり CPU、メモリ、GPU リソースの制限、この場合0は制限が設定されていないことを示す
{メトリック}_コスト_フェアシェア メートル当たり 標準的なコスト指標 メートル法の使用量をフェアシェア・コストで表示
{メトリック}_コスト割り当て メートル当たり 標準的なコスト指標 メトリックの使用量の割り当てコスト表現
{メトリック}_コスト・アイドル メートル当たり 標準的なコスト指標 フェアシェア - メトリクスの割り当てコスト表現
{メトリック}_コスト効率 メートル当たり 標準的なコスト指標 割当/フェアシェア・コスト価値
{metric} 利用_フェアシェア メートル当たり 標準的なコスト指標 フェアシェア利用価値
{metric} 利用_割り当て メートル当たり 標準的なコスト指標 割当利用価値
{メトリック}_使用率アイドル メートル当たり 標準的なコスト指標 フェアシェア - 割り当てられた利用率
{metric} 利用効率 メートル当たり 標準的なコスト指標 割当/フェアシェア利用価値

サポートされるウィジェットタイプ

ウィジェット・タイプ

コンテナUIとの関係 意味 要件 制約事項

先頭

表データ

これはコンテナ・データの最も一般的な表現で、指定された期間の集計データを返す グループには期間を含んではならない

KPI

KPIウィジェット これにより、特異値が戻ってくる

単一の結果のみ

グループは利用できません ページネーションは利用できません

バー

棒グラフ これは、期間にわたって連続した一連のデータを生成することを無視して、トップ/ボトム値のセットを提供します 時間グループを設定する必要があります ページネーションは利用できません

ラインチャート これは、期間をまたがるデータの最上位/最下位の連続系列を返します 時間グループを設定する必要があります ページネーションは利用できません

サポートされるグループ、カウント、フィルター値

グループ、カウント、フィルターは、アクセス可能なデータの重複するセットを共有し、以下の方法で利用することができる:

グループ

グループは、そのフィールドのユニークな値によって集約された結果を返します。

たとえば、クラスターでグループ化すると、クラスターごとに分離された結果セットが返される。

カウント

Countsは、そのアスペクトの一意なエントリの数を特定する結果セクションを返す。

例えば、ネームスペースのカウントは、選択範囲内のネームスペースの総数を返します。

フィルター

フィルタを使用すると、ユーザーは結果のサブセットのみに結果セットを制限することができます。

たとえば、workload_type==deployment というフィルタを指定すると、デプロイメントが所有し ていると識別されたワークロードの結果のみが返される。

意味 戻り値の例 フィルターをサポート サポート・グループ サポート回数
クラスター クラスター一意識別子。名前のマッピングを含むこれらの完全なセットは、クラスターのエンドポイントから取得できる xxxxxxx-xxxxxx-xxxxxxxxxxxxxx はい はい はい
データを日ごとにグループ化できる。 widgetType (bar/line) とともに使用する必要がある 2024年6月1日 いいえ いいえ いいえ
ワークロード・タイプ 最高レベルのオーナータイプ デプロイメント、cronjob、ステートフルセットなど はい はい はい
ワークロード名 ワークロードの最上位オーナー名 サービス名 はい はい はい
名前空間 ワークロードが存在する名前空間 名前空間名 はい はい はい
コンテナ クラスタ上で動作しているコンテナ名 マイコンテナ名 はい はい はい
ポッド クラスタ上で動作しているPod名 マイポッドネーム はい はい はい
ノード 割り当てられるノード名 ip-1.2.3.4.region.compute.internal はい はい はい
ノードID プロバイダー・ノード識別子 aws:///region/i-1234 はい はい はい
instance_family 基礎となるノードのインスタンスファミリー t2 はい はい はい
instance_category 基礎となるノードのインスタンス・カテゴリー 汎用 はい はい はい
instance_type 基礎となるノードのインスタンスタイプ t2.micro はい はい はい
貯蓄計画 基礎ノードに適用される貯蓄プランのタイプ ComputeSavingsPlan はい はい はい
lease_type 基礎となるノードのリース方法 オンデマンド はい はい はい
予約インスタンス 基礎となるノードが予約されたインスタンス・コミットメントの一部として実行されている場合 Y、N はい はい はい
CPU_allocatable 基礎となるノードで利用可能なCPUユニット(マイクロコア単位 48000000 はい はい はい
メモリ割り当て可能 基礎となるノードで利用可能なメモリ(バイト単位 1000000000 はい はい はい
GPU割り当て可能 基礎となるノードで利用可能なGPUユニット(単位:マイクロGPU 1000000 はい はい はい
region 基礎となるノードが稼動している地域 us-west-2 はい はい はい
ゾーン 基礎となるノードが稼働しているアベイラビリティ・ゾーン us-west-2a はい はい はい
ノードグループ ノードグループ(検出可能な場合) マイノードグループ はい はい はい
ベンダー クラスタが動作しているクラウドプロバイダ aws、azureなど はい いいえ いいえ
クラスタ・タイプ 稼働中のクラスタタイプ eks、gke、openshiftなど はい いいえ いいえ

フィルターの使用

を指定することでフィルタを設定できる:

  • フィルタリングされた属性
    • 上記のリストでフィルタリング可能な値として示されているすべての値

  • オペレーター
    • ==

      • イコール(大文字と小文字を区別)

    • []=

      • のいずれか(大文字と小文字を区別する)

  • フィルタリングされた値
    • ユーザーがフィルタリングしたい任意の値

例:

  • 名前空間==kube-system
    • 結果を絞り込んで、kube-system のデータのみを表示します

  • workload_type[]=cronjob,job
    • クーロンジョブまたはジョブのデータのみを表示するように結果を絞り込む

対応ソート構成

設定されていない場合、ソート機能のデフォルトは、最初に指定されたメトリック列で降順にソートされます。 これは、ページネーションが常に可能であることを保証するための設定である。

ソート値は、呼び出し元が希望する順序で渡されるべきであり、要求されたメトリック値に対して指定することができる。

以下の例では、行を効率の降順でソートし、次にtotal_costの降順でソートする。

[
  {
    "sortMetric": "total_cost_efficiency",
    "sortOrder": "desc"
   },
   {
     "sortMetric": "total_cost",
     "sortOrder": "desc"
   }
 ]

ページネーション

フィールド

タイプ 説明
result.pagination.hasNext ブール値 次のページがあるかどうかを示す
result.pagination.nextToken 文字列 次の結果セットを取得するためにAPIに引き渡される文字列値を提供する

上記のページネーション用データが、別のページが消費可能であることを示している場合、 "nextToken" の値は、 "paginationToken" パラメータを介して、apiに渡すことができる。

注:

リクエストは他のいかなる点でも変更してはならない。変更すると、エ ラーや一貫性のない結果が返される可能性がある。

USの例(APIエンドポイント): https://api.cloudability.com/v3/containers/report

リクエスト例

curl --location 'https://api.cloudability.com/v3/containers/report' \
--header 'apptio-opentoken: {token}' \
--header 'apptio-environmentid: {env_id}' \
--header 'Content-Type: application/json' \
--data '{
    "start": "2024-06-10",
    "end": "2024-06-10",
    "costType": "adjusted",
    "metrics": [
	"total_cost"
    ],
    "group": [
	"namespace"
    ],
    "count": [
	"workload_name"
    ],
	"filters": [
		"cluster==XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
	],
    "sort": [
	{
	     "sortMetric": "total_cost",
	     "sortOrder": "desc"
	}
    ],
    "widgetType": "top",
    "limit": 1
}'

apiに渡すことができるページネーショントークンを含むレスポンスの例。

{
    "result": {
	"data": [
	   {
		"count": [
		    {
			"key": "workload_name",
			"value": "20"
		    }
		],
		"dimensions": {
		    "namespace": "my-namespace"
		},
		"metrics": {
		    "total_cost": {
			"unit": "currency",
			"values": [
				100.00
			]
		    }
		}
	    }
	 ],
	"pagination": {
	    "hasNext": true,
	    "nextToken": "veryLongPaginationToken"
	}
   }
}

このレスポンス本体は以下のセクションに分かれている:

フィールド

タイプ 意味
result.data [オブジェクト これは、要求されたグループ値によって識別される一連のエレメントを含む主要なレスポンスボディである
result.data [N].count [マップ [文字列] 文字列 これは、要求された値のユニークカウントを含むオブジェクトの集合を表す
result.data 寸法 マップ[文字列] 文字列 これは、グループ化された属性によって決定された、一意にグループ化された属性を表す
result.data [N].メトリクス マップ[文字列]オブジェクト これは集約されたメトリック値を表す。 時間でグループ化する場合、各時間単位は "values "配列のインデックスで表される
result.data [N].メトリクス {metric} 単位 文字列 可能な値は、currency、bytes、microcpu、microgpu、efficiency です
result.data [N].metrics. {metric}.values []float64 期間中に利用されたリソースを表す値の集合。 たとえば日ごとにグループ化する場合、配列の各エントリーは1日を表す