Class ProfilerServiceClient (2.45.0)

GitHub RepositoryProduct Reference

Service Description: Manage the collection of continuous profiling data provided by profiling agents running in the cloud or by an offline provider of profiling data.

The APIs listed in this service are intended for use within our profiler agents only.

This class provides the ability to make remote calls to the backing service through method calls that map to API methods. Sample code to get started:


 // This snippet has been automatically generated and should be regarded as a code template only.
 // It will require modifications to work:
 // - It may require correct/in-range values for request initialization.
 // - It may require specifying regional endpoints when creating the service client as shown in
 // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
 try (ProfilerServiceClient profilerServiceClient = ProfilerServiceClient.create()) {
   CreateProfileRequest request =
       CreateProfileRequest.newBuilder()
           .setParent(ProjectName.of("[PROJECT]").toString())
           .setDeployment(Deployment.newBuilder().build())
           .addAllProfileType(new ArrayList<ProfileType>())
           .build();
   Profile response = profilerServiceClient.createProfile(request);
 }
 

Note: close() needs to be called on the ProfilerServiceClient object to clean up resources such as threads. In the example above, try-with-resources is used, which automatically calls close().

Methods
Method Description Method Variants

CreateProfile

CreateProfile creates a new profile resource in the online mode.

Direct use of this API is discouraged, please use a supported profiler agent instead for profile collection.

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".

Request object method variants only take one parameter, a request object, which must be constructed before the call.

  • createProfile(CreateProfileRequest request)

Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service.

  • createProfileCallable()

CreateOfflineProfile

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.

Direct use of this API is discouraged, please use a supported profiler agent instead for profile collection.

Request object method variants only take one parameter, a request object, which must be constructed before the call.

  • createOfflineProfile(CreateOfflineProfileRequest request)

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

  • createOfflineProfile(ProjectName parent, Profile profile)

  • createOfflineProfile(String parent, Profile profile)

Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service.

  • createOfflineProfileCallable()

UpdateProfile

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.

Direct use of this API is discouraged, please use a supported profiler agent instead for profile collection.

Request object method variants only take one parameter, a request object, which must be constructed before the call.

  • updateProfile(UpdateProfileRequest request)

"Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.

  • updateProfile(Profile profile, FieldMask updateMask)

Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service.

  • updateProfileCallable()

See the individual methods for example code.

Many parameters require resource names to be formatted in a particular way. To assist with these names, this class includes a format method for each type of name, and additionally a parse method to extract the individual identifiers contained within names that are returned.

This class can be customized by passing in a custom instance of ProfilerServiceSettings to create(). For example:

To customize credentials:


 // This snippet has been automatically generated and should be regarded as a code template only.
 // It will require modifications to work:
 // - It may require correct/in-range values for request initialization.
 // - It may require specifying regional endpoints when creating the service client as shown in
 // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
 ProfilerServiceSettings profilerServiceSettings =
     ProfilerServiceSettings.newBuilder()
         .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
         .build();
 ProfilerServiceClient profilerServiceClient =
     ProfilerServiceClient.create(profilerServiceSettings);
 

To customize the endpoint:


 // This snippet has been automatically generated and should be regarded as a code template only.
 // It will require modifications to work:
 // - It may require correct/in-range values for request initialization.
 // - It may require specifying regional endpoints when creating the service client as shown in
 // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
 ProfilerServiceSettings profilerServiceSettings =
     ProfilerServiceSettings.newBuilder().setEndpoint(myEndpoint).build();
 ProfilerServiceClient profilerServiceClient =
     ProfilerServiceClient.create(profilerServiceSettings);
 

To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over the wire:


 // This snippet has been automatically generated and should be regarded as a code template only.
 // It will require modifications to work:
 // - It may require correct/in-range values for request initialization.
 // - It may require specifying regional endpoints when creating the service client as shown in
 // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
 ProfilerServiceSettings profilerServiceSettings =
     ProfilerServiceSettings.newHttpJsonBuilder().build();
 ProfilerServiceClient profilerServiceClient =
     ProfilerServiceClient.create(profilerServiceSettings);
 

Please refer to the GitHub repository's samples for more quickstart code snippets.

Inheritance

java.lang.Object > ProfilerServiceClient

Static Methods

create()

public static final ProfilerServiceClient create()

Constructs an instance of ProfilerServiceClient with default settings.

Returns
Type Description
ProfilerServiceClient
Exceptions
Type Description
IOException

create(ProfilerServiceSettings settings)

public static final ProfilerServiceClient create(ProfilerServiceSettings settings)

Constructs an instance of ProfilerServiceClient, using the given settings. The channels are created based on the settings passed in, or defaults for any settings that are not set.

Parameter
Name Description
settings ProfilerServiceSettings
Returns
Type Description
ProfilerServiceClient
Exceptions
Type Description
IOException

create(ProfilerServiceStub stub)

public static final ProfilerServiceClient create(ProfilerServiceStub stub)

Constructs an instance of ProfilerServiceClient, using the given stub for making calls. This is for advanced usage - prefer using create(ProfilerServiceSettings).

