Virtual Tagging
You can create virtual tags to consistently tag costs across providers in Vantage. This feature can help to increase tagging coverage across your cloud infrastructure. Create cost allocation tag keys with a set of corresponding values and filters directly in the Vantage without needing to involve your engineering team in making infrastructure changes. All provider integrations in Vantage are supported, including providers that don't natively support tags.
Virtual tags are available for filtering and aggregating on all Cost Reports and cost allocation segments. They can also be used in filter criteria on saved filters. There is no limit to the number of tag keys or values you define.
To get started with virtual tagging, you can also view a video demo on Vantage University 🎓.
Virtual Tags vs. Saved Filters vs. Cost Allocation Segments
Virtual tags can be considered foundational to the rest of the data within Vantage. They should remain fairly static, and changes should be considered delicate. These changes will flow across all data and apply to all workspaces. The most common tag keys will be items like team, cost center, and environment.
Segments can then be used to create different hierarchical views for tagged data. This feature is useful for breaking down the data by different perspectives, such as by cost center or by OPEX/CapEX.
Saved filters can then be used in a more ad-hoc fashion to add lenses on top of base data. For instance, you could create a saved filter just for North America that standardizes a set of regions across providers and can be used by teams on their reports or dashboards without having to know the set of filters needed to create the list of regions. When new regions come online, it’s easy to modify the saved filter to include this region.
If you want to transition any of your cost allocation segments to virtual tags, contact support@vantage.sh.
Custom Value Tags
With custom value tags, you can create new cross-provider cost allocation tags to help better your tagging strategy. For example, you may have a series of resource tags, by product, across each of your providers. You can create custom tags in Vantage to combine those costs into one unique product tag for all resources in that product group.
See the example section below for details.
Cost-Based and Business Metrics-Based Allocation Tags
The cost-based and business metrics-based allocation tag types allow for dynamic cost allocation, which is the process of allocating costs based on another existing cost or metric. See the below video for an introduction to dynamic cost allocation.
Cost-Based Allocation Tags
With cost-based allocation tags, you can create a dynamically allocated cost structure. Select a set of input costs (e.g., all AWS costs), an existing cost tag to use for allocation (e.g., a teams cost tag), and an output cost (e.g, a static cost, like AWS Support) that you want to be allocated the same way as your input cost.
See the example section below for details.
Business Metrics-Based Allocation Tags
With business metrics-based allocation tags, you select an existing business metric (e.g., CPU use per product) and indicate your output cost (e.g., all GCP Compute costs) so that the allocation of the output cost mimics the percentage allocation of the existing business metric.
See the example section below for details.
Create Virtual Tags
This feature requires Owner permissions in Vantage. See the Role-Based Access Control documentation for details. Virtual tags apply to all workspaces.
From the top navigation, click Settings.
From the side navigation, under General Settings, click Virtual Tags.
All existing virtual tags are displayed alphabetically. You can edit and delete any existing tags from this screen. To add a new virtual tag, click Create a Virtual Tag.
Enter a title for the Tag Key.
For Billing Period Backfill, select a billing period (e.g., Apr 2024) for which the tag should be backfilled.
Enable the Can Override toggle if you want the virtual tag to override an existing service cost value. For example, if you create a virtual tag that conflicts with an existing provider tag, this option will override the existing provider tag key in Vantage reports.
In the Values section, click +Add. Select whether you want to create a Custom Value, Business Metric, or Cost Based value. Click through the tabs below for instructions on each value type.
noteYou cannot use an existing Virtual Tag within the Output Costs Filter for any type of new Virtual Tag. You can, however, select an existing provider tag (e.g., one that comes from AWS).
- Add Custom Value
- Add Business Metric Value
- Add Cost Based Value
- Click Assign Custom Value.
- Enter a Tag Value title. Titles can contain only letters, numbers, and the following characters:
\_ - & + , . : / \
. You cannot use saved filters to define a virtual tag value's filters. - Specify the tag value's filter criteria (i.e., Output Cost Filters). These filters function just like filters on Cost Reports and cost allocation segments. For information on how to create detailed filters, see the Cost Reports documentation.
- Click Connect a Business Metric.
- Select an existing business metric.
- Select the Output Costs Filter that will be split among your tag values based on your business metric. These filters function just like filters on Cost Reports and cost allocation segments. For information on how to create detailed filters, see the Cost Reports documentation.
- Select Cost Based.
- Select an Input Costs Filter to specify which category of input costs to include in the allocation. These filters function just like filters on Cost Reports and cost allocation segments. For information on how to create detailed filters, see the Cost Reports documentation.
Tip: For most use cases, you should set a filter for Charge Type = Usage on the input filter to ensure you are matching on only usage-related costs and ignoring costs related to items like credits, taxes, fees, etc.
- Select an existing cost Tag Key. This value can be an existing tag you have in one of your cost providers, like AWS.
- Select the Output Costs Filter to indicate the costs that will be split among your tag values based on your input cost filter.
At the top, click Save.
Processing tag changes usually takes under an hour. At the top of the Virtual Tags screen, the processing status is displayed. Processing times vary based on the number of tags and volume of data you have imported into Vantage.
Virtual Tag Order
Tag values are arranged in priority order on the Virtual Tags screen. You can move tag values up and down in the UI to reorder them, as demonstrated in the visual example below.
When cost data is ingested into Vantage, the first value that matches the corresponding filters will be applied to that line item. In cases where filters overlap, the order of tag values within each key determines the value that is applied.
Filter and Group by Virtual Tags
You can filter by virtual tags in Cost Reports, cost allocation segments, and when creating saved filters. Virtual tags are visible along with your existing provider tags. Use the Tag (Label in GCP) filter and grouping option.
Delete a Virtual Tag
To delete a virtual tag, navigate to the Virtual Tags page. All existing tag keys are displayed. Click the trashcan icon next to a tag key. Your data will be re-tagged, excluding the deleted virtual tag, going back to the deleted tag’s backfill bill period. Newly ingested data will no longer be tagged with the deleted tag.
Virtual Tagging Examples
The following examples demonstrate how to use virtual tagging in a multi-provider organization.
Custom Value Examples
Example 1: Cross-Provider Tagging
You want to create a tag mapping for each of your teams that maps corresponding teams with certain services and provider accounts.
Step 1: Create a New Tag
You create a tag key called Teams
.
Step 2: Add Tag Values and Filters
You add the corresponding set of virtual tag values and filters:
- The
data
team tag value corresponds with a filter for all costs for GCP BigQuery and Amazon Redshift. - The
mobile
team tag value corresponds with a filter for its related GCP projects and AWS accounts. - You continue this pattern and create similar values with corresponding filters for your other teams.
Within Cost Reports, you can easily filter and group by these tag options to easily see costs for an individual team. In the below visual example, the Cost Report is grouped by the team tag, and the mobile and data values are displayed along with the other team tag values you created.
Example 2: Consolidate Existing Tags
You have a tagging practice established at your organization, but teams often create tags with spelling variations, tags with typos, or they create duplicate tags. For example, the data
team has resources tagged with data
, Data
, and data-prod
. This is an issue across many of your teams. You want to consolidate all these tags, across providers, into one data
tag.
Step 1: Create a New Tag
You create a tag key called Teams
to override existing tags.
Step 2: Add Tag Values and Filters
You add the corresponding set of virtual tag values and filters. In this example, all permutations of the data
team tag are combined into one virtual tag.
Within Cost Reports, you can easily filter by this tag to see all costs related to the data
team. This saves you the work of needing to always filter for all permutations of this tag. Now, you need to filter by only one tag.
Cost-Based Allocation Example
In your organization, teams share resources, such as RDS databases or EC2 instances, and each team consumes different percentages of these resources each month. Your organization is also charged a static support fee each month for AWS. As shown in the diagram below, you want to allocate a portion of the support fee to each team based on their proportional use of AWS resources. So in the below example, since the Infra team is responsible for 50% of all AWS costs, they should also be responsible for 50% of the support fee. You can create a cost-based allocation virtual tag for allocating portions of the support fee to each respective team.
Prerequisites
You have an existing provider tag in AWS that identifies resources for your teams. This tag will be used in step 2.
Step 1: Create a New Cost-Based Allocation Tag
- Navigate to Settings > Virtual Tags.
- Create a new virtual tag.
- Select the Cost-Based option for the tag value.
Step 2: Select an Input Cost Filter
For your input cost, select All AWS Costs. Set an additional filter for the Usage charge type to filter on only usage-related costs. This filter will ignore costs related to items like credits, taxes, fees, etc.
Step 3: Select a Tag Key
You select your existing teams tag key you have in AWS that will be used for allocating costs.
Step 4: Select an Output Cost Filter
In this example, since your infrastructure team is responsible for 50% of all AWS costs, the mobile team for 20%, and the data team for 30%, you can mimic this allocation across another static cost, or your output cost. Select the filters for the AWS support fee.
Once the tag is created, create a new Cost Report and add the following criteria:
- Create a filter for AWS Support costs.
- Add grouping criteria to group by your new cost-based dynamic allocation tag.
The resulting report shows how much of the support fee each team is allocated.
Business Metrics-Based Allocation Example
You are working with your infrastructure team and want to ensure that the proportional cost of CPU time on a shared resource is allocated to the distinct cost centers that are consuming the CPU. In the below example, you want each team’s portion of CPU usage billed as a corresponding percentage of the overall Namespace CPU cost. So, if Team A uses 30% of the resource’s CPU, then they should be billed a proportional percentage of the total Namespace’s costs.
Prerequisite
To determine the cost of CPU time to allocate to each respective team, you first create a labeled business metric that includes the CPU time labeled by team. Vantage then calculates the respective percentage of CPU time for each team. The labeled business metric has the following format.
date,amount,label
2024-01-09,825,teama
2024-01-09,600,teamb
2024-01-10,500,teama
2024-01-10,200,teamb
2024-01-11,723,teama
2024-01-11,456,teamb
Step 1: Create a New Business Metrics-Based Allocation Tag
You create a new business metrics-based tag:
- Navigate to Settings > Virtual Tags.
- Create a new virtual tag.
- Select the Business Metric option for the tag value.
Step 2: Select the Labeled Business Metric
Search for and select the labeled business metric you just created to use for allocation.
Step 3: Select an Output Cost Filter
Select the Vantage costs that will be split based on the percentages calculated in your business metric. In this case, you select a filter to show costs for the specific Namespace you want to be allocated.
Once the tag is created, create a new Cost Report and add the following criteria:
- Create a filter for the specific Namespace.
- Add grouping criteria to group by your new business metrics-based dynamic allocation tag.
The resulting report shows how much of the Namespace costs each team is allocated.
Tagging Untaggable Resources in AWS Example
While you can apply cost and metadata tags in AWS to many resources, there are many other resources that are untaggable in AWS. Therefore, it is hard, if not almost impossible, to achieve 100% allocation in AWS alone. One quick way to first get an inventory of all untagged resources in Vantage—regardless of if they are untaggable—is to create a Cost Report with the following filters:
- Provider is AWS
- Where Not Tagged with Any Key
Then, add grouping criteria for Service and Category to get a view of the types of resources that are currently untagged. If these resources are taggable in AWS, you can add cost allocation tags there and see those tags represented in Vantage when you filter or group by specific tag.
See the AWS documentation for more information on what you can tag directly in AWS.
Many services and resource categories, however, cannot be tagged in AWS. You can use Virtual Tags to create tags in Vantage for these untaggable resources. In the table below, the Vantage Resource Filters column represents the filters you can set as the Output Cost Filters in the Virtual Tag configuration.
For example, if you want to tag S3 Data Transfer for specific resources, you could use the following filter criteria.
AWS Resource | Description | Vantage Resource Filters |
---|---|---|
Elastic IPs | According to AWS, "You can tag an Elastic IP address that's allocated for use in a VPC, however, cost allocation tags are not supported." | Provider: AWS Subcategory: Amazon Virtual Private Cloud contains inuse |
CloudWatch Metrics | CloudWatch Metrics involve performance data from AWS services, which are not taggable and are used for monitoring and alerting. | Provider: AWS Category: AmazonCloudWatch is Metric Further filter by resource ID |
S3 Data Transfer | Data transferred in and out of S3 buckets, which is tracked but not taggable. | Provider: AWS Category: Amazon Simple Storage Service is Data Transfer Further filter by resource ID |
QuickSight resources | Resources within Amazon QuickSight, such as dashboards and analyses, which do not support tagging. | Provider: AWS Service: Amazon Quicksight Optional detailed filters for Category (e.g., Business Analytics) or individual resource ID |
CloudSearch resources | Amazon CloudSearch domains and their configurations, which are untaggable. | Provider: AWS Service: Amazon CloudSearch Optional detailed filters for Category (e.g., Data Transfer, Search Instance) or individual resource ID |
EBS Snapshot Copy | Amazon EBS Snapshots that are copied between regions for Disaster Recovery or restore purposes | Provider: AWS Service: Amazon Elastic Block Storage (EBS) Category: Storage Snapshot Further filter for resource ID |