PHP Класс Scalr\Stats\CostAnalytics\Usage

С версии: 5.0 (21.03.2014)
Автор: Vitaliy Demidov ([email protected])
Наследование: use trait Scalr\Stats\CostAnalytics\Forecast
Показать файл Открыть проект

Защищенные свойства (Protected)

Свойство Тип Описание
$cadb ADODB_mysqli Cost Analytics database connection
$db ADODB_mysqli Database instance

Открытые методы

Метод Описание
__construct ( ADODB_mysqli $cadb ) Constructor
autoCostCentre ( ) : string Gets an identifier of the cost centre using fixture
autoProject ( ) : string Gets an identifier of the project using fixture
createDefaultCostCenter ( ) Creates default Cost Center and Project from the fixture
createHostedScalrAccountCostCenter ( Scalr_Account $account, Scalr_Account_User $user = null ) : Scalr\Stats\CostAnalytics\Entity\CostCentreEntity Creates default Cost Center for the Hosted Scalr new account
fetchFarmName ( mixed $farmId ) : string Fetches farm's name
findFarmsByKey ( integer $envId, string $key = null ) : ArrayCollection Finds farms by key It searches by name
fixture ( ) : array Defines default cost center and project
get ( array $criteria, DateTime $begin, DateTime $end, array | string $breakdown = null, boolean $rawResult = false ) : Scalr\DataType\AggregationCollection | array Gets the usage for specified cost centre breakdown by specified tags
getContainer ( ) : Container Gets DI container
getCostCenterMovingAverageToDate ( string $ccId, string $mode, string $date, string $startDate, string $endDate ) : array Gets cost center moving average to date
getCostCenterPeriodData ( string $ccId, string $mode, string $startDate, string $endDate ) : array Gets analytics data for the cost center
getDashboardPeriodData ( string $mode, string $startDate, string $endDate ) : array Gets cost analytics for dashboard
getDisplayHours ( integer | float $hours, integer $precision ) : string Gets formatted user-friendly hours field
getEnvironmentPeriodData ( Scalr_Environment $env, string $mode, string $startDate, string $endDate ) : array Gets cost analytics for environment scope
getFarmCostMetering ( integer $accountId, integer $farmId, string $mode = 'custom', string $startDate = null, string $endDate = null ) : array Gets farm cost metering data
getFarmData ( string $accountId, array $criteria, DateTime $begin, DateTime $end, array | string $breakdown = null, boolean $rawResult = false ) : Scalr\DataType\AggregationCollection | array Gets cost metering data
getFarmPeriodData ( integer $farmId, Scalr_Environment $environment, string $mode, string $startDate, string $endDate ) : array Gets analytics data for the specified farm and period
getFarmPointData ( integer $accountId, string $projectId = null, integer $envId = null, integer | array $farmId = null, integer $farmRoleId = null, string $mode, string $date, string $start, string $end ) : array Get period data for one point on chart
getInstanceTypeName ( string $instanceTypeId, string $envId, string $platform, string $cloudLocation ) : string Gets cloud instance type's name
getMeasure ( string $usageType ) : string Gets measure for selected usage type
getProjectFarmsTopUsageOnDate ( string | null $projectId, string $platform, string $mode, string $date, string $start, string $end, string $ccId = null ) : array Gets detailed top 5 usage by farms for specified project on date
getProjectMovingAverageToDate ( string | null $projectId, string $mode, string $date, string $startDate, string $endDate, string $ccId = null ) : array Gets project moving average to date
getProjectPeriodData ( string $projectId, string $mode, string $startDate, string $endDate, array $filter = null ) : array Gets analytics data for the specified project and period
getTopFarmsPeriodData ( integer $accountId, array $allowedEnvs, string $mode, string $startDate, string $endDate, integer $farmCount = 5 ) : array Gets period data for top farms
initDefault ( ) Initializes default cost centres and projects according to fixtures
isLead ( string $email ) : boolean Checks if user is the lead of at least one project or cost center

Приватные методы

Метод Описание
initServerProperties ( ) Initializes server's properties which are necessary for cloud cost analytics

Описание методов

__construct() публичный Метод

Constructor
public __construct ( ADODB_mysqli $cadb )
$cadb ADODB_mysqli Analytics database connection instance

autoCostCentre() публичный Метод

Gets an identifier of the cost centre using fixture
public autoCostCentre ( ) : string
Результат string Returns UUID of the cost centre

autoProject() публичный Метод

Gets an identifier of the project using fixture
public autoProject ( ) : string
Результат string Returns UUID of the project

createDefaultCostCenter() публичный Метод

Creates default Cost Center and Project from the fixture

createHostedScalrAccountCostCenter() публичный Метод

