Package google.devtools.cloudprofiler.v2

索引

ExportService

该服务允许现有的 Cloud Profiler 客户从 Google Cloud 导出其性能分析器数据。

ListProfiles

rpc ListProfiles(ListProfilesRequest) returns (ListProfilesResponse)

列出到目前为止已收集且调用方有权查看的配置文件。

授权范围

需要以下 OAuth 范围之一:

  • https://www.googleapis.com/auth/monitoring
  • https://www.googleapis.com/auth/monitoring.write
  • https://www.googleapis.com/auth/cloud-platform

如需了解详情,请参阅身份验证概览

ProfilerService

管理云端运行的分析代理或离线性能分析数据提供商所提供的持续性能分析数据的收集。

此服务中列出的 API 仅适用于我们的性能分析器代理。

CreateOfflineProfile

rpc CreateOfflineProfile(CreateOfflineProfileRequest) returns (Profile)

Create 离线 Profile 会在离线模式下创建新的个人资料资源。客户端提供要创建的配置文件以及配置文件字节,服务器进行记录。

不建议直接使用此 API,请改用受支持的性能分析器代理收集配置文件。

授权范围

需要以下 OAuth 范围之一:

  • https://www.googleapis.com/auth/monitoring
  • https://www.googleapis.com/auth/monitoring.write
  • https://www.googleapis.com/auth/cloud-platform

如需了解详情,请参阅身份验证概览

CreateProfile

rpc CreateProfile(CreateProfileRequest) returns (Profile)

CreateProfile 会在在线模式下创建新的个人资料资源。

不建议直接使用此 API,请改用受支持的性能分析器代理收集配置文件。

服务器确保以固定速率为每个部署创建新配置文件,因此创建请求可能会挂起一段时间,直到下一个配置文件会话可用为止。

如果在大约 1 分钟内无法创建,请求可能会失败并显示 ABORTED 错误,响应会指明客户端在尝试再次创建配置文件之前应执行的退避时长。退避时长会在有关响应状态的 google.rpc.RetryInfo 扩展项中返回。对于 gRPC 客户端,该扩展程序将以二进制序列化 proto 的形式返回,位于名为“google.rpc.retryinfo-bin”的尾随元数据项中。

授权范围

需要以下 OAuth 范围之一:

  • https://www.googleapis.com/auth/monitoring
  • https://www.googleapis.com/auth/monitoring.write
  • https://www.googleapis.com/auth/cloud-platform

如需了解详情,请参阅身份验证概览

UpdateProfile

rpc UpdateProfile(UpdateProfileRequest) returns (Profile)

UpdateProfile 会更新在线模式下创建的配置文件资源的配置文件字节和标签。目前不支持更新离线模式下创建的配置文件的字节:在创建配置文件时必须提供配置文件内容。

不建议直接使用此 API,请改用受支持的性能分析器代理收集配置文件。

授权范围

需要以下 OAuth 范围之一:

  • https://www.googleapis.com/auth/monitoring
  • https://www.googleapis.com/auth/monitoring.write
  • https://www.googleapis.com/auth/cloud-platform

如需了解详情,请参阅身份验证概览

CreateOfflineProfileRequest

Create 离线 ProfileRequest 描述个人资料资源离线创建请求。

字段
parent

string

要在其中创建配置文件的父项目。

必须对指定的资源 parent 具有以下 IAM 权限才能进行授权:

  • cloudprofiler.profiles.create
profile

Profile

要创建的个人资料的内容。

CreateProfileRequest

CreateProfileRequest 会描述个人资料资源在线创建请求。必须填充部署字段。profile_type 用于指定代理支持的配置文件类型列表。在需要收集其中一种类型的个人资料之前,创建调用会挂起。

字段
parent

string

要在其中创建配置文件的父项目。

必须对指定的资源 parent 具有以下 IAM 权限才能进行授权:

  • cloudprofiler.profiles.create
deployment

Deployment

部署详情。

必须对指定的资源 deployment 具有以下 IAM 权限才能进行授权:

  • cloudprofiler.profiles.create
profile_type[]

ProfileType

代理能够提供的一个或多个配置文件类型。

部署

Deployment 包含部署标识信息。

字段
project_id

string

项目 ID 是指云项目的 ID。验证正则表达式:^[a-z][-a-z0-9:.]{4,61}[a-z0-9]$

target

string

