Service Provider Foundation の使用状況測定データ モデル
適用対象: System Center 2012 SP1 - Orchestrator,System Center 2012 R2 Orchestrator
このトピックでは、使用状況測定エンドポイントに接続するポータルおよびクライアントに Service Provider Foundation が使用状況測定データを提供する方法について説明します。
[!メモ]
使用状況測定と Windows Server 用 Windows Azure Pack に関する最新情報については、TechNet wiki の記事「課金システムと使用状況測定システムの統合方法」を参照してください。
使用状況測定の概要
使用状況測定は、使用状況測定システムのコンポーネントとして関係する次のようなテクノロジとリソースで構成されています。
データ ジェネレーター
使用状況メトリック情報を収集および公開する、仮想マシン クラウド リソース プロバイダーなどのリソース プロバイダーです。 データはテナントが使う仮想マシンから取得され、ディスク容量やメモリ使用量などのメトリックのさまざまなカテゴリが作成されます。
データ コレクター
このプログラムは、定期的に使用状況情報を収集して使用状況データベースに格納するためにポータル アプリケーションによって使われます。 ポータルのホスト側は、スケジュールに基づいて REST ベースの JSON クエリを使って使用状況測定を実装します。 すべてのリソース プロバイダーによって順守されるデータ コントラクトに従って使用可能にするために、データ コレクターは使用状況データを必要とします。
使用状況データベース
使用状況データのデータ ウェアハウス リポジトリです。指定された日数の経過後に古いレコードが削除されることがあります。
使用状況 API
使用状況データの送信および解析に使われるコードです。 これは RESTful API であり、使用状況データベースからデータを抽出する唯一の方法です。 JSON クエリを使って、サービス プロバイダーは簡単に使用状況データを課金システムに適用できます。
使用状況測定を実装する必要が無いため、Service Provider Foundation は一覧に表示されません。 代わりに、Service Provider Foundation のロールがすべてのデータ ウェアハウスからメトリックを収集し、それらを課金や分析の目的で集計します。
Service Provider Foundation は Windows Server 用 Windows Azure Pack などの使用状況測定データの収集を必要とするすべてのクライアントに使用状況測定データを提供します。Windows Server 用 Windows Azure Pack の IaaS メトリックは VM クラウド リソース プロバイダーによって提供されます。 仮想マシンが System Center 2012 – Operations Manager によって監視されていて、そのデータが Operations Manager 管理サーバーによって監視される Operations Manager データ ウェアハウスに保存されている場合、このデータはテナントが使うすべての仮想マシンのすべての使用状況測定メトリックスによって構成されています。
クエリの送信
次の例のような JSON クエリを含む URL を使って使用状況測定データを取得するには:
https://SPFserver.contoso.com:8090/usage/usage?lastID=0\&batchsize=1000
最初の呼び出しでは、lastID を 0 にする必要があります。 バッチのサイズに制限はありません。 バッチ サイズが使用可能なすべてのデータと等しくない場合は、Service Provider Foundation が別のクライアントからの別の使用状況測定要求を実行してから、そのクライアントに戻って次のバッチを提供します。
データ プル モデル
Service Provider Foundation はメトリックを取得するためのデータ プル モデルを実装します。 クライアントはバッチ内のデータを要求します。 バッチと要求を追跡するために、使用状況測定では 0 (テナントのサブスクリプション開始から収集されたデータがないことを意味します) または最後のバッチのレコードを識別する値のいずれかとなるブックマークが使われます。Service Provider Foundation はこのブックマークをクライアントによる後続の要求で使うために提供します。
コレクション サイクルごとに、クライアント コレクターは現在のブックマークを次のバッチの開始点として使って測定データの別のバッチを要求します。 (提供する使用状況レコードが Service Provider Foundation で見つからなかったために) 前のバッチ要求が空の結果セットを返した場合、コレクターは 0 のブックマークを使います。
使用状況測定レコードの結果セットは、よく知られているデータ コントラクトでコレクターに提供されます。
メトリックの測定
次の表の仮想マシンの使用状況メトリックは、1 時間の時間間隔で集計されています。Service Provider Foundation は登録されているすべてのテナント サブスクリプションのすべての仮想マシンのこれらのメトリックを収集し、値を集計します。
使用状況データのレコードは、次の要素で構成されます。
EventID: 使用状況レコードのバッチをコレクターに返すときの最終レコード時刻に関連付けられた、新しい一意のイベント ID (基準値) です。
Resource Id: 使用状況アクティビティの測定値です。
StartTime、EndTime: データが集計された時間の開始および終了時刻です。
ServiceType: "Cloud" または "VirtualMacine" です。
SubscriptionID: テナントのサブスクリプション ID です。
Properties: 以下を定義する情報フィールドです。
Subscriber: サブスクライバー ID。
Metered Service: "VM Utilization" または "Cloud Utilization"
VMName – 仮想マシンの ID
VNIC: 仮想ネットワーク アダプターの ID。
次の表は、メモリ、CPU、ディスク、ネットワークという 4 領域の使用状況測定を示しています。 各表には使用状況データのメトリックを定義する該当するリソース ID が一覧表示され、使用状況測定の種類ごとのレコードの例が含まれています。
メモリ
リソース ID |
定義 |
レコード例 |
---|---|---|
MemoryAllocated-Min MemoryAllocated-Max |
最小および最大の割り当て済みメモリ サイズです。 |
|
MemoryConsumed-Min MemoryConsumed-Max MemoryConsumed-Median |
最小、最大、中間の使用済みメモリ サイズです。 |
|
CPU
リソース ID |
定義 |
レコード例 |
---|---|---|
CPUAllocationCount-Min CPUAllocationCount-Max |
割り当て済み CPU コアの最小数および最大数です。 |
|
CPUPercentUtilization-Median |
CPU 使用率の平均値です。 |
|
ディスク
リソース ID |
定義 |
レコード例 |
---|---|---|
CrossDiskIOPerSecond-Min CrossDiskIOPerSecond-Max CrossDiskIOPerSecond-Median |
すべての接続ディスクの、最小、最大、中間の 1 秒ごとの入出力 (IOPS) です。 |
|
CrossDiskSizeAllocated-Min CrossDiskSizeAllocated-Max |
すべての接続ディスクの、最小および最大の割り当て済みディスク サイズです。 |
(使用不可) |
ネットワーク
リソース ID |
定義 |
レコード例 |
---|---|---|
PerNICKBSentPerSecond-Min PerNICKBSentPerSecond-Max PerNICKBSentPerSecond-Median PerNICKBSentPerSecond-Average |
ネットワーク アダプターで 1 秒あたりに送信される最小、最大、中間、平均バイト数です。 |
|
PerNICKBReceivedPerSecond-Min PerNICKBReceivedPerSecond-Max PerNICKBReceivedPerSecond-Median PerNICKBReceivedPerSecond-Average |
ネットワーク アダプターで 1 秒あたりに受信される最小、最大、中間、平均バイト数です。 |
|
データ結果セットの例
次のデータは、JSON ビューアーに表示される 100 個の測定データ レコードの結果セットの例からのものです。 ここでは最初の 5 個と最後の 5 個のみを示します。
$json => Array (100)
(
['0'] (
EventId = "1"
ResourceId = "PerNICKBSentPerSecond-Min"
StartTime = "2012-11-20T23:00:00"
EndTime = "2012-11-21T00:00:00"
ServiceType = "VirtualMachine"
SubscriptionId = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Properties (
Subscriber = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Metered Service = "VM Utilization"
VMName = "885339cd-59c2-4312-ab94-1f1d42e38861"
VNIC = "B4091DAB-F5A3-49C0-9099-49085B03C1A0"
)
Resources (
PerNICKBSentPerSecond = "0"
)
)
['1'] (
EventId = "2"
ResourceId = "PerNICKBSentPerSecond-Max"
StartTime = "2012-11-20T23:00:00"
EndTime = "2012-11-21T00:00:00"
ServiceType = "VirtualMachine"
SubscriptionId = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Properties (
Subscriber = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Metered Service = "VM Utilization"
VMName = "885339cd-59c2-4312-ab94-1f1d42e38861"
VNIC = "B4091DAB-F5A3-49C0-9099-49085B03C1A0"
)
Resources (
PerNICKBSentPerSecond = "0"
)
)
['2'] (
EventId = "3"
ResourceId = "PerNICKBSentPerSecond-Median"
StartTime = "2012-11-20T23:00:00"
EndTime = "2012-11-21T00:00:00"
ServiceType = "VirtualMachine"
SubscriptionId = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Properties (
Subscriber = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Metered Service = "VM Utilization"
VMName = "885339cd-59c2-4312-ab94-1f1d42e38861"
VNIC = "B4091DAB-F5A3-49C0-9099-49085B03C1A0"
)
Resources (
PerNICKBSentPerSecond = "0"
)
)
['3'] (
EventId = "4"
ResourceId = "PerNICKBSentPerSecond-Average"
StartTime = "2012-11-20T23:00:00"
EndTime = "2012-11-21T00:00:00"
ServiceType = "VirtualMachine"
SubscriptionId = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Properties (
Subscriber = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Metered Service = "VM Utilization"
VMName = "885339cd-59c2-4312-ab94-1f1d42e38861"
VNIC = "B4091DAB-F5A3-49C0-9099-49085B03C1A0"
)
Resources (
PerNICKBSentPerSecond = "0"
)
)
['4'] (
EventId = "5"
ResourceId = "PerNICKBReceivedPerSecond-Min"
StartTime = "2012-11-20T23:00:00"
EndTime = "2012-11-21T00:00:00"
ServiceType = "VirtualMachine"
SubscriptionId = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Properties (
Subscriber = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Metered Service = "VM Utilization"
VMName = "885339cd-59c2-4312-ab94-1f1d42e38861"
VNIC = "B4091DAB-F5A3-49C0-9099-49085B03C1A0"
)
Resources (
PerNICKBReceivedPerSecond = "0"
)
)
['5'] (
EventId = "6"
ResourceId = "PerNICKBReceivedPerSecond-Max"
StartTime = "2012-11-20T23:00:00"
EndTime = "2012-11-21T00:00:00"
ServiceType = "VirtualMachine"
SubscriptionId = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Properties (
Subscriber = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Metered Service = "VM Utilization"
VMName = "885339cd-59c2-4312-ab94-1f1d42e38861"
VNIC = "B4091DAB-F5A3-49C0-9099-49085B03C1A0"
)
Resources (
PerNICKBReceivedPerSecond = "0"
)
)
*/ . . . skipping records 6-94 . . . */
['95'] (
EventId = "96"
ResourceId = "PerNICKBReceivedPerSecond-Max"
StartTime = "2012-11-21T01:00:00"
EndTime = "2012-11-21T02:00:00"
ServiceType = "VirtualMachine"
SubscriptionId = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Properties (
Subscriber = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Metered Service = "VM Utilization"
VMName = "885339cd-59c2-4312-ab94-1f1d42e38861"
VNIC = "B4091DAB-F5A3-49C0-9099-49085B03C1A0"
)
Resources (
PerNICKBReceivedPerSecond = "0"
)
)
['96'] (
EventId = "97"
ResourceId = "PerNICKBReceivedPerSecond-Median"
StartTime = "2012-11-21T01:00:00"
EndTime = "2012-11-21T02:00:00"
ServiceType = "VirtualMachine"
SubscriptionId = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Properties (
Subscriber = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Metered Service = "VM Utilization"
VMName = "885339cd-59c2-4312-ab94-1f1d42e38861"
VNIC = "B4091DAB-F5A3-49C0-9099-49085B03C1A0"
)
Resources (
PerNICKBReceivedPerSecond = "0"
)
)
['97'] (
EventId = "98"
ResourceId = "PerNICKBReceivedPerSecond-Average"
StartTime = "2012-11-21T01:00:00"
EndTime = "2012-11-21T02:00:00"
ServiceType = "VirtualMachine"
SubscriptionId = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Properties (
Subscriber = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Metered Service = "VM Utilization"
VMName = "885339cd-59c2-4312-ab94-1f1d42e38861"
VNIC = "B4091DAB-F5A3-49C0-9099-49085B03C1A0"
)
Resources (
PerNICKBReceivedPerSecond = "0"
)
)
['98'] (
EventId = "99"
ResourceId = "CPUPercentUtilization-Min"
StartTime = "2012-11-21T01:00:00"
EndTime = "2012-11-21T02:00:00"
ServiceType = "VirtualMachine"
SubscriptionId = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Properties (
Subscriber = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Metered Service = "VM Utilization"
VMName = "885339cd-59c2-4312-ab94-1f1d42e38861"
)
Resources (
CPUPercentUtilization = "0"
)
)
['99'] (
EventId = "100"
ResourceId = "CPUPercentUtilization-Max"
StartTime = "2012-11-21T01:00:00"
EndTime = "2012-11-21T02:00:00"
ServiceType = "VirtualMachine"
SubscriptionId = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Properties (
Subscriber = "75700cd5-893e-4f68-ada7-50ef4668acc6"
Metered Service = "VM Utilization"
VMName = "885339cd-59c2-4312-ab94-1f1d42e38861"
)
Resources (
CPUPercentUtilization = "0"
)
)
)