Creates default Cost Center for the Hosted Scalr new account
public createHostedScalrAccountCostCenter ( Scalr_Account $account, Scalr_Account_User $user = null ) : Scalr\Stats\CostAnalytics\Entity\CostCentreEntity
$account Scalr_Account The account object
$user Scalr_Account_User optional The account owner user
Результат Scalr\Stats\CostAnalytics\Entity\CostCentreEntity Returns a new Cost Center

fetchFarmName() публичный Метод

Fetches farm's name
public fetchFarmName ( mixed $farmId ) : string
$farmId mixed The identifier of the farm
Результат string Returns display name of the farm

findFarmsByKey() публичный Метод

Finds farms by key It searches by name
public findFarmsByKey ( integer $envId, string $key = null ) : ArrayCollection
$envId integer Current enviroment id
$key string optional Search key
Результат Scalr\Model\Collections\ArrayCollection Returns collection of the farm objects

fixture() публичный Метод

Defines default cost center and project
public fixture ( ) : array
Результат array Returns the fixture of the cost centres

get() публичный Метод

Gets the usage for specified cost centre breakdown by specified tags
public get ( array $criteria, DateTime $begin, DateTime $end, array | string $breakdown = null, boolean $rawResult = false ) : Scalr\DataType\AggregationCollection | array
$criteria array The list of the criterias ['ccId' => [], 'projectId' => []]
$begin DateTime Begin date
$end DateTime End date
$breakdown array | string optional The identifier of the tag or list looks like ['day', TagEntity::TAG_ID_PROJECT, TagEntity::TAG_ID_FARM ...] The inteval to group data [12 hours, day, week, month]
$rawResult boolean optional Whether it should return raw result
Результат Scalr\DataType\AggregationCollection | array Returns collection or array with raw result

getContainer() публичный Метод

Gets DI container
public getContainer ( ) : Container
Результат Scalr\DependencyInjection\Container

getCostCenterMovingAverageToDate() публичный Метод

Gets cost center moving average to date
public getCostCenterMovingAverageToDate ( string $ccId, string $mode, string $date, string $startDate, string $endDate ) : array
$ccId string The identifier of the Cost center
$mode string The mode
$date string The date within specified period 'Y-m-d H:00'
$startDate string The start date of the period 'Y-m-d'
$endDate string The end date of the period 'Y-m-d'
Результат array Returns cost center moving average to date

getCostCenterPeriodData() публичный Метод

Gets analytics data for the cost center
public getCostCenterPeriodData ( string $ccId, string $mode, string $startDate, string $endDate ) : array
$ccId string The identifier of the cost center (UUID)
$mode string Mode (week, month, quarter, year, custom)
$startDate string Start date in UTC (Y-m-d)
$endDate string End date in UTC (Y-m-d)
Результат array Returns analytics data for the specified cost center

getDashboardPeriodData() публичный Метод

Gets cost analytics for dashboard
public getDashboardPeriodData ( string $mode, string $startDate, string $endDate ) : array
$mode string The mode (week, month, quarter, year)
$startDate string The start date of the period in UTC ('Y-m-d')
$endDate string The end date of the period in UTC ('Y-m-d')
Результат array Returns cost analytics data for dashboard

getDisplayHours() публичный Метод

Gets formatted user-friendly hours field
public getDisplayHours ( integer | float $hours, integer $precision ) : string
$hours integer | float Usage hours
$precision integer optional Precision
Результат string

getEnvironmentPeriodData() публичный Метод

Gets cost analytics for environment scope
public getEnvironmentPeriodData ( Scalr_Environment $env, string $mode, string $startDate, string $endDate ) : array
$env Scalr_Environment Current environment
$mode string The mode (week, month, quarter, year)
$startDate string The start date of the period in UTC ('Y-m-d')
$endDate string The end date of the period in UTC ('Y-m-d')
Результат array Returns cost analytics data for environment scope

getFarmCostMetering() публичный Метод

Gets farm cost metering data
public getFarmCostMetering ( integer $accountId, integer $farmId, string $mode = 'custom', string $startDate = null, string $endDate = null ) : array
$accountId integer Client identifier
$farmId integer Id of the farm
$mode string optional Mode (week, month, quarter, year, custom)
$startDate string optional Begin date
$endDate string optional End date
Результат array Return farm cost metering data

getFarmData() публичный Метод

Gets cost metering data
public getFarmData ( string $accountId, array $criteria, DateTime $begin, DateTime $end, array | string $breakdown = null, boolean $rawResult = false ) : Scalr\DataType\AggregationCollection | array
$accountId string Client identifier
$criteria array Filter array. ['fieldName' => 'fieldValue'] or ['fieldName' => ['value1', 'value2']]
$begin DateTime Begin date
$end DateTime End date
$breakdown array | string optional The identifier of the tag or list looks like ['day', TagEntity::TAG_ID_FARM ...] The interval to group data [12 hours, day, week, month]
$rawResult boolean optional Whether it should return raw result
Результат Scalr\DataType\AggregationCollection | array Returns collection or array with raw result