Target 是用于对相关部署进行分组的服务名称:* App Engine 柔性环境 / 标准的服务名称。* GKE 的集群和容器名称。* 用于直接 Compute Engine 分析(例如 Java)的用户指定字符串。* Dataflow 的作业名称。验证正则表达式:^[a-z0-9]([-a-z0-9_.]{0,253}[a-z0-9])?$

labels

map<string, string>

标签用于标识用户范围和同一目标中的部署。标签名称的验证正则表达式:^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$。单个标签的值必须 <= 512 字节,所有标签名称和值的总大小必须 <= 1024 字节。

名为“language”的标签可用于记录所分析部署的编程语言。该值的标准选项包括“java”“go”“python”“ruby”“nodejs”“php”“dotnet”。

对于在 Google Cloud Platform 上运行的部署,应显示“可用区”或“区域”标签,用于描述部署位置。可用区示例为“us-central1-a”,区域示例为“us-central1”或“us-central”。

ListProfilesRequest

ListProfilesRequest 包含用于列出用户有权查看的项目中部署的配置文件的请求参数。

字段
parent

string

必需。父级,拥有此配置文件集合。格式:projects/{user_project_id}

必须对指定的资源 parent 具有以下 IAM 权限才能进行授权:

  • cloudprofiler.profiles.list
page_size

int32

可选。需要返回的最大项数。 默认 page_size 为 1000。上限为 1,000。

page_token

string

可选。用于继续分页并获取特定网页中的个人资料的令牌。进行分页时,提供给 ListProfiles 的所有其他参数必须与提供页面令牌的调用匹配。

ListProfilesResponse

ListProfileResponse 包含用户有权查看的项目中部署的收集配置文件列表。

字段
profiles[]

Profile

提取的配置文件列表。

next_page_token

string

用于接收下一页结果的令牌。如果没有更多要提取的个人资料,则此字段可能为空。

skipped_profiles

int32

当前页面中因无法成功提取而跳过的配置文件数。此值通常应为零。非零值可能表示暂时性失败,在这种情况下,如果数字对于您的用例来说过高,可能会重新尝试调用。

配置文件

个人资料资源。

字段
name

string

仅限输出。此配置文件不透明且由服务器分配的唯一 ID。

profile_type

ProfileType

个人资料的类型。对于离线模式,必须在创建配置文件时指定。对于在线模式,由服务器分配并返回。

deployment

Deployment

此配置文件对应的部署。

duration

Duration

分析会话的时长。输入(适用于离线模式)或输出(适用于在线模式)。该字段表示请求的分析时长。它可能与有效分析时长(记录在配置文件数据中)略有不同,以防无法立即停止分析(例如,停止分析的操作是异步处理的)。

profile_bytes

bytes

仅限输入。配置文件字节,作为 gzip 压缩的序列化 proto,格式为 https://github.com/google/pprof/blob/master/proto/profile.proto

labels

map<string, string>

仅限输入。与此特定配置文件相关联的标签。这些标签将与最终数据集的部署标签合并。如需了解验证规则和限制,请参阅有关部署标签的文档。

start_time

Timestamp

仅限输出。配置文件的开始时间。此输出仅出现在来自 ListProfiles 方法的响应中。

ProfileType

ProfileType 是性能剖析数据的类型。注意:枚举成员名称用作(小写)配置文件类型的唯一字符串标识符,因此不得重命名。

枚举
PROFILE_TYPE_UNSPECIFIED 未指定的个人资料类型。
CPU 线程 CPU 时间采样。
WALL 挂钟时间采样。会停止所有线程,因此开销会更高。
HEAP 使用中的堆配置文件。表示进行分析时有效的分配快照。
THREADS 所有线程堆栈的单次集合。
CONTENTION 同步争用配置文件。
PEAK_HEAP 峰值堆配置文件。
HEAP_ALLOC 堆分配配置文件。它表示在分析期限内进行的所有分配的总和。所有分配都包含在内,包括可能到分析间隔结束时已经释放的分配。该配置文件对于垃圾回收语言特别有用,可帮助了解代码的哪些部分产生的垃圾回收压力最大,以查看是否可以优化这些部分。

UpdateProfileRequest

UpdateProfileRequest 包含要更新的配置文件。

字段
profile

Profile

要更新的个人资料。

必须对指定的资源 profile 具有以下 IAM 权限才能进行授权:

  • cloudprofiler.profiles.update
update_mask

FieldMask

用于指定要覆盖的字段的字段掩码。目前,UpdateProfile 仅支持 profile_bytes 和 labels 字段,因此在掩码中只能指定这些字段。如果未提供掩码,则所有字段都将被覆盖。