Modelo de Dados de Medição de Utilização no Service Provider Foundation
Aplica-se a: System Center 2012 SP1 - Orchestrator, System Center 2012 R2 Orchestrator
Este tópico descreve a forma como o Service Provider Foundation fornece dados de medição de utilização para os portais e clientes que ligam ao respetivo ponto final de medição de utilização.
Nota
Para obter informações atualizadas sobre a medição de utilização e o Windows Azure Pack for Windows Server, consulte o artigo wiki do TechNet sobre Como Integrar o Sistema de Faturação no Sistema de Medição de Utilização.
Descrição geral da medição de utilização
A medição de utilização consiste nas seguintes tecnologias e recursos que participam como componentes do sistema de medição de utilização:
Gerador de dados
Fornecedor de recursos, como um fornecedor de recursos na nuvem de máquinas virtuais, que recolhe e expõe as informações das métricas de utilização. Os dados são obtidos a partir das máquinas virtuais utilizadas por um inquilino, criando várias categorias de métricas, incluindo capacidade do disco e utilização da memória.
Recoletor de dados
Programa utilizado por uma aplicação do portal para recolher periodicamente informações de utilização e armazená-las na base de dados de utilização. O fornecedor de serviços de alojamento do portal implementa a medição de utilização através de consultas JSON baseadas em REST agendadas. O recoletor de dados espera que os dados de utilização sejam disponibilizados de acordo com um contrato de dados aceite por todos os fornecedores de recursos.
Base de dados de utilização
Repositório do armazém de dados de utilização, cujos registos antigos podem ser removidos após um número especificado de dias.
API de utilização
Código utilizado para transmitir e analisar dados de utilização. Trata-se de uma API REST e só através da mesma é possível extrair os dados da base de dados de utilização. Através de consultas JSON, os fornecedores de serviços podem adaptar facilmente os dados de utilização ao sistema de faturação.
Tenha em atenção que o Service Provider Foundation não está listado porque não é necessário para implementar a medição de utilização. Em vez disso, a função do Service Provider Foundation é recolher as métricas de todos os armazéns de dados e agregá-las para efeitos de faturação e análise.
O Service Provider Foundation fornece dados de medição de utilização a qualquer cliente, como o Windows Azure Pack for Windows Server, que pretenda recolhê-los. As métricas IaaS no Windows Azure Pack for Windows Server são fornecidas pelo fornecedor de recursos VM Clouds. Estes dados incluem todas as métricas de medição de utilização para todas as máquinas virtuais utilizadas por um inquilino, desde que essas máquinas virtuais sejam monitorizadas pelo System Center 2012 – Operations Manager e os dados sejam armazenados em Armazéns de Dados do Operations Manager monitorizados por um servidor de gestão do Operations Manager.
Submeter consultas
Obter dados de medição de utilização com um URL que contém uma consulta JSON, conforme demonstrado no seguinte exemplo:
https://SPFserver.contoso.com:8090/usage/usage?lastID=0\&batchsize=1000
Na primeira chamada, o lastID deve ser zero. Não existe limite no tamanho de um lote. Tenha em atenção que se o tamanho de um lote não for igual a todos os dados disponíveis, o Service Provider Foundation irá satisfazer outros pedidos de medição de utilização de outros clientes e, em seguida, voltar a esse cliente para fornecer o lote seguinte.
Modelo de solicitação de dados
O Service Provider Foundation implementa um modelo de solicitação de dados para obter métricas. Os clientes solicitam dados em lotes. Para monitorizar os lotes e os pedidos, a medição de utilização utiliza um marcador que pode ser zero (o que significa que não foram recolhidos dados desde o início da subscrição do inquilino) ou um valor que identifique o último registo do lote. O Service Provider Foundation fornece este marcador para ser utilizado em pedidos subsequentes do cliente.
Para cada ciclo de recolha, o recoletor do cliente solicita outro lote de dados medidos utilizando o marcador atual como ponto de partida do lote seguinte. Se o pedido de lote anterior tiver devolvido um conjunto de resultados vazio (porque o Service Provider Foundation não encontrou registos de utilização a fornecer), o recoletor utiliza um marcador de 0.
O conjunto de resultados de registos de medição de utilização é fornecido num contrato de dados bem conhecido.
Métricas de Medição
As métricas de utilização de máquinas virtuais nas tabelas seguintes são agregadas em intervalos de uma hora. O Service Provider Foundation reúne estas métricas para cada máquina virtual em cada subscrição de inquilino registada e agrega os valores.
Um registo de dados de utilização é constituído pelas seguintes partes:
EventID – Novo ID de Evento exclusivo (limite de tamanho) associado à hora do último registo na devolução de um lote de registos de utilização ao recoletor.
ID de recurso – Medição da atividade de utilização.
StartTime, EndTime – Horas de início e de fim da agregação dos dados.
ServiceType – "Cloud" ou "VirtualMachine".
SubscriptionID – ID de subscrição do inquilino.
Propriedades – Campos de informação que definem o seguinte:
Subscritor – ID do subscritor.
Serviço Medido – "Utilização da VM" ou "Utilização da Nuvem"
VMName – ID da máquina virtual
VNIC – ID da placa de rede virtual.
As tabelas seguintes mostram as métricas das quatro áreas de medição de utilização: memória, CPU, disco e rede. Cada tabela lista os IDs de recurso aplicáveis que definem as métricas de dados de utilização e inclui um exemplo de registo para cada tipo de medição de utilização.
Memória
IDs de Recurso |
Definição |
Registo de Exemplo |
---|---|---|
MemoryAllocated-Min MemoryAllocated-Max |
Tamanho mínimo e máximo de memória alocada. |
|
MemoryConsumed-Min MemoryConsumed-Max MemoryConsumed-Median |
Tamanho mínimo, máximo e mediano de memória consumida. |
|
CPU
IDs de Recurso |
Definição |
Registo de Exemplo |
---|---|---|
CPUAllocationCount-Min CPUAllocationCount-Max |
Número mínimo e máximo de núcleos de CPU alocados. |
|
CPUPercentUtilization-Median |
Percentagem média de consumo da CPU. |
|
Disco
IDs de Recurso |
Definição |
Registo de Exemplo |
---|---|---|
CrossDiskIOPerSecond-Min CrossDiskIOPerSecond-Max CrossDiskIOPerSecond-Median |
Entrada/saída mínima, máxima e mediana por segundo (IOPS) em todos os discos ligados. |
|
CrossDiskSizeAllocated-Min CrossDiskSizeAllocated-Max |
Tamanho mínimo e máximo do disco alocado em todos os discos ligados. |
(Não disponível) |
Rede
IDs de Recurso |
Definição |
Registo de Exemplo |
---|---|---|
PerNICKBSentPerSecond-Min PerNICKBSentPerSecond-Max PerNICKBSentPerSecond-Median PerNICKBSentPerSecond-Average |
Número mínimo, máximo, mediano e médio de bytes enviados por segundo numa placa de rede |
|
PerNICKBReceivedPerSecond-Min PerNICKBReceivedPerSecond-Max PerNICKBReceivedPerSecond-Median PerNICKBReceivedPerSecond-Average |
Número mínimo, máximo, mediano e médio de bytes recebidos por segundo numa placa de rede |
|
Conjunto de resultados de dados de exemplo
Os dados seguintes são de um conjunto de resultados de exemplo de 100 registos de dados de medição, conforme compostos por um visualizador JSON. Apenas são mostrados aqui os 5 primeiros e os 5 últimos registos.
$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"
)
)
)