getFarmPeriodData() публичный Метод

Gets analytics data for the specified farm and period
public getFarmPeriodData ( integer $farmId, Scalr_Environment $environment, string $mode, string $startDate, string $endDate ) : array
$farmId integer The identifier of the Farm
$environment Scalr_Environment Current environment
$mode string Mode (week, month, quarter, year, custom)
$startDate string Start date in UTC (Y-m-d)
$endDate string End date in UTC (Y-m-d)
Результат array Returns analytics data for the specified farm and period

getFarmPointData() публичный Метод

Get period data for one point on chart
public getFarmPointData ( integer $accountId, string $projectId = null, integer $envId = null, integer | array $farmId = null, integer $farmRoleId = null, string $mode, string $date, string $start, string $end ) : array
$accountId integer Identifier of the Account
$projectId string optional Identifier of the Project
$envId integer optional Identifier of the Environment
$farmId integer | array optional Identifier of the Farm, or the list of the farms which should be excluded
$farmRoleId integer optional Identifier of the Farm Role Id
$mode string The mode (chart)
$date string The UTC date within period ('Y-m-d H:00')
$start string The start date of the period in UTC ('Y-m-d')
$end string The end date of the period in UTC ('Y-m-d')
Результат array

getInstanceTypeName() публичный Метод

Gets cloud instance type's name
public getInstanceTypeName ( string $instanceTypeId, string $envId, string $platform, string $cloudLocation ) : string
$instanceTypeId string Instance type identifier
$envId string Environment identifier
$platform string Platform
$cloudLocation string Cloud location
Результат string

getMeasure() публичный Метод

Gets measure for selected usage type
public getMeasure ( string $usageType ) : string
$usageType string Usage type name
Результат string

getProjectFarmsTopUsageOnDate() публичный Метод

Gets detailed top 5 usage by farms for specified project on date
public getProjectFarmsTopUsageOnDate ( string | null $projectId, string $platform, string $mode, string $date, string $start, string $end, string $ccId = null ) : array
$projectId string | null The identifier of the project
$platform string The cloud platform
$mode string The mode
$date string The UTC date within period ('Y-m-d H:00')
$start string The start date of the period in UTC ('Y-m-d')
$end string The end date of the period in UTC ('Y-m-d')
$ccId string optional The identifier of the cost center (It is used only when project is null)
Результат array Returns detailed top 5 usage by farms for specified project on date

getProjectMovingAverageToDate() публичный Метод

Gets project moving average to date
public getProjectMovingAverageToDate ( string | null $projectId, string $mode, string $date, string $startDate, string $endDate, string $ccId = null ) : array
$projectId string | null The identifier of the project
$mode string The mode
$date string The UTC date within period ('Y-m-d H:00')
$startDate string The start date of the period in UTC ('Y-m-d')
$endDate string The end date of the period in UTC ('Y-m-d')
$ccId string optional The identifier of the cost center (It is used only when project is null)
Результат array Returns project moving average to date

getProjectPeriodData() публичный Метод

Gets analytics data for the specified project and period
public getProjectPeriodData ( string $projectId, string $mode, string $startDate, string $endDate, array $filter = null ) : array
$projectId string The identifier of the Project (UUID)
$mode string Mode (week, month, quarter, year, custom)
$startDate string Start date in UTC (Y-m-d)
$endDate string End date in UTC (Y-m-d)
$filter array Filter array [envId => value, accountId => value]
Результат array Returns analytics data for the specified project and period

getTopFarmsPeriodData() публичный Метод

Gets period data for top farms
public getTopFarmsPeriodData ( integer $accountId, array $allowedEnvs, string $mode, string $startDate, string $endDate, integer $farmCount = 5 ) : array
$accountId integer The current client id
$allowedEnvs array Array of allowed environments' ids for current user
$mode string The mode (week, month, quarter, year)
$startDate string The start date of the period in UTC ('Y-m-d')
$endDate string The end date of the period in UTC ('Y-m-d')
$farmCount integer Top farms count
Результат array Returns cost analytics data for environment scope

initDefault() публичный Метод

Initializes default cost centres and projects according to fixtures
public initDefault ( )

isLead() публичный Метод

Checks if user is the lead of at least one project or cost center
public isLead ( string $email ) : boolean
$email string User's email
Результат boolean Returns true if user is project or cc lead

Описание свойств

$cadb защищенное свойство

Cost Analytics database connection
protected ADODB_mysqli $cadb
Результат ADODB_mysqli

$db защищенное свойство

Database instance
protected ADODB_mysqli $db
Результат ADODB_mysqli