Class MetricsTracer (2.47.0)

public class MetricsTracer implements ApiTracer

This class computes generic metrics that can be observed in the lifecycle of an RPC operation. The responsibility of recording metrics should delegate to MetricsRecorder, hence this class should not have any knowledge about the observability framework used for metrics recording. method_name and language will be autopopulated attributes. Default value of language is 'Java'.

Inheritance

Object > MetricsTracer

Implements

ApiTracer

Static Fields

DEFAULT_LANGUAGE

public static final String DEFAULT_LANGUAGE
Field Value
Type Description
String

LANGUAGE_ATTRIBUTE

public static final String LANGUAGE_ATTRIBUTE
Field Value
Type Description
String

METHOD_NAME_ATTRIBUTE

public static final String METHOD_NAME_ATTRIBUTE
Field Value
Type Description
String

STATUS_ATTRIBUTE

public static final String STATUS_ATTRIBUTE
Field Value
Type Description
String

Constructors

MetricsTracer(MethodName methodName, MetricsRecorder metricsRecorder)

public MetricsTracer(MethodName methodName, MetricsRecorder metricsRecorder)
Parameters
Name Description
methodName MethodName
metricsRecorder MetricsRecorder

Methods

addAttributes(String key, String value)

public void addAttributes(String key, String value)

Add attributes that will be attached to all metrics. This is expected to be called by handwritten client teams to add additional attributes that are not supposed be collected by Gax.

Parameters
Name Description
key String
value String

attemptCancelled()

public void attemptCancelled()

Add an annotation that the attempt was cancelled by the user. Cancelled attempt add "CANCELLED" to the status attribute key.

attemptFailed(Throwable error, Duration delay)

public void attemptFailed(Throwable error, Duration delay)

Adds an annotation that the attempt failed, but another attempt will be made after the delay.

Parameters
Name Description
error Throwable

the error that caused the attempt to fail.

delay org.threeten.bp.Duration

the amount of time to wait before the next attempt will start.

Failed attempt extracts the error from the throwable and adds it to the status attribute key.

attemptFailedRetriesExhausted(Throwable error)

public void attemptFailedRetriesExhausted(Throwable error)

Adds an annotation that the attempt failed and that no further attempts will be made because retry limits have been reached. This extracts the error from the throwable and adds it to the status attribute key.

Parameter
Name Description
error Throwable

the last error received before retries were exhausted.

attemptPermanentFailure(Throwable error)

public void attemptPermanentFailure(Throwable error)

Adds an annotation that the attempt failed and that no further attempts will be made because the last error was not retryable. This extracts the error from the throwable and adds it to the status attribute key.

Parameter
Name Description
error Throwable

the error that caused the final attempt to fail.

attemptStarted(Object request, int attemptNumber)

public void attemptStarted(Object request, int attemptNumber)

Adds an annotation that an attempt is about to start with additional information from the request. In general this should occur at the very start of the operation. The attemptNumber is zero based. So the initial attempt will be 0. When the attempt starts, the attemptTimer starts the stopwatch.

Parameters
Name Description
request Object

request of this attempt.

attemptNumber int

the zero based sequential attempt number.

attemptSucceeded()

public void attemptSucceeded()

Adds an annotation that the attempt succeeded. Successful attempt add "OK" value to the status attribute key.

operationCancelled()

public void operationCancelled()

Signals that the operation was cancelled by the user. The tracer is now considered closed and should no longer be used. Cancelled operation adds "CANCELLED" value to the status attribute key.

operationFailed(Throwable error)

public void operationFailed(Throwable error)

Signals that the operation was cancelled by the user. The tracer is now considered closed and should no longer be used. Failed operation extracts the error from the throwable and adds it to the status attribute key.

Parameter
Name Description
error Throwable

operationSucceeded()

public void operationSucceeded()

Signals that the overall operation has finished successfully. The tracer is now considered closed and should no longer be used. Successful operation adds "OK" value to the status attribute key.