Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
This page explains how to assign labels to your Cloud Composer environments and then break down billing costs based on these labels.
About environment labels
Environment labels are key-value pairs that you can assign to your
environments. For example, if owner:engineering-team 
is a custom label, then owner 
is the key, and engineering-team 
is the value.
Each environment can have multiple labels, but the label keys for a single environment must be unique. You can assign a same key and value to several environments.
Environment labels in billing reports
Environment labels that you assign to your environments are visible in billing reports, so you can break down costs based on both keys and values from the labels.
Labels don't apply retroactively. For example, if you assign a label on May 15, billing costs for May 14 do not contain the assigned label.
Assign labels to new environments
You can assign labels when you create an environment. For more information, see Creating environments .
Assign labels to existing environments
Console
-  
Go to the Environmentspage in the Google Cloud console:
 -  
Select your environment.
 -  
Go to the Labelstab.
 -  
Click Edit, then click Add label.
 -  
Add a key-value pair for the label, then click Save.
 -  
Wait until the environment updates.
 
gcloud
When you update an environment using
the  gcloud composer 
 
command, the following arguments
specify labels for the environment:
-  
--clear-labelsremoves all labels. -  
--update-labelsupdates specified labels; creates new labels if they don't already exist. -  
--remove-labelsremoves specified labels; specified label that do not exist are ignored. 
If you use several of these arguments, they are applied in the following
order: --clear-labels 
, --update-labels 
, --remove-labels 
.
Update or create labels
 gcloud  
composer  
environments  
update  
 ENVIRONMENT_NAME 
  
 \ 
  
--location  
 LOCATION 
  
 \ 
  
--update-labels  
  LABEL_KEY 
 
 = 
 LABEL_VALUE 
 
 
Remove specified labels
 gcloud  
composer  
environments  
update  
 ENVIRONMENT_NAME 
  
 \ 
  
--location  
 LOCATION 
  
 \ 
  
--remove-labels  
 LABEL_KEY 
 
 
Remove all labels
 gcloud  
composer  
environments  
update  
 ENVIRONMENT_NAME 
  
 \ 
  
--location  
 LOCATION 
  
 \ 
  
--clear-labels 
 
Replace:
-  
ENVIRONMENT_NAMEwith the name of the environment. -  
LOCATIONwith the region where the environment is located. -  
LABEL_KEYwith the environment label key that you want to create, update, or remove. -  
LABEL_VALUEwith the environment label value. 
Example
The following example updates the owner 
label, creates the new env 
label, and removes the misc 
label:
 gcloud  
composer  
environments  
update  
example-environment  
 \ 
  
--location  
us-central1  
 \ 
  
--update-labels  
 owner 
 = 
engineering-team,env = 
production  
 \ 
  
--remove-labels  
misc 
 
API
When you update an environment, in the Environment resource, specify new labels of your environment.
Replace all labels
To replace all labels, include labels 
in the updateMask 
query parameter
and provide a replacement in the request body.
  // PATCH https://composer.googleapis.com/v1/ 
 // ?{name=projects/*/locations/*/environments/*} 
 // &updateMask.fieldPaths=labels 
 { 
  
 "labels" 
 :{ 
  
 " LABEL_KEY 
" 
 : 
  
 " LABEL_VALUE 
" 
  
 } 
 } 
 
 
Replace:
-  
LABEL_KEYwith a key of the environment label. -  
LABEL_VALUEwith a new value for the environment label. 
Example:
  // PATCH https://composer.googleapis.com/v1/ 
 // ?{name=projects/*/locations/*/environments/*} 
 // &updateMask.fieldPaths=labels 
 { 
  
 "labels" 
 : 
  
 { 
  
 "owner" 
 : 
  
 "engineering-team" 
 , 
  
 "env" 
 : 
  
 "production" 
  
 } 
 } 
 
 
Remove all labels
To remove all labels, include labels 
in the updateMask 
query parameter
and do not provide the replacement value.
Update individual labels
To update a label or add a new label to existing labels, include labels.LABEL_KEY 
in the updateMask 
query parameter and provide a
replacement in the request body.
  // PATCH https://composer.googleapis.com/v1/ 
 // ?{name=projects/*/locations/*/environments/*} 
 // &updateMask=labels. LABEL_KEY 
 
 { 
  
 "labels" 
 :{ 
  
 " LABEL_KEY 
" 
 : 
  
 " LABEL_VALUE 
" 
  
 } 
 } 
 
 
Replace:
-  
LABEL_KEYwith a key of the environment label. -  
LABEL_VALUEwith a new value for the environment label. 
Example:
  // PATCH https://composer.googleapis.com/v1/ 
 // ?name=projects/example-project/locations/ 
 // us-central1/environments/example-environment 
 // &updateMask=labels.owner,labels.env 
 { 
  
 "labels" 
 : 
  
 { 
  
 "owner" 
 : 
  
 "engineering-team" 
 , 
  
 "env" 
 : 
  
 "production" 
  
 } 
 } 
 
 
Remove individual labels
To remove labels, include labels.LABEL_KEY 
in the updateMask 
query
parameter and do not provide the replacement value.
Terraform
To create an environment with default parameters is a specified location,
edit the labels 
block in your Terraform configuration and run terraform apply 
.
 resource "google_composer_environment" "example" {
  name = "example-environment"
  region = "us-central1"
  labels = { LABEL_KEY 
= " LABEL_VALUE 
"
  }
} 
 
Replace:
-  
LABEL_KEYwith the environment label key that you want to create or update. To remove labels, delete their fields. -  
LABEL_VALUEwith the environment label value. 
Example:
 resource "google_composer_environment" "example" {
  name = "example-environment"
  region = "us-central1"
  labels = {
    owner = "engineering-team"
    env = "production"
  }
} 
 
View labels in reports
After the labels for your environment propagate to billing reports, you can break down billing costs based on these labels:
-  
View Cloud Billing reports for your Cloud Billing account.
 -  
On the Reportspage:
- Click Show filters.
 - In the Filtersdialog, expand the Labelssection.
 - Filter the displayed data based on keys and values of your environment labels.
 
 

