Compartilhar via


Modelo de dados de medição de uso no Service Provider Foundation

 

Aplica-se a: System Center 2012 SP1 - Orchestrator, System Center 2012 R2 Orchestrator

Este tópico descreve como o Base do provedor de serviços fornece dados de medição de uso para portais e clientes que se conectam ao seu ponto de extremidade de medição de uso.

System_CAPS_noteObservação

Para obter informações atualizadas sobre o uso de medição e Windows Azure Pack para Windows Server, consulte o artigo na wiki do TechNet How to Integrate Your Billing System with the Usage Metering System (Como integrar seu sistema de cobrança com o sistema de medição de uso).

Visão geral da medição de uso

A medição de uso consiste nas seguintes tecnologias e recursos que participam como componentes do sistema de medição de uso:

  • Gerador de dados

    Um provedor de recursos, como um provedor de recursos de nuvem de máquina virtual, que coleta e expõe informações de métrica de uso. Os dados são obtidos de máquinas virtuais que um locatário usa, criando, assim, diversas categorias de métricas que incluem a capacidade do disco e o uso de memória.

  • Coletor de dados

    O programa usado por um aplicativo de portal para coletar periodicamente informações de uso e armazená-las no banco de dados de uso. O portal hospedeiro implementa a medição de uso por meio de consultas baseadas em REST JSON de forma programada. O coletor de dados espera que os dados de uso sejam disponibilizados segundo um contrato de dados seguido por todos os provedores de recursos.

  • Banco de dados de uso

    O repositório de data warehouse de dados de uso, que pode ter os registros mais antigos limpos após um número especificado de dias.

  • API de uso

    O código usado para transmitir e analisar dados de uso. Isso é uma API RESTful e é a única forma de extrair os dados do banco de dados de uso. Usando consultas JSON, os provedores de serviços podem adaptar facilmente os dados de uso em seus sistemas de faturamento.

Observe que o Base do provedor de serviços não é listado, porque não é necessário para implementar a medição de uso. Em vez disso, a função de Base do provedor de serviços é coletar métricas de todos os data warehouses e agregá-las para fins de faturamento e análise.

A Base do provedor de serviços fornece dados de medição de uso para qualquer cliente, como o Windows Azure Pack para Windows Server, que deseje coletá-los. As métricas do IaaS no Windows Azure Pack para Windows Server são fornecidas pelo provedor de recursos de Nuvens de VM. Esses dados incluem todas as métricas de medição de uso para todas as máquinas virtuais que um locatário utiliza, desde que essas máquinas virtuais estejam sendo monitoradas por System Center 2012 – Operations Manager e que os dados estejam sendo armazenados em Data Warehouses do Operations Manager monitoradas por um servidor de gerenciamento do Operations Manager.

Envio de consultas

Para obter dados de medição de uso com uma URL que contém uma consulta JSON, conforme mostrado no exemplo a seguir:

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

Na primeira chamada, o lastID deve ser zero. Não há nenhum limite para o tamanho de um lote. Observe que, se um tamanho de lote não for igual a todos os dados disponíveis, o Base do provedor de serviços atenderá a outras solicitações de outros clientes de medição de uso e depois retornará ao cliente para fornecer o seu próximo lote.

Modelo de reunião de dados

A Base do provedor de serviços implementa um modelo de reunião de dados para obter métricas. Os clientes solicitam dados em lotes. Para controlar os lotes e as solicitações, a medição de uso usa um indicador que pode ser zero (que significa que não houve nenhum dado coletado desde o início da assinatura do locatário) ou um valor que identifica o último registro do lote. O Base do provedor de serviços fornece esse indicador para ser usado para solicitações subsequentes do cliente.

Para cada ciclo de coleta, o coletor do cliente solicita outro lote de dados medidos utilizando o indicador atual como ponto de partida para o próximo lote. Se a solicitação de lote anterior tiver retornado um conjunto de resultados vazio (porque o Base do provedor de serviços não encontrou nenhum registro de uso para fornecer), o coletor usa um indicador de 0.

O conjunto de resultados de registros de medição de uso é fornecido para o coletor em um contrato de dados conhecidos.

Métricas de monitoramento

As métricas de uso de máquina virtual nas tabelas a seguir são agregadas usando intervalos de registro em horas. O Base do provedor de serviços coleta essas métricas para cada máquina virtual para todas as assinaturas de locatários registradas e agrega os valores.

Um registro de dados de uso consiste nas seguintes partes:

  • EventID – uma nova ID de evento exclusiva (marca-d'água) que está associada à hora do último registro no retorno de um lote de registros de uso para o coletor.

  • Resource Id – a medição da atividade de uso.

  • StartTime, EndTime – os horários de início e de término da hora em que os dados foram agregados.

  • ServiceType – "Nuvem" ou "VirtualMachine".

  • SubscriptionID – a ID da assinatura do locatário.

  • Properties – estes são os campos de informações que definem o seguinte:

    • Subscriber – ID do assinante.

    • Metered Service – "Utilização de VM" ou "Utilização de nuvem"

    • VMName – ID da máquina virtual

    • VNIC – ID do adaptador de rede virtual.

As tabelas a seguir mostram as métricas da área quatro de medição de uso: memória, CPU, disco e rede. Cada tabela lista as IDs de recursos aplicáveis que definem as métricas de dados de uso e inclui um exemplo de um registro para cada tipo de medição de uso.

Memória

IDs de recurso

Definição

Registro de exemplo

MemoryAllocated-Min

MemoryAllocated-Max

Menor e maior memória alocada.

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

Menor, maior e média de memória utilizada.

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

IDs de recurso

Definição

Registro de exemplo

CPUAllocationCount-Min

CPUAllocationCount-Max

Menor e maior número de núcleos de CPU alocados.

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

Média mediana em percentual de consumo de 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

IDs de recurso

Definição

Registro de exemplo

CrossDiskIOPerSecond-Min

CrossDiskIOPerSecond-Max

CrossDiskIOPerSecond-Median

Menor, maior e média de entrada/saída por segundo (IOPS) em todos os discos conectados.

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

Menor e maior tamanho de disco alocado em todos os discos conectados.

(Não disponível)

Rede

IDs de recurso

Definição

Registro de exemplo

PerNICKBSentPerSecond-Min

PerNICKBSentPerSecond-Max

PerNICKBSentPerSecond-Median

PerNICKBSentPerSecond-Average

Bytes de números menores, mais altos, médios e na média enviados por segundo em um adaptador de rede

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

Bytes de números menores, mais altos, médios e na média recebidos por segundo em um adaptador de rede

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

Conjunto de resultados de dados de exemplo

Os dados a seguir são de um conjunto de resultados do exemplo de 100 registros de dados de medição, quando processado por um visualizador JSON. Apenas os cinco primeiros e os últimos 5 são mostrados aqui.

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