Partager via


Modèle de données de contrôle de l'utilisation dans Service Provider Foundation

 

S'applique à: System Center 2012 SP1 - Orchestrator, System Center 2012 R2 Orchestrator

Cette rubrique décrit comment Service Provider Foundation fournit des données de contrôle de l'utilisation aux portails et aux clients qui se connectent à son point de terminaison de contrôle.

Notes

Pour obtenir les informations les plus récentes sur le contrôle de l'utilisation et Pack Windows Azure pour Windows Server, consultez l'article wiki TechNet Comment intégrer votre système de facturation au système de contrôle de l'utilisation.

Vue d'ensemble du contrôle de l'utilisation

Le système de contrôle de l'utilisation est constitué des technologies et des ressources suivantes :

  • Générateur de données

    Fournisseur de ressources, par exemple un fournisseur de ressources de cloud d'ordinateur virtuel, qui recueille et expose des informations sur les métriques d'utilisation. Les données sont obtenues à partir des ordinateurs virtuels utilisés par un locataire, créant ainsi diverses catégories de métriques, notamment la capacité des disques et l'utilisation de la mémoire.

  • Collecteur de données

    Programme utilisé par une application de portail pour recueillir périodiquement des informations sur l'utilisation et pour les stocker dans la base de données d'utilisation. L'hébergeur du portail implémente le contrôle de l'utilisation selon une planification à l'aide de requêtes JSON basées sur REST. Le collecteur de données s'attend à ce que les données d'utilisation soient mises à disposition conformément à un contrat de données respecté par tous les fournisseurs de ressources.

  • Base de données d'utilisation

    Référentiel de l'entrepôt des données d'utilisation, qui peut être purgé des anciens enregistrements après un nombre de jours spécifié.

  • API d'utilisation

    Code utilisé pour transmettre et analyser les données d'utilisation. Il s'agit d'une API RESTful. C'est le seul moyen d'extraire les données de la base de données d'utilisation. À l'aide de requêtes JSON, les fournisseurs de services peuvent adapter facilement les données d'utilisation à leur système de facturation.

Notez que Service Provider Foundation n'est pas répertorié, car il n'est pas nécessaire pour implémenter le contrôle de l'utilisation. Au lieu de cela, le rôle de Service Provider Foundation consiste à recueillir des métriques à partir de tous les entrepôts de données et de les agréger à des fins de facturation et d'analyse.

Service Provider Foundation fournit des données de contrôle de l'utilisation à n'importe quel client, par exemple Pack Windows Azure pour Windows Server, qui souhaite les recueillir. Les métriques IaaS dans Pack Windows Azure pour Windows Server sont fournies par le fournisseur de ressources Clouds d'ordinateurs virtuels. Ces données comprennent toutes les métriques de contrôle relatives à l'utilisation de tous les ordinateurs virtuels utilisés par un locataire, à condition que ces ordinateurs virtuels soient contrôlés par System Center 2012 – Operations Manager et que les données soient stockées dans des entrepôts de données Operations Manager contrôlés par un serveur d'administration Operations Manager.

Soumission de requêtes

Pour obtenir des données de contrôle de l'utilisation avec une URL qui contient une requête JSON, procédez comme indiqué dans l'exemple suivant :

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

Dans le premier appel, lastID doit être égal à zéro. Il n'existe aucune limite sur la taille d'un lot. Notez que si une taille de lot n'est pas égale à toutes les données disponibles, Service Provider Foundation répond à d'autres demandes de contrôle de l'utilisation d'autres clients, puis il revient à ce client pour fournir son lot suivant.

Modèle d'extraction de données

