Share via


Modello dati di misurazione dell'utilizzo in Service Provider Foundation

 

Si applica a: System Center 2012 SP1 - Orchestrator, System Center 2012 R2 Orchestrator

Questo argomento descrive in che modo Foundation di Provider di servizi fornisce i dati di misurazione dell'utilizzo ai portali e ai client connessi all'endpoint di misurazione dell'utilizzo.

Nota

Per informazioni aggiornate sulla misurazione dell'utilizzo e Windows Azure Pack per Windows Server, vedere l'articolo di TechNet Wiki su come integrare il sistema di fatturazione con il sistema di misurazione dell'utilizzo.

Panoramica della misurazione dell'utilizzo

La misurazione dell'utilizzo è costituita dalle seguenti tecnologie e risorse che rappresentano i componenti del sistema di misurazione dell'utilizzo:

  • Generatore di dati

    Provider di risorse, ad esempio un provider di risorse cloud delle macchine virtuali, che raccoglie e diffonde informazioni sulle metriche di utilizzo. I dati vengono acquisiti dalle macchine virtuali usate da un tenant, in modo da creare diverse categorie di metriche, ad esempio la capacità del disco e l'utilizzo della memoria.

  • Agente di raccolta dati

    Programma usato da un'applicazione del portale per raccogliere periodicamente informazioni sull'utilizzo e archiviarle nel database di utilizzo. Il provider di servizi di hosting del portale implementa la misurazione dell'utilizzo su base programmata tramite query JSON basate su REST. L'agente di raccolta dati presuppone la disponibilità dei dati di utilizzo in base a un contratto dati a cui aderiscono tutti i provider di risorse.

  • Database di utilizzo

    Repository di data warehouse dei dati di utilizzo, in cui è possibile eliminare i record meno recenti dopo un determinato numero di giorni.

  • API dell'utilizzo

    Codice per trasmettere e analizzare i dati di utilizzo. Si tratta di un'API RESTful che rappresenta l'unico metodo per estrarre i dati dal database di utilizzo. Mediante le query JSON i provider di servizi possono adattare facilmente i dati di utilizzo nel proprio sistema di fatturazione.

Foundation di Provider di servizi non è incluso nell'elenco perché non è necessario per l'implementazione della misurazione dell'utilizzo. Il ruolo di Foundation di Provider di servizi consiste invece nella raccolta delle metriche da tutti i data warehouse e nella loro aggregazione per la fatturazione e l'analisi.

Foundation di Provider di servizi fornisce dati di misurazione dell'utilizzo a qualsiasi client che intende raccoglierli, ad esempio Windows Azure Pack per Windows Server. Le metriche IaaS di Windows Azure Pack per Windows Server vengono fornite dal provider di risorse Cloud VM. I dati comprendono tutte le metriche della misurazione dell'utilizzo di tutte le macchine virtuali usate da un tenant, a condizione che vengano monitorate da System Center 2012 – Operations Manager e che i dati siano archiviati nei data warehouse di Operations Manager monitorati da un server di gestione di Operations Manager.

Invio di query

Per ottenere i dati di misurazione dell'utilizzo con un URL contenente una query JSON, come mostrato nel seguente esempio:

https://SPFserver.contoso.com:8090/usage/usage?lastID=0\&batchsize=1000

Nella prima chiamata, lastID deve essere zero. Non esiste alcun limite per le dimensioni del batch. Se la dimensione del batch non è uguale a quella di tutti i dati disponibili, Foundation di Provider di servizi eseguirà le richieste di misurazione dell'utilizzo degli altri client per poi tornare al client in questione e passare al batch successivo.

Modello di pull dei dati

Foundation di Provider di servizi implementa un modello di pull dei dati per ottenere le metriche. I client richiedono i dati in batch. Per monitorare batch e richieste, la misurazione dell'utilizzo adopera un segnalibro che può essere pari a zero (indicando l'assenza di dati raccolti dall'inizio della sottoscrizione del tenant) o a un valore che identifica l'ultimo record del batch.Foundation di Provider di servizi fornisce il segnalibro da usare per le successive richieste da parte del client.

Per ogni ciclo di raccolta, l'agente di raccolta del client richiede un altro batch di dati a consumo usando il segnalibro attuale come punto di partenza per il batch successivo. Se la richiesta del batch precedente ha prodotto un set di risultati vuoto (perché Foundation di Provider di servizi non ha rilevato record di utilizzo disponibili), l'agente di raccolta usa un segnalibro pari a 0.

Il set di risultati dei record di misurazione dell'utilizzo viene fornito all'agente di raccolta in un contratto dati noto.

Metrica di misurazione

Le metriche di utilizzo delle macchine virtuali nelle tabelle seguenti vengono aggregate con intervalli di un'ora.Foundation di Provider di servizi raccoglie le metriche di ogni macchina virtuale e sottoscrizione di tenant registrata, per poi aggregarne i valori.

Un record di dati di utilizzo è costituito dai seguenti elementi:

  • EventID: nuovo ID evento univoco (filigrana) associato all'ora più recente di restituzione di un batch di record di utilizzo all'agente di raccolta.

  • ID risorsa: misurazione dell'attività di utilizzo.

  • StartTime, EndTime: orari di inizio e di fine dell'aggregazione dei dati.

  • ServiceType: "Cloud" o "VirtualMacine".

  • SubscriptionID: l'ID sottoscrizione del tenant.

  • Proprietà: campi di informazioni che definiscono:

    • Sottoscrittore: ID sottoscrittore.

    • Servizio misurato: "Utilizzo della VM" o "Utilizzo del cloud"

    • VMName: ID della macchina virtuale

    • VNIC: ID della scheda di rete virtuale.

Le seguenti tabelle contengono le metriche delle quattro aree di misurazione dell'utilizzo, vale a dire memoria, CPU, disco e rete. Ciascuna tabella elenca gli ID delle risorse che definiscono le metriche dei dati di utilizzo e un record di esempio per ciascun tipo di misurazione dell'utilizzo.

Memoria

ID risorsa

Definizione

Record di esempio

MemoryAllocated-Min

MemoryAllocated-Max

Dimensione minima e massima della memoria allocata.

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

Dimensione minima, massima e mediana della memoria usata.

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

ID risorsa

Definizione

Record di esempio

CPUAllocationCount-Min

CPUAllocationCount-Max

Numero minimo e massimo di core CPU allocati.

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

Percentuale media mediana di utilizzo della 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"
    )
)

Disco

ID risorsa

Definizione

Record di esempio

CrossDiskIOPerSecond-Min

CrossDiskIOPerSecond-Max

CrossDiskIOPerSecond-Median

Valore IOPS (input/output al secondo) minimo, massimo e mediano (IOPS) in tutti i dischi collegati.

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

Dimensione allocata minima e massima di tutti i dischi collegati.

(Non disponibile)

Rete

ID risorsa

Definizione

Record di esempio

PerNICKBSentPerSecond-Min

PerNICKBSentPerSecond-Max

PerNICKBSentPerSecond-Median

PerNICKBSentPerSecond-Average

Valore minimo, massimo, mediano e medio del numero di byte al secondo inviati con una scheda di rete

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

Valore minimo, massimo, mediano e medio del numero di byte al secondo ricevuti con una scheda di rete

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

Esempio di un set di risultati di dati

I seguenti dati appartengono a un set di risultati di esempio costituito da 100 record di dati di misurazione di cui è stato eseguito il rendering con un visualizzatore JSON. In questa sezione vengono visualizzati solo i primi 5 e gli ultimi 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"
        )
    )
)