Allocation Rules
Allocation Process
Cost is allocated during the cost processing. Cost line items are filtered by allocation rules in order of priority and are associated with a context path. Once allocated the line item is not considered for any other context.
Priority
Allocation rules are evaluated starting with the lowest priority first and then to the highest priority. A blank priority means that it has the highest priority and will be evaluated last.
Creating a Hierarchy/Rule
The name of the rule will be seen in Yotascale’s hierarchy. A rule and priority can be blank.
SQL
The rules are like where clause in an SQL. A single expression can have multiple clauses joined by AND & OR operators along with parentheses for precedence.
Structure of a Rule
Following keys/attributes are supported on the left-hand-side of the operator
Any of the 30 Yotascale tags (Team, Name, User, Cost Center, Project, Environment, Owner, Pod, EMR job Flow ID, EMR Role, CreatedBy, application, custom_1, etc.) NOTE: These tag categories can be renamed so verify the tag before using it.
region
productname (Amazon Elastic Compute Cloud, Amazon Simple Storage Service, etc.)
linkedaccountid
database_engine
operating_system
ys_type (Cost, Taxes, RIFee, Discounts, Annual Fee, Support)
ys_usagetypegroup (Others, Network, Access, Instance, Storage, Load Balancer, Container Runtime, MultiInstance)
reservedinstance (Y, N)
namespace
ys_cluster_type (Kubernetes, ECS, EKS)
clusterUUID (Cluster Name)
lower()
lower(regexp_replace())
Operators
Following operators are supported in the rule expression
=
!=
like
is not null
in
not in
Examples
`Team` = 'Finance'
`Team` In ('Developer Services', 'Developer-Services')
`Team` = 'Developer Services' OR `Team` = 'Developer-Services'
(`AWS Account` = ('999999999999') ) OR (`AWS Account` = ('999999999999') ) OR (`AWS Account` = ('999999999999') ) OR (`AWS Account` = ('999999999999') ) OR (`AWS Account` = ('999999999999') )
`Team` In ('Data', 'Data-Infra', 'data-infra', 'Data-infra', 'data-infra', 'DE', 'DI', 'di', 'DSA', 'dsa', 'DSA Unknown') OR `Team` like '%Foo%' OR `Team` like 'Analytics%'
`Operating Hours` = 'DEVOPS' AND `Environment` In ('DEV', 'Dev', 'dev', 'STAGING', 'Staging', 'staging', 'stg', 'TEST')
`AWS Service` = ('AWS Lambda') AND `Environment` In ('DEV', 'Dev', 'dev', 'STAGING', 'Staging', 'staging', 'stg', 'TEST')
application` LIKE 'Discovery%'
Cost Processing
Once a new rule/hierachy is implemented, notify Support to rerun Cost Processing in order for the hierarchy to get cost data.
Copyright 2023 Yotascale, Inc. All Rights Reserved. Yotascale and the Yotascale logo are trademarks of Yotascale, Inc.