Parameter
Name Description
stub ProfilerServiceStub
Returns
Type Description
ProfilerServiceClient

Constructors

ProfilerServiceClient(ProfilerServiceSettings settings)

protected ProfilerServiceClient(ProfilerServiceSettings settings)

Constructs an instance of ProfilerServiceClient, using the given settings. This is protected so that it is easy to make a subclass, but otherwise, the static factory methods should be preferred.

Parameter
Name Description
settings ProfilerServiceSettings

ProfilerServiceClient(ProfilerServiceStub stub)

protected ProfilerServiceClient(ProfilerServiceStub stub)
Parameter
Name Description
stub ProfilerServiceStub

Methods

awaitTermination(long duration, TimeUnit unit)

public boolean awaitTermination(long duration, TimeUnit unit)
Parameters
Name Description
duration long
unit TimeUnit
Returns
Type Description
boolean
Exceptions
Type Description
InterruptedException

close()

public final void close()

createOfflineProfile(CreateOfflineProfileRequest request)

public final Profile createOfflineProfile(CreateOfflineProfileRequest request)

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.

Direct use of this API is discouraged, please use a supported profiler agent instead for profile collection.

Sample code:


 // This snippet has been automatically generated and should be regarded as a code template only.
 // It will require modifications to work:
 // - It may require correct/in-range values for request initialization.
 // - It may require specifying regional endpoints when creating the service client as shown in
 // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
 try (ProfilerServiceClient profilerServiceClient = ProfilerServiceClient.create()) {
   CreateOfflineProfileRequest request =
       CreateOfflineProfileRequest.newBuilder()
           .setParent(ProjectName.of("[PROJECT]").toString())
           .setProfile(Profile.newBuilder().build())
           .build();
   Profile response = profilerServiceClient.createOfflineProfile(request);
 }
 
Parameter
Name Description
request CreateOfflineProfileRequest

The request object containing all of the parameters for the API call.

Returns
Type Description
Profile

createOfflineProfile(ProjectName parent, Profile profile)

public final Profile createOfflineProfile(ProjectName parent, Profile profile)

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.

Direct use of this API is discouraged, please use a supported profiler agent instead for profile collection.

Sample code:


 // This snippet has been automatically generated and should be regarded as a code template only.
 // It will require modifications to work:
 // - It may require correct/in-range values for request initialization.
 // - It may require specifying regional endpoints when creating the service client as shown in
 // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
 try (ProfilerServiceClient profilerServiceClient = ProfilerServiceClient.create()) {
   ProjectName parent = ProjectName.of("[PROJECT]");
   Profile profile = Profile.newBuilder().build();
   Profile response = profilerServiceClient.createOfflineProfile(parent, profile);
 }
 
Parameters
Name Description
parent ProjectName

Parent project to create the profile in.

profile Profile

Contents of the profile to create.

Returns
Type Description
Profile

createOfflineProfile(String parent, Profile profile)

public final Profile createOfflineProfile(String parent, Profile profile)

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.

Direct use of this API is discouraged, please use a supported profiler agent instead for profile collection.

Sample code:


 // This snippet has been automatically generated and should be regarded as a code template only.
 // It will require modifications to work:
 // - It may require correct/in-range values for request initialization.
 // - It may require specifying regional endpoints when creating the service client as shown in
 // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
 try (ProfilerServiceClient profilerServiceClient = ProfilerServiceClient.create()) {
   String parent = ProjectName.of("[PROJECT]").toString();
   Profile profile = Profile.newBuilder().build();
   Profile response = profilerServiceClient.createOfflineProfile(parent, profile);
 }
 
Parameters
Name Description
parent String

Parent project to create the profile in.

profile Profile

Contents of the profile to create.

Returns
Type Description
Profile

createOfflineProfileCallable()

public final UnaryCallable<CreateOfflineProfileRequest,Profile> createOfflineProfileCallable()

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.

Direct use of this API is discouraged, please use a supported profiler agent instead for profile collection.

Sample code:


 // This snippet has been automatically generated and should be regarded as a code template only.
 // It will require modifications to work:
 // - It may require correct/in-range values for request initialization.
 // - It may require specifying regional endpoints when creating the service client as shown in
 // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
 try (ProfilerServiceClient profilerServiceClient = ProfilerServiceClient.create()) {
   CreateOfflineProfileRequest request =
       CreateOfflineProfileRequest.newBuilder()
           .setParent(ProjectName.of("[PROJECT]").toString())
           .setProfile(Profile.newBuilder().build())
           .build();
   ApiFuture<Profile> future =
       profilerServiceClient.createOfflineProfileCallable().futureCall(request);
   // Do something.
   Profile response = future.get();
 }
 
Returns
Type Description
UnaryCallable<CreateOfflineProfileRequest,Profile>

createProfile(CreateProfileRequest request)

public final Profile createProfile(CreateProfileRequest request)

CreateProfile creates a new profile resource in the online mode.

