diff --git a/gcloud-java-logging/src/main/java/com/google/cloud/logging/spi/DefaultLoggingRpc.java b/gcloud-java-logging/src/main/java/com/google/cloud/logging/spi/DefaultLoggingRpc.java index 0cdccb9de317..ae6825c9fa27 100644 --- a/gcloud-java-logging/src/main/java/com/google/cloud/logging/spi/DefaultLoggingRpc.java +++ b/gcloud-java-logging/src/main/java/com/google/cloud/logging/spi/DefaultLoggingRpc.java @@ -16,6 +16,8 @@ package com.google.cloud.logging.spi; +import static com.google.common.base.MoreObjects.firstNonNull; + import com.google.api.gax.core.RetrySettings; import com.google.api.gax.grpc.ApiCallSettings; import com.google.api.gax.grpc.ApiException; @@ -97,13 +99,18 @@ protected ExecutorFactory executorFactory() { public DefaultLoggingRpc(LoggingOptions options) throws IOException { executorFactory = new InternalLoggingOptions(options).executorFactory(); executor = executorFactory.get(); + String libraryName = options.libraryName(); + String libraryVersion = firstNonNull(options.libraryVersion(), ""); try { - ConfigServiceV2Settings.Builder confBuilder = - ConfigServiceV2Settings.defaultBuilder().provideExecutorWith(executor, false); - LoggingServiceV2Settings.Builder logBuilder = - LoggingServiceV2Settings.defaultBuilder().provideExecutorWith(executor, false); - MetricsServiceV2Settings.Builder metricsBuilder = - MetricsServiceV2Settings.defaultBuilder().provideExecutorWith(executor, false); + ConfigServiceV2Settings.Builder confBuilder = ConfigServiceV2Settings.defaultBuilder() + .provideExecutorWith(executor, false) + .setClientLibHeader(libraryName, libraryVersion); + LoggingServiceV2Settings.Builder logBuilder = LoggingServiceV2Settings.defaultBuilder() + .provideExecutorWith(executor, false) + .setClientLibHeader(libraryName, libraryVersion); + MetricsServiceV2Settings.Builder metricsBuilder = MetricsServiceV2Settings.defaultBuilder() + .provideExecutorWith(executor, false) + .setClientLibHeader(libraryName, libraryVersion); // todo(mziccard): PublisherSettings should support null/absent credentials for testing if (options.host().contains("localhost") || options.authCredentials().equals(AuthCredentials.noAuth())) {