Service Provider Foundation implémente un modèle d'extraction de données pour obtenir des métriques. Les clients demandent des données par lots. Pour effectuer le suivi des lots et requêtes, le contrôle de l'utilisation utilise un signet qui peut être égal à zéro (ce qui signifie qu'aucune donnée n'a été collectée depuis le début de l'abonnement du client) ou à une valeur permettant d'identifier le dernier enregistrement du lot.Service Provider Foundation fournit ce signet pour qu'il soit utilisé pour les requêtes ultérieures émises par le client.

Pour chaque cycle de collecte, le collecteur client demande un autre lot de données de contrôle à l'aide du signet actuel comme point de départ pour le lot suivant. Si la demande de lot précédente a retourné un jeu de résultats vide (car Service Provider Foundation n'a trouvé aucun enregistrement d'utilisation à fournir), le collecteur utilise un signet 0.

Le jeu de résultats des enregistrements de contrôle de l'utilisation est fourni au collecteur dans un contrat de données connu.

Métriques de contrôle

Les métriques d'utilisation d'ordinateur virtuel indiquées dans les tableaux suivants sont agrégées à l'aide d'intervalles à toutes les heures.Service Provider Foundation rassemble ces métriques pour chaque ordinateur virtuel et pour chaque abonnement de locataire enregistré, puis il agrège les valeurs.

Un enregistrement de données d'utilisation est composé des éléments suivants :

  • EventID : il s'agit d'un nouvel ID d'événement unique (filigrane) associé à l'horaire du dernier enregistrement lors du renvoi d'un lot d'enregistrements d'utilisation au collecteur.

  • ID de ressource : mesure de l'activité d'utilisation.

  • StartTime, EndTime : horaires de début et de fin de l'heure où les données ont été agrégées.

  • ServiceType : « Cloud » ou « Virtualmachine ».

  • SubscriptionID : ID d'abonnement du locataire.

  • Propriétés : il s'agit de champs d'information qui définissent les éléments suivants :

    • Subscriber : ID d'abonné.

    • Metered Service : « VM Utilization » ou « Cloud Utilization »

    • VMName : ID de l'ordinateur virtuel

    • VNIC : ID de la carte réseau virtuelle.

Les tableaux suivants indiquent les métriques pour les quatre zones de mesure de l'utilisation : mémoire, processeur, disque et réseau. Chaque tableau répertorie les ID de ressources applicables qui définissent les métriques d'utilisation des données et contient un exemple d'enregistrement pour chaque type de mesure de l'utilisation.

Mémoire

ID de ressource

Définition

Exemple d'enregistrement

MemoryAllocated-Min

MemoryAllocated-Max

Taille de mémoire minimale et maximale allouée.

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

Taille de mémoire consommée la plus basse, la plus élevée et médiane.

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

Processeur

ID de ressource

Définition

Exemple d'enregistrement

CPUAllocationCount-Min

CPUAllocationCount-Max

Nombre minimal et maximal de cœurs de processeur alloués.

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

Moyenne médiane en pourcentage de la consommation du processeur.

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

Disque

ID de ressource

Définition

Exemple d'enregistrement

CrossDiskIOPerSecond-Min

CrossDiskIOPerSecond-Max

CrossDiskIOPerSecond-Median

Entrée/sortie par seconde (IOPS) la plus faible, la plus élevée et médiane parmi tous les disques attachés.

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

Taille de disque allouée la plus faible et la plus élevée parmi tous les disques attachés.

(Non disponible)

Réseau

ID de ressource

Définition

Exemple d'enregistrement

PerNICKBSentPerSecond-Min

PerNICKBSentPerSecond-Max

PerNICKBSentPerSecond-Median

PerNICKBSentPerSecond-Average

Nombre d'octets envoyés par seconde le plus faible, le plus élevé, médian et moyen sur une carte réseau

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

Nombre d'octets reçus par seconde le plus faible, le plus élevé, médian et moyen sur une carte réseau

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

Exemple de jeu de résultats de données

Les données suivantes proviennent d'un exemple de jeu de résultats de 100 enregistrements de données de contrôle tel qu'obtenu à partir d'une visionneuse JSON. Seuls les cinq premiers et cinq derniers enregistrements sont affichés ici.

$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"
        )
    )
)