Knowledge base
Dokumentacja API: Billing & Stats
Posted by Pomoc Oktawave on 19.05.2016 16:02

API wystawia dwa rodzaje metod: słownikowe, statystyczne

Wszystkie metody statystyczne przyjmują parametr format. W zależności od jego wartości dane zwracane są w następujących formatach:

  1. XML
  2. JSON
  3. CSV

Część metod statystycznych przyjmuje parametr interval. Jest to interwał czasowy zwracanych statystyk. Przyjmuje on następujące wartości:

  1. minutowy - statystyki będą zwracane z najmniejszym możliwym ziarnem minutowym (np 5min)
  2. godzinowy - statystyki będą zwracane z ziarnem godzinowym

Daty zwracane przez serwis są w UTC i równiez w UTC powinny być przekazywane daty do metod statystycznych.

 

Metody słownikowe

  • GetStatisticTypes()

Pobiera wszystkie typy statystyk zwracanych przez serwis.

  • GetBillingItemTypes()

Pobiera wszystkie typy "billing itemów" - elementów systemu za które jest naliczane zużycie.


Metody statystyczne

  • GetInstanceStatistics(clientId, instanceId, dateFromUtc, dateToUtc, statisticTypesIds, interval, format)

Pobiera statystyki konkretnej instancji.

Parametry:

  • clientId - identyfikator klienta
  • instanceId - identyfikator instancji
  • dateFromUtc - początek okresu
  • dateToUtc - koniec okresu
  • statisticTypesIds - tablica identyfikatorów statystyk (dostępne wartości do pobrania za pomocą metody GetStatisticTypes )
  • interval - ziarno statystyk (1 - minutowe, 2 - godzinowe)
  • format - format zwracanych danych (1 - XML, 2 - Json, 3 - CSV)
  • GetBillingInstanceStatistics(clientId, instanceIds, dateFromUtc, dateToUtc, format)

Pobiera statystyki billingowe instancji. W wyniku zwracane są składowe kosztu instancji.

Parametry:

  • clientId - identyfikator klienta
  • instanceIds - tablica identyfikatorów instancji
  • dateFromUtc - początek okresu
  • dateToUtc - koniec okresu
  • format - format zwracanych danych (1 - XML, 2 - JSON, 3 - CSV)
  • GetBillingClientStatistics(clientId, billingItemsIds, dateFromUtc, dateToUtc, format)

Pobiera statystyki billingowe klienta. W wyniku zwracane są koszty poszczególnych elementów billingu klienta (także te niepowiązane z instancją).

Parametry:

  • clientId - identyfikator klienta
  • billingItemsIds - tablica identyfikatorów "billing itemów" (dostępne wartości do pobrania za pomocą metody GetBillingItemTypes)
  • dateFromUtc - początek okresu
  • dateToUtc - koniec okresu
  • format - format zwracanych danych (1 - XML, 2 - JSON, 3 - CSV)

 

Przykłady

Pobieranie wartości słownikowych. Opis: 

Za pomocą API możemy pobrać typy statystyk i "billing itemów", przykład użycia:

Metody nie przyjmują żadnych argumentów, dane zwracane są w formacie JSON.

POST https://api.oktawave.com/StatisticsService.svc/json/GetStatisticTypes HTTP/1.1
Authorization: Basic xxxxxxxxxxxx
Host: api.oktawave.com
Content-Type: text/json
Content-Length: 3
{}

W odpowiedzi dostajemy tablicę elementów klucz-wartość ("Key" i "Value").

HTTP/1.1 200 OK
Content-Length: 758
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
X-Powered-By: Oktawave
Date: Wed, 08 Jul 2015 13:18:45 GMT
"GetStatisticTypesResult":[
{
"Key":2,
"Value":"CPU (%)"
},
{
"Key":6,
"Value":"CPU (MHz)"
},
{
"Key":20,
"Value":"CPU (Total)"
}
]


Pobieranie statystyk instancji

Przykład zapytania o pojedynczą statystykę o id=2 (CPU (%)) z ziarnem minutowym (i1) w formacie JSON (2). Należy pamiętać, aby daty były przedstawione w postaci UNIX Timestamp (w milisekundach).

POST https://api.oktawave.com/StatisticsService.svc/json/GetInstanceStatistics HTTP/1.1
Authorization: Basic xxxxxxxxx
Host: api.oktawave.com
Content-Type: text/json
Content-Length: 169
{
"clientId": "1320",
"instanceId":"5374",
"dateFromUtc":"/Date(1422798301000)/",
"dateToUtc":"/Date(1432901963000)/",
"statisticTypesIds":["2"],
"interval":"1",
"format":"2"
}

Przykład odpowiedzi:

