Service Provider Foundation의 사용량 계량 데이터 모델
적용 대상: System Center 2012 SP1 - Orchestrator, System Center 2012 R2 Orchestrator
이 항목에서는 Service Provider Foundation이 사용량 계량 끝점에 연결되는 포털 및 클라이언트에 사용량 계량 데이터를 제공하는 방법을 설명합니다.
참고
사용량 계량 및 Windows Server용 Windows Azure 팩에 대한 업데이트 정보는 TechNet wiki 문서 청구 시스템과 사용량 계량 시스템을 통합하는 방법을 참조하세요.
사용량 계량의 개요
사용량 계량은 사용량 계량 시스템의 구성 요소로 참여하는 다음과 같은 기술 및 리소스로 구성됩니다.
데이터 생성기
사용량 메트릭 정보를 수집하고 노출하는 가상 컴퓨터 클라우드 리소스 공급자와 같은 리소스 공급자입니다. 데이터는 테넌트가 사용하는 가상 컴퓨터에서 가져오며, 이를 통해 디스크 용량 및 메모리 사용량을 비롯한 다양한 범주의 메트릭을 만듭니다.
데이터 수집기
사용 정보를 정기적으로 수집하여 사용 현황 데이터베이스에 저장하기 위해 포털 응용 프로그램에서 사용하는 프로그램입니다. 포털 호스터는 일정에 따라 REST 기반 JSON 쿼리를 사용하여 사용량 계량을 구현합니다. 데이터 수집기는 모든 리소스 공급자가 준수하는 데이터 계약에 따라 사용 현황 데이터가 사용될 수 있도록 합니다.
사용 현황 데이터베이스
사용 현황 데이터의 데이터 웨어하우스 리포지토리로, 오래된 레코드는 지정된 일수 후에 삭제될 수 있습니다.
사용량 API
사용 현황 데이터를 전송 및 구문 분석하는데 사용하는 코드입니다. 이 코드는 RESTful API이며, 사용 현황 데이터베이스에서 데이터를 추출하는 유일한 방법입니다. JSON 쿼리를 사용하여 서비스 공급자는 사용 현황 데이터를 자체 청구 시스템에 맞게 쉽게 조정할 수 있습니다.
이때 Service Provider Foundation은 사용량 계량을 구현하는 데 필요하지 않으므로 목록에 나와 있지 않습니다. 반면에 Service Provider Foundation의 역할은 모든 데이터 웨어하우스에서 메트릭을 수집하고 청구 및 분석을 위해 값을 집계하는 것입니다.
Service Provider Foundation은 Windows Server용 Windows Azure 팩처럼, 데이터를 수집하려는 클라이언트에 사용량 계량 데이터를 제공합니다.Windows Server용 Windows Azure 팩의 IaaS 메트릭은 VM 클라우드 리소스 공급자가 제공합니다. 가상 컴퓨터가 System Center 2012 - Operations Manager에 의해 모니터링되고 데이터는 Operations Manager 관리 서버에서 모니터링하는 Operations Manager 데이터 웨어하우스에 저장되는 경우 이 데이터는 테넌트가 사용하는 모든 가상 컴퓨터에 대한 모든 사용량 계량 메트릭으로 구성됩니다.
쿼리 전송
다음 예제와 같이 JSON 쿼리를 포함하는 URL을 사용하여 사용량 계량 데이터를 가져오려면
https://SPFserver.contoso.com:8090/usage/usage?lastID=0\&batchsize=1000
첫 번째 호출에서 lastID는 0이어야 합니다. 일괄 처리의 크기에는 제한이 없습니다. 일괄 처리 크기가 사용 가능한 모든 데이터와 같지 않은 경우 Service Provider Foundation은 다른 클라이언트의 다른 사용량 계량 요청을 처리한 후 그 다음 일괄 처리를 제공하는 클라이언트로 돌아갑니다.
데이터 풀링 모델
Service Provider Foundation은 메트릭을 얻기 위한 데이터 풀링 모델을 구현합니다. 클라이언트는 데이터를 대량으로 요청합니다. 일괄 처리 및 요청을 추적하기 위해 사용량 계량에서는 0이거나(테넌트의 구독 시작 이후 수집된 데이터가 없음을 의미) 또는 일괄 처리의 마지막 레코드를 식별하는 값이 될 수 있는 책갈피를 사용합니다.Service Provider Foundation에서는 이 책갈피를 클라이언트의 후속 요청에 사용하도록 제공합니다.
각 수집 주기 동안 클라이언트 수집기는 현재 책갈피를 다음 일괄 처리의 시작 지점으로 사용하여 계량된 데이터의 다른 일괄 처리를 요청합니다.Service Provider Foundation에서 제공할 사용량 레코드를 찾지 못했기 때문에 이전 일괄 처리 요청에서 빈 결과 집합을 반환한 경우 수집기는 0인 책갈피를 사용합니다.
사용량 계량 레코드의 결과 집합은 잘 알려진 데이터 계약의 수집기에 제공됩니다.
계량 메트릭
다음 테이블에서 가상 컴퓨터 사용량 메트릭은 시간 간격을 사용하여 집계됩니다.Service Provider Foundation에서는 등록된 모든 테넌트 구독의 모든 가상 컴퓨터에 대해 이러한 메트릭을 수집하고 값을 집계합니다.
사용 현황 데이터의 레코드는 다음과 같은 부분으로 구성됩니다.
EventID - 다량의 사용량 레코드를 수집기로 반환하는 마지막 레코드 시간과 연관된 새로운 고유 이벤트 ID(워터 마크)입니다.
Resource Id - 사용량 활동을 측정합니다.
StartTime, EndTime - 데이터가 집계된 시작 시간과 종료 시간입니다.
ServiceType - "Cloud" 또는 "VirtualMacine"입니다.
SubscriptionID - 테넌트의 구독 ID입니다.
Properties – 다음을 정의하는 정보 필드입니다.
Subscriber - 구독자 ID입니다.
Metered Service - "VM 사용률" 또는 "클라우드 사용률"입니다.
VMName - 가상 컴퓨터의 ID입니다.
VNIC - 가상 네트워크 어댑터의 ID입니다.
다음 테이블에서는 사용량 계량의 네 영역인 메모리, CPU, 디스크 및 네트워크에 대한 메트릭을 보여줍니다. 각 테이블에서는 사용 현황 데이터의 메트릭을 정의하는 해당 리소스 ID를 나열하며, 각 사용량 측정 유형의 레코드 예제를 포함합니다.
메모리
리소스 ID |
정의 |
레코드 예제 |
---|---|---|
MemoryAllocated-Min MemoryAllocated-Max |
최저 및 최고 할당 메모리 크기입니다. |
|
MemoryConsumed-Min MemoryConsumed-Max MemoryConsumed-Median |
최저, 최고 및 중간 사용 메모리 크기입니다. |
|
CPU
리소스 ID |
정의 |
레코드 예제 |
---|---|---|
CPUAllocationCount-Min CPUAllocationCount-Max |
할당된 CPU 코어의 최저 및 최고 개수입니다. |
|
CPUPercentUtilization-Median |
중간 평균의 CPU 사용량 백분율입니다. |
|
디스크
리소스 ID |
정의 |
레코드 예제 |
---|---|---|
CrossDiskIOPerSecond-Min CrossDiskIOPerSecond-Max CrossDiskIOPerSecond-Median |
연결된 모든 디스크의 최저, 최고 및 중간 IOPS(초당 입출력)입니다. |
|
CrossDiskSizeAllocated-Min CrossDiskSizeAllocated-Max |
연결된 모든 디스크의 최저 및 최고 할당 디스크 크기입니다. |
(사용할 수 없음) |
네트워크
리소스 ID |
정의 |
레코드 예제 |
---|---|---|
PerNICKBSentPerSecond-Min PerNICKBSentPerSecond-Max PerNICKBSentPerSecond-Median PerNICKBSentPerSecond-Average |
네트워크 어댑터에서 초당 전송된 최저, 최고, 중간 및 평균 바이트 수입니다. |
|
PerNICKBReceivedPerSecond-Min PerNICKBReceivedPerSecond-Max PerNICKBReceivedPerSecond-Median PerNICKBReceivedPerSecond-Average |
네트워크 어댑터에서 초당 수신된 최저, 최고, 중간 및 평균 바이트 수입니다. |
|
데이터 결과 집합 예제
다음 데이터는 JSON 뷰어에서 렌더링된 계량 데이터 레코드 100개의 결과 집합 예제에서 가져온 것입니다. 처음 5개와 마지막 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"
)
)
)