为 App Engine 资源添加标签

标签是一种汇集相互关联的资源的简洁方法。您可以使用标签来更细致地了解 App Engine 服务的资源计费情况。您还可以利用嵌套过滤等功能,对资源执行更精确的搜索。

下面介绍了一些使用标签的方式:

  • 为您创建的服务类型添加标签。例如,如果您将诸如 service:defaultservice:backendservice:frontend 这样的标签添加到 App Engine 服务,则可以比较这些不同的服务如何使用传出带宽、实例小时以及其他资源

  • 按团队或费用中心添加标签,以区分不同团队所拥有的项目。这种标签可用于费用核算或预算,例如,team:marketingteam:research

  • 为服务的运行环境添加标签。例如,environment:prodenvironment:test

  • 按所有者或主要联系人添加标签(如果存在负责资源的个人)。

  • 为服务的状态添加标签。例如,state:inusestate:readyfordeletion

标签只能用于结算数据,而不能用于任何其他工具,例如 Metrics Explorer。

限制

  • 您最多可为每个资源分配 64 个标签。
  • 您只能明确为服务添加标签。版本和实例会从其父级服务继承标签。
  • App Engine 柔性环境不支持为 Datastore 模式 Firestore (Datastore) 用量使用结算标签。

添加或修改标签

如需为 App Engine 服务添加标签,请执行以下操作:

控制台

  1. 转到“App Engine 服务”页面。

    转到“服务”

  2. 选中要添加标签的服务旁边的复选框。

  3. 点击显示信息面板,然后选择标签标签页以展开标签列。

  4. 点击添加标签,为您选择的服务添加键值对。例如,如需添加标签 env:prod,请输入 env 作为,并输入 prod 作为

  5. 保存更改。

Admin API

您可以通过 Service 资源添加和设置标签。请参阅 Admin API 参考文档:

查看与您已添加标签的服务关联的结算数据

您可以使用标签为应用的结算数据添加细分粒度。例如,您可以查看特定资源(例如传出带宽)的费用(按日期和服务细分)。这有助于您深入了解每日应用费用,并优化应用的资源用量。

如需查看用于结算的标签,请将数据导出到 BigQuery,然后查询数据:

  1. 将结算数据导出到 BigQuery

    启用 BigQuery Export 功能后,可能需要过几个小时才能看到这些数据。

  2. Google Cloud 控制台中的 BigQuery 页面,选择您的项目和结算数据集。

  3. 对通过 BigQuery Export 功能创建的表运行查询。

标签作为重复字段添加到数据集内,这意味着可以为费用数据集中的一行添加多个标签。为了通过标签轻松执行查询,您可能需要根据标签字段对表执行 FLATTEN 操作。

例如,以下查询将为有标签的服务提取传出带宽的费用数据、标签键和标签值:

SELECT
  product,
  resource_type,
  start_time,
  end_time,
  labels.key,
  labels.value,
  cost
FROM (FLATTEN([YOUR_DATASET.TABLEID], labels))
WHERE
  cost > 0.0
  and labels.key is not null
  and resource_type = 'Out Bandwidth'
LIMIT 100

BigQuery 会以扁平化输出形式返回数据:

产品 resource_type start_time end_time labels_key labels_value 费用
App Engine Out Bandwidth 2017-10-07 22:00:00 2017-10-07 23:00:00 服务 默认 0.020033
App Engine Out Bandwidth 2017-10-07 13:00:00 2017-10-07 14:00:00 服务 frontend 0.016042
App Engine Out Bandwidth 2017-10-07 06:00:00 2017-10-07 07:00:00 服务 backend_task 0.013125
App Engine Out Bandwidth 2017-10-07 21:00:00 2017-10-07 22:00:00 服务 默认 0.020722
App Engine Out Bandwidth 2017-10-07 19:00:00 2017-10-07 20:00:00 服务 frontend 0.020725
App Engine Out Bandwidth 2017-10-08 04:00:00 2017-10-08 05:00:00 服务 backend_task 0.02072
App Engine Out Bandwidth 2017-10-08 02:00:00 2017-10-08 03:00:00 服务 默认 0.020723
App Engine Out Bandwidth 2017-10-07 14:00:00 2017-10-07 15:00:00 服务 frontend 0.020724
App Engine Out Bandwidth 2017-10-07 23:00:00 2017-10-08 00:00:00 服务 backend_task 0.021417

结算报告中的时间段

为确保报告中的每一天都涵盖 24 小时的时间段,您导出的结算数据仅包含截至最近美国太平洋时间零点的数据。例如,如果您在 12 月 3 日中午导出结算数据,则导出数据会包含截至 12 月 2 日晚上 11:59 的数据。

对于报告中的每一天,结算数据都归因于当天开始时存在的标签。例如,如果您在 12 月 3 日中午(美国太平洋时间)创建了一个标签,则 12 月 3 日的报告不会将数据归因于该标签,因为该标签在当天开始时不存在。从 12 月 4 日开始,数据将归因于该标签。

在中午创建并在同一 24 小时内移除的标签不会将数据归因于该标签。

在 Google Cloud 控制台中查看标签

为资源添加标签后,您可以在 Google Cloud 控制台中查看标签。

  1. 转到“App Engine 服务”页面。

    转到“服务”

  2. 对于每项服务,您都可以在 Labels 列中查看所有标签。

移除标签

如需从服务中移除标签,请执行以下操作:

  1. 转到“App Engine 服务”页面。

    转到“App Engine 服务”

  2. 选中要移除其标签的服务旁边的复选框。

  3. 点击显示信息面板,然后选择标签标签页以展开标签列。

  4. 点击要移除的所有标签旁边的 X

  5. 保存更改。