Class MetricsTracer

java.lang.Object
com.google.api.gax.tracing.MetricsTracer
All Implemented Interfaces:
ApiTracer

@BetaApi @InternalApi public class MetricsTracer extends Object 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'.
  • Field Details

  • Constructor Details

  • Method Details

    • 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.
      Specified by:
      operationSucceeded in interface ApiTracer
      Throws:
      IllegalStateException - if an operation completion call has already been invoked
    • 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.
      Specified by:
      operationCancelled in interface ApiTracer
      Throws:
      IllegalStateException - if an operation completion call has already been invoked
    • operationFailed

      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.
      Specified by:
      operationFailed in interface ApiTracer
      Parameters:
      error - the final error that caused the operation to fail.
      Throws:
      IllegalStateException - if an operation completion call has already been invoked
    • attemptStarted

      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.
      Specified by:
      attemptStarted in interface ApiTracer
      Parameters:
      attemptNumber - the zero based sequential attempt number.
      request - request of this attempt.
    • attemptSucceeded

      public void attemptSucceeded()
      Adds an annotation that the attempt succeeded. Successful attempt add "OK" value to the status attribute key.
      Specified by:
      attemptSucceeded in interface ApiTracer
    • attemptCancelled

      public void attemptCancelled()
      Add an annotation that the attempt was cancelled by the user. Cancelled attempt add "CANCELLED" to the status attribute key.
      Specified by:
      attemptCancelled in interface ApiTracer
    • attemptFailed

      public void attemptFailed(Throwable error, org.threeten.bp.Duration delay)
      Adds an annotation that the attempt failed, but another attempt will be made after the delay.
      Specified by:
      attemptFailed in interface ApiTracer
      Parameters:
      error - the error that caused the attempt to fail.
      delay - 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

      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.
      Specified by:
      attemptFailedRetriesExhausted in interface ApiTracer
      Parameters:
      error - the last error received before retries were exhausted.
    • attemptPermanentFailure

      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.
      Specified by:
      attemptPermanentFailure in interface ApiTracer
      Parameters:
      error - the error that caused the final attempt to fail.
    • addAttributes

      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.