您可以在项目收到轨迹数据之前手动创建 _Trace 可观测性存储桶,以自定义其存储位置和客户管理的加密密钥 (CMEK) 设置。如果您的 Google Cloud 项目在创建此存储桶之前就已提取跟踪记录数据,Google Cloud Observability 会使用项目的可观测性存储桶默认设置自动预配该存储桶。
如需了解 Google Cloud Observability 如何存储数据,请参阅存储概览。
与组织政策的互动
创建可观测性存储桶的请求会验证命令参数是否符合组织政策。例如,如果组织政策限制了资源位置,那么如果您指定了受限位置,则创建存储桶会失败。
与可观测性存储分区的默认设置互动
当 Google Cloud Observability 因数据提取而自动创建可观测性存储桶时,它会使用适用于该存储桶父资源的默认可观测性存储桶设置。这些默认设置可能是在父级或父级的层次结构祖先中定义的,它们指定了以下内容:
- 存储位置。
- 用于存储数据的 Cloud KMS 密钥。
创建可观测性存储桶时,必须指定位置。除非您在创建请求中明确指定其他密钥,否则 Google Cloud Observability 会应用默认设置中定义的 Cloud KMS 密钥。
如果适用的默认设置指定了 Cloud KMS 密钥,则无法创建采用 Google 默认加密的存储桶。如需使用 Google 默认加密,请确保您的默认设置中未配置任何 Cloud KMS 密钥。
如需了解观测性存储分区的默认设置,请参阅为观测性存储分区设置默认值。
限制
需要遵循以下限制:
- 您必须指定支持的地理位置。
- BUCKET_ID 必须是
_Trace。 - 显示名称不得超过 100 个编码字节。
- 说明不得超过 1,000 个编码字节。
- 此类数据会存储 30 天。您必须省略保留期限或将其设置为
30。 - 如果您提供 Cloud KMS 密钥,则该密钥的位置必须与可观测性存储桶的父位置完全一致。
- 您只能在 Google Cloud 项目中创建可观测性存储分区。
- 一个 Google Cloud 项目最多只能有一个名为
_Trace的可观测性存储桶。
准备工作
配置项目和 IAM 角色,然后选择您计划使用的界面。
配置项目和角色
- 登录您的 Google Cloud 账号。如果您是 Google Cloud新手,请 创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Observability API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Observability API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
如需获得创建可观测性存储分区所需的权限,请让您的管理员为您授予项目的 Observability Editor (
roles/observability.editor) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
配置接口
gcloud
在 Google Cloud 控制台中,激活 Cloud Shell。
Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。
安装 Google Cloud CLI。
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
配置 Cloud KMS 密钥
可选。如果您计划创建可观测性存储桶并指定 Cloud KMS 密钥,请执行以下操作:
-
启用 Cloud Key Management Service API。
启用 API 所需的角色
如需启用 API,您需要拥有
serviceusage.services.enable权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 获得了此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。 -
可观测性存储桶的位置必须与密钥的位置一致。
将 PROJECT_ID 替换为您的项目 ID,然后运行以下命令:
gcloud beta observability settings describe \ --location=global --project=PROJECT_ID上述命令用于检查您是否已配置默认存储位置。如果 Google Cloud Observability 服务账号不存在,该命令还会创建该账号。该命令的响应会列出服务账号的 ID。
将 Cloud KMS CryptoKey Encrypter/Decrypter 角色授予 Google Cloud Observability 服务账号。
gcloud kms keys add-iam-policy-binding \ --project=KMS_PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-observability.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter \ --location=KMS_KEY_LOCATION \ --keyring=KMS_KEY_RING \ KMS_KEY_NAME在运行上述命令之前,请先进行以下替换:
- KMS_PROJECT_ID:运行 Cloud KMS 的 Google Cloud 项目的唯一字母数字标识符,由 Google Cloud 项目名称和随机分配的编号组成。如需了解如何获取此标识符,请参阅标识项目。
- service-PROJECT_NUMBER:上一步的响应中列出的可观测性服务账号的名称。
- KMS_KEY_LOCATION:Cloud KMS 密钥的区域。
- KMS_KEY_RING:Cloud KMS 密钥环的名称。
- KMS_KEY_NAME:Cloud KMS 密钥的名称。其格式如下所示:
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY。
创建可观测性存储桶
REST
如需创建可观测性存储桶,请向 projects.locations.buckets.create 发送请求。
您必须指定 parent 参数,该参数采用以下形式:
projects/PROJECT_ID/locations/LOCATION
上述表达式中的字段具有以下含义:
- PROJECT_ID:项目的标识符。
- LOCATION:可观测性存储桶的位置。
请求正文是一个 Bucket 对象。填写以下字段:
name:将此字段设置为以下值:projects/PROJECT_ID/locations/LOCATION/buckets/_Trace可选:为
displayName和description字段提供值。可选:提供 CMEK。指定此密钥后,系统会使用此密钥加密存储的数据。
如果您未提供 CMEK,则适用于相应存储桶的父级资源的默认设置将决定加密密钥。如果默认设置指定了 Cloud KMS 密钥,则该密钥会对存储的数据进行加密。否则,将使用 Google 默认加密。
响应是一个 Operation 对象。轮询 projects.locations.operations.get 方法,直到 Operation.done 字段设置为 true。Operation 结构中的其他字段提供有关请求成功或失败的信息。
列出可观测性存储分区
您可以列出可观测性存储分区,以验证创建请求是否已成功完成。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- LOCATION:可观测性存储分区的位置。如需列出所有可观测性存储分区(无论其位置如何),请将位置设置为连字符 (
-)。 - PROJECT_ID:项目的标识符。
执行 gcloud beta observability buckets list 命令:
Linux、macOS 或 Cloud Shell
gcloud beta observability buckets list \ --location=LOCATION --project=PROJECT_ID
Windows (PowerShell)
gcloud beta observability buckets list ` --location=LOCATION --project=PROJECT_ID
Windows (cmd.exe)
gcloud beta observability buckets list ^ --location=LOCATION --project=PROJECT_ID
响应会列出每个可观测性存储分区的名称、说明和创建时间。以下是命令成功执行时的响应示例:
--- createTime: '2026-01-21T21:39:22.381083860Z' description: Bucket for storing spans from Cloud Trace. name: projects/my-project/locations/us/buckets/_Trace
REST
如需列出项目和特定位置中的可观测性存储分区,请向 projects.locations.buckets.list 端点发送请求。
您必须指定 parent 参数,该参数采用以下形式:
projects/PROJECT_ID/locations/LOCATION
上面表达式中的字段含义如下:
- PROJECT_ID:项目的标识符。
- LOCATION:可观测性存储桶的位置。
如果您将 LOCATION 设置为连字符
(-),则系统会列出项目中的所有可观测性存储分区。
响应是一组 Bucket 对象。对于每个对象,name 字段的值采用以下格式:
projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID
例如,当向 buckets.list 端点发出命令并将父参数设置为 projects/my-project/locations/us 时,响应为:
{
"buckets": [
{
"name": "projects/my-project/locations/us/buckets/_Trace",
"description": "Trace Bucket",
"createTime": "2025-01-01T15:42:30.988919645Z",
"updateTime": "2025-02-04T15:42:30.988919645Z",
"retentionDays": 30
}
]
}
您可以向其他 Observability API 端点发出命令,以获取有关 ID 为 BUCKET_ID 的存储桶的更多信息。例如,您可以列出相应存储桶中的数据集,以及每个数据集中的视图和链接。如需查看完整的 Observability API 端点列表,请参阅 Observability API 参考文档。
后续步骤
为可观测性存储分区设置默认值:为可观测性存储分区配置默认存储位置和默认的客户管理的加密密钥 (CMEK)。