HTTP/1.1 200 OK
Content-Length: 758
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
X-Powered-By: Oktawave
Date: Wed, 08 Jul 2015 13:18:45 GMT
GetInstanceStatisticsResult=[
{
"VirtualMachineId":5374,
"VirtualMachineName":"test",
"StatisticTypeId":2,
"StatisticTypeName":"CPU (%)",
"SampleTimeUtc":"\/Date(1428656100000)\/",
"Details":"none",
"StatisticValue":21
},
{
"VirtualMachineId":5374,
"VirtualMachineName":"test",
"StatisticTypeId":2,
"StatisticTypeName":"CPU (%)",
"SampleTimeUtc":"\/Date(1428656400000)\/",
"Details":"none",
"StatisticValue":1
},
{
"VirtualMachineId":5374,
"VirtualMachineName":"test",
"StatisticTypeId":2,
"StatisticTypeName":"CPU (%)",
"SampleTimeUtc":"\/Date(1428656700000)\/",
"Details":"none",
"StatisticValue":0
}
]


Pobieranie statystyk billingowych instancji

Przykład zapytania o statystyki billingowe jednej instancji w formacie JSON. Należy pamiętać, aby daty były przedstawione w postaci UNIX Timestamp (w milisekundach).

POST https://api.oktawave.com/StatisticsService.svc/json/GetBillingInstanceStatistics HTTP/1.1
Authorization: Basic xxxxxxxxx
Host: api.oktawave.com
Content-Type: text/json
Content-Length: 169
{
"clientId": "1320",
"instanceIds":["5374"],
"dateFromUtc":"/Date(1422798301000)/",
"dateToUtc":"/Date(1432901963000)/",
"format":"2"
}

Przykład odpowiedzi:

HTTP/1.1 200 OK
Content-Length: 758
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
X-Powered-By: Oktawave
Date: Wed, 08 Jul 2015 13:18:45 GMT
GetBillingInstanceStatisticsResult=[
{
"VirtualMachineId":5374,
"VirtualMachineName":"test",
"BillingItemId":1,
"BillingItemName":"Instance",
"ClientId":1320,
"SampleTimeUtc":"\/Date(1428663600000)\/",
"ClientHddId":null,
"ServiceId":null,
"ServiceName":"",
"LicenseId":null,
"LicenseName":"",
"ClientCurrencyId":227,
"ClientCurrencyName":"PLN",
"ValueClientCurrency":0.0599,
"ValueEuro":0.01198
},
{
"VirtualMachineId":5374,
"VirtualMachineName":"test",
"BillingItemId":1,
"BillingItemName":"Instance",
"ClientId":1320,
"SampleTimeUtc":"\/Date(1428667200000)\/",
"ClientHddId":null,
"ServiceId":null,
"ServiceName":"",
"LicenseId":null,
"LicenseName":"",
"ClientCurrencyId":227,
"ClientCurrencyName":"PLN",
"ValueClientCurrency":0.0599,
"ValueEuro":0.01198
}
]


Pobieranie statystyk billingowych klienta

Przykład zapytania o statystyki billingowe klienta (w tym przypadku tylko o Load Balancer id = 8) w formacie JSON. Należy pamiętać, aby daty były przedstawione w postaci UNIX Timestamp (w milisekundach).

POST https://api.oktawave.com/StatisticsService.svc/json/GetBillingClientStatistics HTTP/1.1
Authorization: Basic xxxxxxxxx
Host: api.oktawave.com
Content-Type: text/json
Content-Length: 169
{
"clientId": "1320",
"billingItemsIds":["8"]
"dateFromUtc":"/Date(1422798301000)/",
"dateToUtc":"/Date(1432901963000)/",
"format":"2"
}

Przykład odpowiedzi:

HTTP/1.1 200 OK
Content-Length: 758
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
X-Powered-By: Oktawave
Date: Wed, 08 Jul 2015 13:18:45 GMT
GetBillingClientStatisticsResult=[
{
"VirtualMachineId":-1,
"VirtualMachineName":null,
"BillingItemId":8,
"BillingItemName":"Load Balancer [szt]",
"ClientId":1320,
"SampleTimeUtc":"\/Date(1432576800000)\/",
"ClientHddId":null,
"ServiceId":null,
"ServiceName":"",
"LicenseId":null,
"LicenseName":"",
"ClientCurrencyId":227,
"ClientCurrencyName":"PLN",
"ValueClientCurrency":0.07,
"ValueEuro":0.014
},
{
"VirtualMachineId":-1,
"VirtualMachineName":null,
"BillingItemId":8,
"BillingItemName":
"Load Balancer [szt]",
"ClientId":1320,
"SampleTimeUtc":"\/Date(1432580400000)\/",
"ClientHddId":null,
"ServiceId":null,
"ServiceName":"",
"LicenseId":null,
"LicenseName":"",
"ClientCurrencyId":227,
"ClientCurrencyName":"PLN",
"ValueClientCurrency":0.07,
"ValueEuro":0.014
}
]

(1 vote(s))
This article was helpful
This article was not helpful

Comments (0)
Post a new comment
 
 
Full Name:
Email:
Comments:
CAPTCHA Verification 
 
Please enter the text you see in the image into the textbox below. This is required to prevent automated registrations and form submissions.