Service Provider Foundation 中 Usage Metering 資料模型

 

適用於: System Center 2012 SP1 - Orchestrator, System Center 2012 R2 Orchestrator

本主題說明如何 Service Provider Foundation 如何提供使用量計量資料給入口網站,以及連線到其 Usage Metering 端點的用戶端。

System_CAPS_note注意事項

如需使用量計量及 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

可配置的最小及最大記憶體大小。

['53'] (
    EventId =  "54"
    ResourceId =  "MemoryAllocated-Max"
    StartTime =  "2012-11-21T00:00:00"
    EndTime =  "2012-11-21T01:00:00"
    ServiceType =  "VirtualMachine"
    SubscriptionId =  "75700cd5-893e-4f68-ada7-50ef4668acc6"
    Properties (
        Subscriber =  "75700cd5-893e-4f68-ada7-50ef4668acc6"
        Metered Service =  "VM Utilization"
        VMName =  "8ce64f27-4764-4d3a-911e-840d32f1d70b"
    )
    Resources (
        MemoryAllocated =  "1024"
    )
)

MemoryConsumed-Min

MemoryConsumed-Max

MemoryConsumed-Median

記憶體耗用量的最低值、最高值及中間值。

['14'] (
    EventId =  "15"
    ResourceId =  "MemoryConsumed-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"
    )
    Resources (
        MemoryConsumed =  "1024"
    )
)

CPU

資源識別碼

定義

記錄範例

CPUAllocationCount-Min

CPUAllocationCount-Max

配置之 CPU 核心數的下限值及上限值。

['60'] (
    EventId =  "61"
    ResourceId =  "CPUAllocationCount-Max"
    StartTime =  "2012-11-21T00:00:00"
    EndTime =  "2012-11-21T01:00:00"
    ServiceType =  "VirtualMachine"
    SubscriptionId =  "75700cd5-893e-4f68-ada7-50ef4668acc6"
    Properties (
        Subscriber =  "75700cd5-893e-4f68-ada7-50ef4668acc6"
        Metered Service =  "VM Utilization"
        VMName =  "8ce64f27-4764-4d3a-911e-840d32f1d70b"
    )
    Resources (
        CPUAllocationCount =  "1"
    )
)

CPUPercentUtilization-Median

CPU 耗用量的中間平均值 (%)。

['10'] (
    EventId =  "11"
    ResourceId =  "CPUPercentUtilization-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"
    )
    Resources (
        CPUPercentUtilization =  "0"
    )
)

磁碟

資源識別碼

定義

記錄範例

CrossDiskIOPerSecond-Min

CrossDiskIOPerSecond-Max

CrossDiskIOPerSecond-Median

所有附加磁碟每秒輸入/輸出 (IOPS) 的最低值、最高值及中間值。

['18'] (
    EventId =  "19"
    ResourceId =  "CrossDiskIOPerSecond-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"
    )
    Resources (
        CrossDiskIOPerSecond =  "8"
    )
)

CrossDiskSizeAllocated-Min

CrossDiskSizeAllocated-Max

所有附加磁碟所配置之磁碟大小的最低值及最高值。

(無法使用)

網路

資源識別碼

定義

記錄範例

PerNICKBSentPerSecond-Min

PerNICKBSentPerSecond-Max

PerNICKBSentPerSecond-Median

PerNICKBSentPerSecond-Average

網路介面卡每秒傳送之位元組數的最低值、最高值及平均值。

['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"
    )
)

PerNICKBReceivedPerSecond-Min

PerNICKBReceivedPerSecond-Max

PerNICKBReceivedPerSecond-Median

PerNICKBReceivedPerSecond-Average

網路介面卡每秒接收之位元組數的最低值、最高值及平均值

['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"
    )
)

範例資料結果集

下列資料取自內含 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"
        )
    )
)