Service Provider Foundation 中 Usage Metering 資料模型
適用於: System Center 2012 SP1 - Orchestrator, System Center 2012 R2 Orchestrator
本主題說明如何 Service Provider Foundation 如何提供使用量計量資料給入口網站,以及連線到其 Usage Metering 端點的用戶端。
注意事項 |
---|
如需使用量計量及 Windows Server 適用的 Windows Azure Pack 的更新資訊,請參閱 TechNet Wiki 文章如何整合您的計費系統與 Usage Metering 系統。 |
使用量計量概觀
使用量計量包含下列技術及做為 Usage Metering 系統元件的資源:
資料產生器
資源提供者,例如虛擬機器雲端資源提供者,會收集及公開使用量計量資訊。 這些資料會從租用戶使用的虛擬機器取得,從而建立各種類別目錄的度量,包括磁碟容量及記憶體使用量。
資料收集器
此程式會使用入口網站應用程式定期收集使用量資訊,並將其儲存在使用量資料庫中。 入口網站主機服務提供者會定期使用 REST JSON 查詢來實作使用量計量。 資料收集器會依據所有資源提供者遵行的資料合約排程收集資料。
使用量資料庫
使用量資料的資料倉儲存放庫可能會在指定的天數之後,清除較舊的記錄。
使用量 API
用於傳輸及剖析使用量資料的程式碼。 這是 REST API,而且是唯一可以從使用量資料庫擷取資料的方法。 若是使用 JSON 查詢,服務提供者很容易就能將使用量資料納入計費系統。
請注意,Service Provider Foundation 之所以不在清單中,是因為它並非實作使用量計量的必要項目。 相反地,Service Provider Foundation 的角色是從所有資料倉儲收集計量並加以彙總,供計費及分析之用。
Service Provider Foundation 可提供使用量計量資料給任何想要收集該資料的用戶端,例如 Windows Server 適用的 Windows Azure Pack。 在 Windows Server 適用的 Windows Azure Pack 中,VM 雲端資源提供者會提供 IaaS 計量。 這些資料包含租用戶所用之所有虛擬機器的全部使用量計量,但前提是這些虛擬機器必須由 System Center 2012 – Operations Manager 監視,而且這些資料是儲存在 Operations Manager 管理伺服器所監視的 Operations Manager 資料倉儲上。
提交查詢
若要從內含 JSON 查詢的 URL 取得使用量計量資料,請依照下列範例所示:
https://SPFserver.contoso.com:8090/usage/usage?lastID=0\&batchsize=1000
第一個呼叫中的 lastID 應為零。 批次的大小沒有任何限制。 請注意,若批次大小不等於所有可用資料,Service Provider Foundation 會滿足其他用戶端的使用量計量要求,並會繼續為該用戶端提供下一個批次的服務。
資料提取模型
Service Provider Foundation 會實作資料提取模型,以取得度量。 用戶端以批次方式要求資料。 若要追蹤的批次及要求,使用量計量會使用書籤,而此書籤可能為零 (表示自租用戶訂閱之後,從未收集過資料),也可能是指出批次最後一筆記錄的值。Service Provider Foundation 會提供此書籤供用戶端於後續要求使用。
用戶端收集器會在每次收集時,要求其他計量資料批次使用目前的書籤做為下一個批次的起點。 若前一個批次要求傳回空的結果集 (因為 Service Provider Foundation 找不到可提供的使用量記錄),收集器會使用 0 的書籤。
使用量計量記錄的結果集會依據通用的資料合約提供給收集器。
計量度量
下表中虛擬機器使用計量彙總資料的收集間隔為小時。Service Provider Foundation 會針對每一個已經註冊之租用戶訂閱,收集其每部虛擬機器的這些計量,並彙總其值。
使用量資料記錄的組成項目包括:
EventID – 新的唯一事件識別碼 (浮水印),會與整批傳回給收集器之使用量記錄中最後一筆記錄時間相關聯。
ResourceID – 要測量的使用活動。
StartTime、EndTime – 資料彙總的開始與結束時間 (小時)。
ServiceType –「雲端」或「虛擬機器」。
SubscriptionID – 租用戶的訂閱識別碼。
Properties – 這些是定義下列項目的資訊欄位:
訂閱者 – 訂閱者識別碼。
計量服務 -「VM 使用率」或「雲端使用率」。
VMName – 虛擬機器的識別碼。
VNIC – 虛擬網路介面卡的識別碼。
下表顯示使用計量四個區域的計量:記憶體、CPU、磁碟及網路。 每個資料表都會列出定義使用量資料之度量的資源識別碼,並附上每種使用量測量類型之記錄的範例。
記憶體
資源識別碼 |
定義 |
記錄範例 |
---|---|---|
MemoryAllocated-Min MemoryAllocated-Max |
可配置的最小及最大記憶體大小。 |
|
MemoryConsumed-Min MemoryConsumed-Max MemoryConsumed-Median |
記憶體耗用量的最低值、最高值及中間值。 |
|
CPU
資源識別碼 |
定義 |
記錄範例 |
---|---|---|
CPUAllocationCount-Min CPUAllocationCount-Max |
配置之 CPU 核心數的下限值及上限值。 |
|
CPUPercentUtilization-Median |
CPU 耗用量的中間平均值 (%)。 |
|
磁碟
資源識別碼 |
定義 |
記錄範例 |
---|---|---|
CrossDiskIOPerSecond-Min CrossDiskIOPerSecond-Max CrossDiskIOPerSecond-Median |
所有附加磁碟每秒輸入/輸出 (IOPS) 的最低值、最高值及中間值。 |
|
CrossDiskSizeAllocated-Min CrossDiskSizeAllocated-Max |
所有附加磁碟所配置之磁碟大小的最低值及最高值。 |
(無法使用) |
網路
資源識別碼 |
定義 |
記錄範例 |
---|---|---|
PerNICKBSentPerSecond-Min PerNICKBSentPerSecond-Max PerNICKBSentPerSecond-Median PerNICKBSentPerSecond-Average |
網路介面卡每秒傳送之位元組數的最低值、最高值及平均值。 |
|
PerNICKBReceivedPerSecond-Min PerNICKBReceivedPerSecond-Max PerNICKBReceivedPerSecond-Median PerNICKBReceivedPerSecond-Average |
網路介面卡每秒接收之位元組數的最低值、最高值及平均值 |
|
範例資料結果集
下列資料取自內含 100 筆計量資料記錄的範例結果集,而這些資料記錄會由 JSON 檢視器轉譯。 此處只會顯示前 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"
)
)
)