Manage the collection of continuous profiling data provided by profiling agents running in the cloud or by an offline provider of profiling data.
General guidelines:
- Profiles for a single deployment must be created in ascending time order.
- Profiles can be created in either online or offline mode, see below.
Equality
Instances of this class created via copy-construction or copy-assignment always compare equal. Instances created with equal std::shared_ptr<*Connection>
objects compare equal. Objects that compare equal share the same underlying resources.
Performance
Creating a new instance of this class is a relatively expensive operation, new objects establish new connections to the service. In contrast, copy-construction, move-construction, and the corresponding assignment operations are relatively efficient as the copies share all underlying resources.
Thread Safety
Concurrent access to different instances of this class, even if they compare equal, is guaranteed to work. Two or more threads operating on the same instance of this class is not guaranteed to work. Since copy-construction and move-construction is a relatively efficient operation, consider using such a copy when using this class from multiple threads.
Constructors
ProfilerServiceClient(ProfilerServiceClient const &)
Copy and move support
Parameter | |
---|---|
Name | Description |
|
ProfilerServiceClient const &
|
ProfilerServiceClient(ProfilerServiceClient &&)
Copy and move support
Parameter | |
---|---|
Name | Description |
|
ProfilerServiceClient &&
|
ProfilerServiceClient(std::shared_ptr< ProfilerServiceConnection >, Options)
Parameters | |
---|---|
Name | Description |
connection |
std::shared_ptr< ProfilerServiceConnection >
|
opts |
Options
|
Operators
operator=(ProfilerServiceClient const &)
Copy and move support
Parameter | |
---|---|
Name | Description |
|
ProfilerServiceClient const &
|
Returns | |
---|---|
Type | Description |
ProfilerServiceClient & |
operator=(ProfilerServiceClient &&)
Copy and move support
Parameter | |
---|---|
Name | Description |
|
ProfilerServiceClient &&
|
Returns | |
---|---|
Type | Description |
ProfilerServiceClient & |
Functions
CreateProfile(google::devtools::cloudprofiler::v2::CreateProfileRequest const &, Options)
CreateProfile creates a new profile resource in the online mode.
The server ensures that the new profiles are created at a constant rate per deployment, so the creation request may hang for some time until the next profile session is available.
The request may fail with ABORTED error if the creation is not available within ~1m, the response will indicate the duration of the backoff the client should take before attempting creating a profile again. The backoff duration is returned in google.rpc.RetryInfo extension on the response status. To a gRPC client, the extension will be return as a binary-serialized proto in the trailing metadata item named "google.rpc.retryinfo-bin".
Parameters | |
---|---|
Name | Description |
request |
google::devtools::cloudprofiler::v2::CreateProfileRequest const &
Unary RPCs, such as the one wrapped by this function, receive a single |
opts |
Options
Optional. Override the class-level options, such as retry and backoff policies. |
Returns | |
---|---|
Type | Description |
StatusOr< google::devtools::cloudprofiler::v2::Profile > | the result of the RPC. The response message type (google.devtools.cloudprofiler.v2.Profile) is mapped to a C++ class using the Protobuf mapping rules. If the request fails, the |
CreateOfflineProfile(std::string const &, google::devtools::cloudprofiler::v2::Profile const &, Options)
CreateOfflineProfile creates a new profile resource in the offline mode.
The client provides the profile to create along with the profile bytes, the server records it.
Parameters | |
---|---|
Name | Description |
parent |
std::string const &
Parent project to create the profile in. |
profile |
google::devtools::cloudprofiler::v2::Profile const &
Contents of the profile to create. |
opts |
Options
Optional. Override the class-level options, such as retry and backoff policies. |
Returns | |
---|---|
Type | Description |
StatusOr< google::devtools::cloudprofiler::v2::Profile > | the result of the RPC. The response message type (google.devtools.cloudprofiler.v2.Profile) is mapped to a C++ class using the Protobuf mapping rules. If the request fails, the |
CreateOfflineProfile(google::devtools::cloudprofiler::v2::CreateOfflineProfileRequest const &, Options)
CreateOfflineProfile creates a new profile resource in the offline mode.
The client provides the profile to create along with the profile bytes, the server records it.
Parameters | |
---|---|
Name | Description |
request |
google::devtools::cloudprofiler::v2::CreateOfflineProfileRequest const &
Unary RPCs, such as the one wrapped by this function, receive a single |
opts |
Options
Optional. Override the class-level options, such as retry and backoff policies. |
Returns | |
---|---|
Type | Description |
StatusOr< google::devtools::cloudprofiler::v2::Profile > | the result of the RPC. The response message type (google.devtools.cloudprofiler.v2.Profile) is mapped to a C++ class using the Protobuf mapping rules. If the request fails, the |
UpdateProfile(google::devtools::cloudprofiler::v2::Profile const &, google::protobuf::FieldMask const &, Options)
UpdateProfile updates the profile bytes and labels on the profile resource created in the online mode.
Updating the bytes for profiles created in the offline mode is currently not supported: the profile content must be provided at the time of the profile creation.
Parameters | |
---|---|
Name | Description |
profile |
google::devtools::cloudprofiler::v2::Profile const &
Profile to update. |
update_mask |
google::protobuf::FieldMask const &
Field mask used to specify the fields to be overwritten. Currently only profile_bytes and labels fields are supported by UpdateProfile, so only those fields can be specified in the mask. When no mask is provided, all fields are overwritten. |
opts |
Options
Optional. Override the class-level options, such as retry and backoff policies. |
Returns | |
---|---|
Type | Description |
StatusOr< google::devtools::cloudprofiler::v2::Profile > | the result of the RPC. The response message type (google.devtools.cloudprofiler.v2.Profile) is mapped to a C++ class using the Protobuf mapping rules. If the request fails, the |
UpdateProfile(google::devtools::cloudprofiler::v2::UpdateProfileRequest const &, Options)
UpdateProfile updates the profile bytes and labels on the profile resource created in the online mode.
Updating the bytes for profiles created in the offline mode is currently not supported: the profile content must be provided at the time of the profile creation.
Parameters | |
---|---|
Name | Description |
request |
google::devtools::cloudprofiler::v2::UpdateProfileRequest const &
Unary RPCs, such as the one wrapped by this function, receive a single |
opts |
Options
Optional. Override the class-level options, such as retry and backoff policies. |
Returns | |
---|---|
Type | Description |
StatusOr< google::devtools::cloudprofiler::v2::Profile > | the result of the RPC. The response message type (google.devtools.cloudprofiler.v2.Profile) is mapped to a C++ class using the Protobuf mapping rules. If the request fails, the |