void recordFinishedAttempt() {
            Tags attemptMetricTags =
                    Tags.of("grpc.method", fullMethodName,
                            "grpc.status", statusCode.toString(),
                            INSTRUMENTATION_SOURCE_TAG_KEY, Constants.LIBRARY_NAME,
                            INSTRUMENTATION_VERSION_TAG_KEY, Constants.VERSION);
            this.metricsClientMeters.getClientAttemptDuration()
                    .withTags(attemptMetricTags)
                    .record(attemptNanos, TimeUnit.NANOSECONDS);
            this.metricsClientMeters.getSentMessageSizeDistribution()
                    .withTags(attemptMetricTags)
                    .record(outboundWireSize);
            this.metricsClientMeters.getReceivedMessageSizeDistribution()
                    .withTags(attemptMetricTags)
                    .record(inboundWireSize);
        }
Provides factories for {@link io.grpc.StreamTracer} that records metrics.

<p>
On the client-side, a factory is created for each call, and the factory creates a stream tracer for each attempt.

<b>Note:</b> This class uses experimental grpc-java-API features.
grpc-client-spring-boot-starter/src/main/java/net/devh/boot/grpc/client/metrics/MetricsClientStreamTracers.java