Direct use of this API is discouraged, please use a supported profiler agent instead for profile collection.

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".

Sample code:


 // This snippet has been automatically generated and should be regarded as a code template only.
 // It will require modifications to work:
 // - It may require correct/in-range values for request initialization.
 // - It may require specifying regional endpoints when creating the service client as shown in
 // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
 try (ProfilerServiceClient profilerServiceClient = ProfilerServiceClient.create()) {
   CreateProfileRequest request =
       CreateProfileRequest.newBuilder()
           .setParent(ProjectName.of("[PROJECT]").toString())
           .setDeployment(Deployment.newBuilder().build())
           .addAllProfileType(new ArrayList<ProfileType>())
           .build();
   Profile response = profilerServiceClient.createProfile(request);
 }
 
Parameter
Name Description
request CreateProfileRequest

The request object containing all of the parameters for the API call.

Returns
Type Description
Profile

createProfileCallable()

public final UnaryCallable<CreateProfileRequest,Profile> createProfileCallable()

CreateProfile creates a new profile resource in the online mode.

Direct use of this API is discouraged, please use a supported profiler agent instead for profile collection.

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".

Sample code:


 // This snippet has been automatically generated and should be regarded as a code template only.
 // It will require modifications to work:
 // - It may require correct/in-range values for request initialization.
 // - It may require specifying regional endpoints when creating the service client as shown in
 // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
 try (ProfilerServiceClient profilerServiceClient = ProfilerServiceClient.create()) {
   CreateProfileRequest request =
       CreateProfileRequest.newBuilder()
           .setParent(ProjectName.of("[PROJECT]").toString())
           .setDeployment(Deployment.newBuilder().build())
           .addAllProfileType(new ArrayList<ProfileType>())
           .build();
   ApiFuture<Profile> future = profilerServiceClient.createProfileCallable().futureCall(request);
   // Do something.
   Profile response = future.get();
 }
 
Returns
Type Description
UnaryCallable<CreateProfileRequest,Profile>

getSettings()

public final ProfilerServiceSettings getSettings()
Returns
Type Description
ProfilerServiceSettings

getStub()

public ProfilerServiceStub getStub()
Returns
Type Description
ProfilerServiceStub

isShutdown()

public boolean isShutdown()
Returns
Type Description
boolean

isTerminated()

public boolean isTerminated()
Returns
Type Description
boolean

shutdown()

public void shutdown()

shutdownNow()

public void shutdownNow()

updateProfile(Profile profile, FieldMask updateMask)

public final Profile updateProfile(Profile profile, FieldMask updateMask)

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.

Direct use of this API is discouraged, please use a supported profiler agent instead for profile collection.

Sample code:


 // This snippet has been automatically generated and should be regarded as a code template only.
 // It will require modifications to work:
 // - It may require correct/in-range values for request initialization.
 // - It may require specifying regional endpoints when creating the service client as shown in
 // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
 try (ProfilerServiceClient profilerServiceClient = ProfilerServiceClient.create()) {
   Profile profile = Profile.newBuilder().build();
   FieldMask updateMask = FieldMask.newBuilder().build();
   Profile response = profilerServiceClient.updateProfile(profile, updateMask);
 }
 
Parameters
Name Description
profile Profile

Profile to update.

updateMask FieldMask

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.

Returns
Type Description
Profile

updateProfile(UpdateProfileRequest request)

public final Profile updateProfile(UpdateProfileRequest request)

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.

Direct use of this API is discouraged, please use a supported profiler agent instead for profile collection.

Sample code:


 // This snippet has been automatically generated and should be regarded as a code template only.
 // It will require modifications to work:
 // - It may require correct/in-range values for request initialization.
 // - It may require specifying regional endpoints when creating the service client as shown in
 // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
 try (ProfilerServiceClient profilerServiceClient = ProfilerServiceClient.create()) {
   UpdateProfileRequest request =
       UpdateProfileRequest.newBuilder()
           .setProfile(Profile.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   Profile response = profilerServiceClient.updateProfile(request);
 }
 
Parameter
Name Description
request UpdateProfileRequest

The request object containing all of the parameters for the API call.

Returns
Type Description
Profile

updateProfileCallable()

public final UnaryCallable<UpdateProfileRequest,Profile> updateProfileCallable()

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.

Direct use of this API is discouraged, please use a supported profiler agent instead for profile collection.

Sample code:


 // This snippet has been automatically generated and should be regarded as a code template only.
 // It will require modifications to work:
 // - It may require correct/in-range values for request initialization.
 // - It may require specifying regional endpoints when creating the service client as shown in
 // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
 try (ProfilerServiceClient profilerServiceClient = ProfilerServiceClient.create()) {
   UpdateProfileRequest request =
       UpdateProfileRequest.newBuilder()
           .setProfile(Profile.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   ApiFuture<Profile> future = profilerServiceClient.updateProfileCallable().futureCall(request);
   // Do something.
   Profile response = future.get();
 }
 
Returns
Type Description
UnaryCallable<UpdateProfileRequest,Profile>