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.
Observaçã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. |
|
MemoryConsumed-Min MemoryConsumed-Max MemoryConsumed-Median |
Menor, maior e média de memória utilizada. |
|
CPU
IDs de recurso |
Definição |
Registro de exemplo |
---|---|---|
CPUAllocationCount-Min CPUAllocationCount-Max |
Menor e maior número de núcleos de CPU alocados. |
|
CPUPercentUtilization-Median |
Média mediana em percentual de consumo de CPU. |
|
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. |
|
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 |
|
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 |
|
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"
)
)
)