Provides an interface for metrics recording. The implementer is expected to use an observability
framework, e.g. OpenTelemetry. There should be only one instance of MetricsRecorder per client,
all the methods in this class are expected to be called from multiple threads, hence the
implementation must be thread safe.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eThis page details the \u003ccode\u003eMetricsRecorder\u003c/code\u003e interface, which is intended for recording metrics using an observability framework like OpenTelemetry.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eMetricsRecorder\u003c/code\u003e interface is currently in the Pre-GA stage, meaning there could be limited support and potential breaking changes in future updates.\u003c/p\u003e\n"],["\u003cp\u003eThe latest version of \u003ccode\u003eMetricsRecorder\u003c/code\u003e available is 2.63.1, and there are many other past versions also available to see.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eMetricsRecorder\u003c/code\u003e interface provides methods for recording RPC attempt counts, attempt latency, operation counts, and operation latency.\u003c/p\u003e\n"],["\u003cp\u003eThe implementation of \u003ccode\u003eMetricsRecorder\u003c/code\u003e must be thread safe, because it is meant to be used with multiple threads in a client.\u003c/p\u003e\n"]]],[],null,["# Interface MetricsRecorder (2.69.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.69.0 (latest)](/java/docs/reference/gax/latest/com.google.api.gax.tracing.MetricsRecorder)\n- [2.68.2](/java/docs/reference/gax/2.68.2/com.google.api.gax.tracing.MetricsRecorder)\n- [2.67.0](/java/docs/reference/gax/2.67.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.66.0](/java/docs/reference/gax/2.66.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.65.0](/java/docs/reference/gax/2.65.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.63.1](/java/docs/reference/gax/2.63.1/com.google.api.gax.tracing.MetricsRecorder)\n- [2.62.0](/java/docs/reference/gax/2.62.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.61.0](/java/docs/reference/gax/2.61.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.60.0](/java/docs/reference/gax/2.60.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.59.1](/java/docs/reference/gax/2.59.1/com.google.api.gax.tracing.MetricsRecorder)\n- [2.58.0](/java/docs/reference/gax/2.58.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.57.0](/java/docs/reference/gax/2.57.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.55.0](/java/docs/reference/gax/2.55.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.54.1](/java/docs/reference/gax/2.54.1/com.google.api.gax.tracing.MetricsRecorder)\n- [2.53.0](/java/docs/reference/gax/2.53.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.52.0](/java/docs/reference/gax/2.52.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.51.0](/java/docs/reference/gax/2.51.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.50.0](/java/docs/reference/gax/2.50.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.49.0](/java/docs/reference/gax/2.49.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.48.1](/java/docs/reference/gax/2.48.1/com.google.api.gax.tracing.MetricsRecorder)\n- [2.47.0](/java/docs/reference/gax/2.47.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.46.1](/java/docs/reference/gax/2.46.1/com.google.api.gax.tracing.MetricsRecorder)\n- [2.45.0](/java/docs/reference/gax/2.45.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.43.0](/java/docs/reference/gax/2.43.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.42.0](/java/docs/reference/gax/2.42.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.41.0](/java/docs/reference/gax/2.41.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.39.0](/java/docs/reference/gax/2.39.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.38.0](/java/docs/reference/gax/2.38.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.37.0](/java/docs/reference/gax/2.37.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.36.0](/java/docs/reference/gax/2.36.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.35.0](/java/docs/reference/gax/2.35.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.34.1](/java/docs/reference/gax/2.34.1/com.google.api.gax.tracing.MetricsRecorder)\n- [2.33.0](/java/docs/reference/gax/2.33.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.32.1](/java/docs/reference/gax/2.32.1/com.google.api.gax.tracing.MetricsRecorder)\n- [2.31.1](/java/docs/reference/gax/2.31.1/com.google.api.gax.tracing.MetricsRecorder)\n- [2.30.1](/java/docs/reference/gax/2.30.1/com.google.api.gax.tracing.MetricsRecorder)\n- [2.24.0](/java/docs/reference/gax/2.24.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.23.3](/java/docs/reference/gax/2.23.3/com.google.api.gax.tracing.MetricsRecorder)\n- [2.22.0](/java/docs/reference/gax/2.22.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.21.0](/java/docs/reference/gax/2.21.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.20.1](/java/docs/reference/gax/2.20.1/com.google.api.gax.tracing.MetricsRecorder)\n- [2.19.6](/java/docs/reference/gax/2.19.6/com.google.api.gax.tracing.MetricsRecorder)\n- [2.18.7](/java/docs/reference/gax/2.18.7/com.google.api.gax.tracing.MetricsRecorder)\n- [2.17.0](/java/docs/reference/gax/2.17.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.16.0](/java/docs/reference/gax/2.16.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.15.0](/java/docs/reference/gax/2.15.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.14.0](/java/docs/reference/gax/2.14.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.13.0](/java/docs/reference/gax/2.13.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.12.2](/java/docs/reference/gax/2.12.2/com.google.api.gax.tracing.MetricsRecorder)\n- [2.11.0](/java/docs/reference/gax/2.11.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.10.0](/java/docs/reference/gax/2.10.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.9.0](/java/docs/reference/gax/2.9.0/com.google.api.gax.tracing.MetricsRecorder)\n- [2.8.1](/java/docs/reference/gax/2.8.1/com.google.api.gax.tracing.MetricsRecorder)\n- [2.7.1](/java/docs/reference/gax/2.7.1/com.google.api.gax.tracing.MetricsRecorder) \n| **Beta**\n|\n|\n| This library is covered by the [Pre-GA Offerings Terms](/terms/service-terms#1)\n| of the Terms of Service. Pre-GA libraries might have limited support,\n| and changes to pre-GA libraries might not be compatible with other pre-GA versions.\n| For more information, see the\n[launch stage descriptions](/products#product-launch-stages). \n\n public interface MetricsRecorder\n\nProvides an interface for metrics recording. The implementer is expected to use an observability\nframework, e.g. OpenTelemetry. There should be only one instance of MetricsRecorder per client,\nall the methods in this class are expected to be called from multiple threads, hence the\nimplementation must be thread safe.\n\nMethods\n-------\n\n### recordAttemptCount(long count, Map\\\u003cString,String\\\u003e attributes)\n\n public default void recordAttemptCount(long count, Map\u003cString,String\u003e attributes)\n\nRecords the count of RPC attempts\n\n### recordAttemptLatency(double attemptLatency, Map\\\u003cString,String\\\u003e attributes)\n\n public default void recordAttemptLatency(double attemptLatency, Map\u003cString,String\u003e attributes)\n\nRecords the latency of an RPC attempt\n\n### recordOperationCount(long count, Map\\\u003cString,String\\\u003e attributes)\n\n public default void recordOperationCount(long count, Map\u003cString,String\u003e attributes)\n\nRecords the count of operations\n\n### recordOperationLatency(double operationLatency, Map\\\u003cString,String\\\u003e attributes)\n\n public default void recordOperationLatency(double operationLatency, Map\u003cString,String\u003e attributes)\n\nRecords the total end-to-end latency for an operation, including the initial RPC attempts and\nsubsequent retries."]]