Class MetricsTracer (2.46.1)

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
TypeDescription
String

LANGUAGE_ATTRIBUTE

public static final String LANGUAGE_ATTRIBUTE
Field Value
TypeDescription
String

METHOD_NAME_ATTRIBUTE

public static final String METHOD_NAME_ATTRIBUTE
Field Value
TypeDescription
String

STATUS_ATTRIBUTE

public static final String STATUS_ATTRIBUTE
Field Value
TypeDescription
String

Constructors

MetricsTracer(MethodName methodName, MetricsRecorder metricsRecorder)

public MetricsTracer(MethodName methodName, MetricsRecorder metricsRecorder)
Parameters
NameDescription
methodNameMethodName
metricsRecorderMetricsRecorder

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
NameDescription
keyString
valueString

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
NameDescription
errorThrowable

the error that caused the attempt to fail.

delayorg.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
NameDescription
errorThrowable

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
NameDescription
errorThrowable

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
NameDescription
requestObject

request of this attempt.

attemptNumberint

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
NameDescription
errorThrowable

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.