com.google.cloud.trace.v1.TraceServiceClient Maven / Gradle / Ivy
Show all versions of google-cloud-trace Show documentation
/*
* Copyright 2024 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.cloud.trace.v1;
import com.google.api.core.ApiFuture;
import com.google.api.core.ApiFutures;
import com.google.api.gax.core.BackgroundResource;
import com.google.api.gax.paging.AbstractFixedSizeCollection;
import com.google.api.gax.paging.AbstractPage;
import com.google.api.gax.paging.AbstractPagedListResponse;
import com.google.api.gax.rpc.PageContext;
import com.google.api.gax.rpc.UnaryCallable;
import com.google.cloud.trace.v1.stub.TraceServiceStub;
import com.google.cloud.trace.v1.stub.TraceServiceStubSettings;
import com.google.common.util.concurrent.MoreExecutors;
import com.google.devtools.cloudtrace.v1.GetTraceRequest;
import com.google.devtools.cloudtrace.v1.ListTracesRequest;
import com.google.devtools.cloudtrace.v1.ListTracesResponse;
import com.google.devtools.cloudtrace.v1.PatchTracesRequest;
import com.google.devtools.cloudtrace.v1.Trace;
import com.google.devtools.cloudtrace.v1.Traces;
import com.google.protobuf.Empty;
import java.io.IOException;
import java.util.List;
import java.util.concurrent.TimeUnit;
import javax.annotation.Generated;
// AUTO-GENERATED DOCUMENTATION AND CLASS.
/**
* Service Description: This file describes an API for collecting and viewing traces and spans
* within a trace. A Trace is a collection of spans corresponding to a single operation or set of
* operations for an application. A span is an individual timed event which forms a node of the
* trace tree. Spans for a single trace may span multiple services.
*
* 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:
*
*
{@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 (TraceServiceClient traceServiceClient = TraceServiceClient.create()) {
* String projectId = "projectId-894832108";
* String traceId = "traceId-1067401920";
* Trace response = traceServiceClient.getTrace(projectId, traceId);
* }
* }
*
* Note: close() needs to be called on the TraceServiceClient 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
*
*
* ListTraces
* Returns of a list of traces that match the specified filter conditions.
*
* Request object method variants only take one parameter, a request object, which must be constructed before the call.
*
* listTraces(ListTracesRequest request)
*
* "Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.
*
* listTraces(String projectId)
*
* Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service.
*
* listTracesPagedCallable()
*
listTracesCallable()
*
*
*
*
* GetTrace
* Gets a single trace by its ID.
*
* Request object method variants only take one parameter, a request object, which must be constructed before the call.
*
* getTrace(GetTraceRequest request)
*
* "Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.
*
* getTrace(String projectId, String traceId)
*
* Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service.
*
* getTraceCallable()
*
*
*
*
* PatchTraces
* Sends new traces to Stackdriver Trace or updates existing traces. If the ID of a trace that you send matches that of an existing trace, any fields in the existing trace and its spans are overwritten by the provided values, and any new fields provided are merged with the existing trace data. If the ID does not match, a new trace is created.
*
* Request object method variants only take one parameter, a request object, which must be constructed before the call.
*
* patchTraces(PatchTracesRequest request)
*
* "Flattened" method variants have converted the fields of the request object into function parameters to enable multiple ways to call the same method.
*
* patchTraces(String projectId, Traces traces)
*
* Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service.
*
* patchTracesCallable()
*
*
*
*
*
* 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 TraceServiceSettings to
* create(). For example:
*
*
To customize credentials:
*
*
{@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
* TraceServiceSettings traceServiceSettings =
* TraceServiceSettings.newBuilder()
* .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
* .build();
* TraceServiceClient traceServiceClient = TraceServiceClient.create(traceServiceSettings);
* }
*
* To customize the endpoint:
*
*
{@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
* TraceServiceSettings traceServiceSettings =
* TraceServiceSettings.newBuilder().setEndpoint(myEndpoint).build();
* TraceServiceClient traceServiceClient = TraceServiceClient.create(traceServiceSettings);
* }
*
* To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
* the wire:
*
*
{@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
* TraceServiceSettings traceServiceSettings = TraceServiceSettings.newHttpJsonBuilder().build();
* TraceServiceClient traceServiceClient = TraceServiceClient.create(traceServiceSettings);
* }
*
* Please refer to the GitHub repository's samples for more quickstart code snippets.
*/
@Generated("by gapic-generator-java")
public class TraceServiceClient implements BackgroundResource {
private final TraceServiceSettings settings;
private final TraceServiceStub stub;
/** Constructs an instance of TraceServiceClient with default settings. */
public static final TraceServiceClient create() throws IOException {
return create(TraceServiceSettings.newBuilder().build());
}
/**
* Constructs an instance of TraceServiceClient, using the given settings. The channels are
* created based on the settings passed in, or defaults for any settings that are not set.
*/
public static final TraceServiceClient create(TraceServiceSettings settings) throws IOException {
return new TraceServiceClient(settings);
}
/**
* Constructs an instance of TraceServiceClient, using the given stub for making calls. This is
* for advanced usage - prefer using create(TraceServiceSettings).
*/
public static final TraceServiceClient create(TraceServiceStub stub) {
return new TraceServiceClient(stub);
}
/**
* Constructs an instance of TraceServiceClient, 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.
*/
protected TraceServiceClient(TraceServiceSettings settings) throws IOException {
this.settings = settings;
this.stub = ((TraceServiceStubSettings) settings.getStubSettings()).createStub();
}
protected TraceServiceClient(TraceServiceStub stub) {
this.settings = null;
this.stub = stub;
}
public final TraceServiceSettings getSettings() {
return settings;
}
public TraceServiceStub getStub() {
return stub;
}
// AUTO-GENERATED DOCUMENTATION AND METHOD.
/**
* Returns of a list of traces that match the specified filter conditions.
*
*
Sample code:
*
*
{@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 (TraceServiceClient traceServiceClient = TraceServiceClient.create()) {
* String projectId = "projectId-894832108";
* for (Trace element : traceServiceClient.listTraces(projectId).iterateAll()) {
* // doThingsWith(element);
* }
* }
* }
*
* @param projectId Required. ID of the Cloud project where the trace data is stored.
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
*/
public final ListTracesPagedResponse listTraces(String projectId) {
ListTracesRequest request = ListTracesRequest.newBuilder().setProjectId(projectId).build();
return listTraces(request);
}
// AUTO-GENERATED DOCUMENTATION AND METHOD.
/**
* Returns of a list of traces that match the specified filter conditions.
*
* Sample code:
*
*
{@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 (TraceServiceClient traceServiceClient = TraceServiceClient.create()) {
* ListTracesRequest request =
* ListTracesRequest.newBuilder()
* .setProjectId("projectId-894832108")
* .setPageSize(883849137)
* .setPageToken("pageToken873572522")
* .setStartTime(Timestamp.newBuilder().build())
* .setEndTime(Timestamp.newBuilder().build())
* .setFilter("filter-1274492040")
* .setOrderBy("orderBy-1207110587")
* .build();
* for (Trace element : traceServiceClient.listTraces(request).iterateAll()) {
* // doThingsWith(element);
* }
* }
* }
*
* @param request The request object containing all of the parameters for the API call.
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
*/
public final ListTracesPagedResponse listTraces(ListTracesRequest request) {
return listTracesPagedCallable().call(request);
}
// AUTO-GENERATED DOCUMENTATION AND METHOD.
/**
* Returns of a list of traces that match the specified filter conditions.
*
* Sample code:
*
*
{@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 (TraceServiceClient traceServiceClient = TraceServiceClient.create()) {
* ListTracesRequest request =
* ListTracesRequest.newBuilder()
* .setProjectId("projectId-894832108")
* .setPageSize(883849137)
* .setPageToken("pageToken873572522")
* .setStartTime(Timestamp.newBuilder().build())
* .setEndTime(Timestamp.newBuilder().build())
* .setFilter("filter-1274492040")
* .setOrderBy("orderBy-1207110587")
* .build();
* ApiFuture future = traceServiceClient.listTracesPagedCallable().futureCall(request);
* // Do something.
* for (Trace element : future.get().iterateAll()) {
* // doThingsWith(element);
* }
* }
* }
*/
public final UnaryCallable listTracesPagedCallable() {
return stub.listTracesPagedCallable();
}
// AUTO-GENERATED DOCUMENTATION AND METHOD.
/**
* Returns of a list of traces that match the specified filter conditions.
*
* Sample code:
*
*
{@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 (TraceServiceClient traceServiceClient = TraceServiceClient.create()) {
* ListTracesRequest request =
* ListTracesRequest.newBuilder()
* .setProjectId("projectId-894832108")
* .setPageSize(883849137)
* .setPageToken("pageToken873572522")
* .setStartTime(Timestamp.newBuilder().build())
* .setEndTime(Timestamp.newBuilder().build())
* .setFilter("filter-1274492040")
* .setOrderBy("orderBy-1207110587")
* .build();
* while (true) {
* ListTracesResponse response = traceServiceClient.listTracesCallable().call(request);
* for (Trace element : response.getTracesList()) {
* // doThingsWith(element);
* }
* String nextPageToken = response.getNextPageToken();
* if (!Strings.isNullOrEmpty(nextPageToken)) {
* request = request.toBuilder().setPageToken(nextPageToken).build();
* } else {
* break;
* }
* }
* }
* }
*/
public final UnaryCallable listTracesCallable() {
return stub.listTracesCallable();
}
// AUTO-GENERATED DOCUMENTATION AND METHOD.
/**
* Gets a single trace by its ID.
*
* Sample code:
*
*
{@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 (TraceServiceClient traceServiceClient = TraceServiceClient.create()) {
* String projectId = "projectId-894832108";
* String traceId = "traceId-1067401920";
* Trace response = traceServiceClient.getTrace(projectId, traceId);
* }
* }
*
* @param projectId Required. ID of the Cloud project where the trace data is stored.
* @param traceId Required. ID of the trace to return.
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
*/
public final Trace getTrace(String projectId, String traceId) {
GetTraceRequest request =
GetTraceRequest.newBuilder().setProjectId(projectId).setTraceId(traceId).build();
return getTrace(request);
}
// AUTO-GENERATED DOCUMENTATION AND METHOD.
/**
* Gets a single trace by its ID.
*
* Sample code:
*
*
{@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 (TraceServiceClient traceServiceClient = TraceServiceClient.create()) {
* GetTraceRequest request =
* GetTraceRequest.newBuilder()
* .setProjectId("projectId-894832108")
* .setTraceId("traceId-1067401920")
* .build();
* Trace response = traceServiceClient.getTrace(request);
* }
* }
*
* @param request The request object containing all of the parameters for the API call.
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
*/
public final Trace getTrace(GetTraceRequest request) {
return getTraceCallable().call(request);
}
// AUTO-GENERATED DOCUMENTATION AND METHOD.
/**
* Gets a single trace by its ID.
*
* Sample code:
*
*
{@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 (TraceServiceClient traceServiceClient = TraceServiceClient.create()) {
* GetTraceRequest request =
* GetTraceRequest.newBuilder()
* .setProjectId("projectId-894832108")
* .setTraceId("traceId-1067401920")
* .build();
* ApiFuture future = traceServiceClient.getTraceCallable().futureCall(request);
* // Do something.
* Trace response = future.get();
* }
* }
*/
public final UnaryCallable getTraceCallable() {
return stub.getTraceCallable();
}
// AUTO-GENERATED DOCUMENTATION AND METHOD.
/**
* Sends new traces to Stackdriver Trace or updates existing traces. If the ID of a trace that you
* send matches that of an existing trace, any fields in the existing trace and its spans are
* overwritten by the provided values, and any new fields provided are merged with the existing
* trace data. If the ID does not match, a new trace is created.
*
* Sample code:
*
*
{@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 (TraceServiceClient traceServiceClient = TraceServiceClient.create()) {
* String projectId = "projectId-894832108";
* Traces traces = Traces.newBuilder().build();
* traceServiceClient.patchTraces(projectId, traces);
* }
* }
*
* @param projectId Required. ID of the Cloud project where the trace data is stored.
* @param traces Required. The body of the message.
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
*/
public final void patchTraces(String projectId, Traces traces) {
PatchTracesRequest request =
PatchTracesRequest.newBuilder().setProjectId(projectId).setTraces(traces).build();
patchTraces(request);
}
// AUTO-GENERATED DOCUMENTATION AND METHOD.
/**
* Sends new traces to Stackdriver Trace or updates existing traces. If the ID of a trace that you
* send matches that of an existing trace, any fields in the existing trace and its spans are
* overwritten by the provided values, and any new fields provided are merged with the existing
* trace data. If the ID does not match, a new trace is created.
*
* Sample code:
*
*
{@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 (TraceServiceClient traceServiceClient = TraceServiceClient.create()) {
* PatchTracesRequest request =
* PatchTracesRequest.newBuilder()
* .setProjectId("projectId-894832108")
* .setTraces(Traces.newBuilder().build())
* .build();
* traceServiceClient.patchTraces(request);
* }
* }
*
* @param request The request object containing all of the parameters for the API call.
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
*/
public final void patchTraces(PatchTracesRequest request) {
patchTracesCallable().call(request);
}
// AUTO-GENERATED DOCUMENTATION AND METHOD.
/**
* Sends new traces to Stackdriver Trace or updates existing traces. If the ID of a trace that you
* send matches that of an existing trace, any fields in the existing trace and its spans are
* overwritten by the provided values, and any new fields provided are merged with the existing
* trace data. If the ID does not match, a new trace is created.
*
* Sample code:
*
*
{@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 (TraceServiceClient traceServiceClient = TraceServiceClient.create()) {
* PatchTracesRequest request =
* PatchTracesRequest.newBuilder()
* .setProjectId("projectId-894832108")
* .setTraces(Traces.newBuilder().build())
* .build();
* ApiFuture future = traceServiceClient.patchTracesCallable().futureCall(request);
* // Do something.
* future.get();
* }
* }
*/
public final UnaryCallable patchTracesCallable() {
return stub.patchTracesCallable();
}
@Override
public final void close() {
stub.close();
}
@Override
public void shutdown() {
stub.shutdown();
}
@Override
public boolean isShutdown() {
return stub.isShutdown();
}
@Override
public boolean isTerminated() {
return stub.isTerminated();
}
@Override
public void shutdownNow() {
stub.shutdownNow();
}
@Override
public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException {
return stub.awaitTermination(duration, unit);
}
public static class ListTracesPagedResponse
extends AbstractPagedListResponse<
ListTracesRequest,
ListTracesResponse,
Trace,
ListTracesPage,
ListTracesFixedSizeCollection> {
public static ApiFuture createAsync(
PageContext context,
ApiFuture futureResponse) {
ApiFuture futurePage =
ListTracesPage.createEmptyPage().createPageAsync(context, futureResponse);
return ApiFutures.transform(
futurePage, input -> new ListTracesPagedResponse(input), MoreExecutors.directExecutor());
}
private ListTracesPagedResponse(ListTracesPage page) {
super(page, ListTracesFixedSizeCollection.createEmptyCollection());
}
}
public static class ListTracesPage
extends AbstractPage {
private ListTracesPage(
PageContext context,
ListTracesResponse response) {
super(context, response);
}
private static ListTracesPage createEmptyPage() {
return new ListTracesPage(null, null);
}
@Override
protected ListTracesPage createPage(
PageContext context,
ListTracesResponse response) {
return new ListTracesPage(context, response);
}
@Override
public ApiFuture createPageAsync(
PageContext context,
ApiFuture futureResponse) {
return super.createPageAsync(context, futureResponse);
}
}
public static class ListTracesFixedSizeCollection
extends AbstractFixedSizeCollection<
ListTracesRequest,
ListTracesResponse,
Trace,
ListTracesPage,
ListTracesFixedSizeCollection> {
private ListTracesFixedSizeCollection(List pages, int collectionSize) {
super(pages, collectionSize);
}
private static ListTracesFixedSizeCollection createEmptyCollection() {
return new ListTracesFixedSizeCollection(null, 0);
}
@Override
protected ListTracesFixedSizeCollection createCollection(
List pages, int collectionSize) {
return new ListTracesFixedSizeCollection(pages, collectionSize);
}
}
}