@@ -164,6 +164,7 @@ public class SpannerOptions extends ServiceOptions<Spanner, SpannerOptions> {
164
164
private final boolean enableBuiltInMetrics ;
165
165
private final boolean enableExtendedTracing ;
166
166
private final boolean enableEndToEndTracing ;
167
+ private final String monitoringHost ;
167
168
168
169
enum TracingFramework {
169
170
OPEN_CENSUS ,
@@ -672,6 +673,7 @@ protected SpannerOptions(Builder builder) {
672
673
enableExtendedTracing = builder .enableExtendedTracing ;
673
674
enableBuiltInMetrics = builder .enableBuiltInMetrics ;
674
675
enableEndToEndTracing = builder .enableEndToEndTracing ;
676
+ monitoringHost = builder .monitoringHost ;
675
677
}
676
678
677
679
/**
@@ -712,6 +714,10 @@ default boolean isEnableBuiltInMetrics() {
712
714
default boolean isEnableEndToEndTracing () {
713
715
return false ;
714
716
}
717
+
718
+ default String getMonitoringHost () {
719
+ return null ;
720
+ }
715
721
}
716
722
717
723
/**
@@ -728,6 +734,7 @@ private static class SpannerEnvironmentImpl implements SpannerEnvironment {
728
734
private static final String SPANNER_ENABLE_END_TO_END_TRACING =
729
735
"SPANNER_ENABLE_END_TO_END_TRACING" ;
730
736
private static final String SPANNER_DISABLE_BUILTIN_METRICS = "SPANNER_DISABLE_BUILTIN_METRICS" ;
737
+ private static final String SPANNER_MONITORING_HOST = "SPANNER_MONITORING_HOST" ;
731
738
732
739
private SpannerEnvironmentImpl () {}
733
740
@@ -763,6 +770,11 @@ public boolean isEnableBuiltInMetrics() {
763
770
public boolean isEnableEndToEndTracing () {
764
771
return Boolean .parseBoolean (System .getenv (SPANNER_ENABLE_END_TO_END_TRACING ));
765
772
}
773
+
774
+ @ Override
775
+ public String getMonitoringHost () {
776
+ return System .getenv (SPANNER_MONITORING_HOST );
777
+ }
766
778
}
767
779
768
780
/** Builder for {@link SpannerOptions} instances. */
@@ -828,6 +840,7 @@ public static class Builder
828
840
private boolean enableExtendedTracing = SpannerOptions .environment .isEnableExtendedTracing ();
829
841
private boolean enableEndToEndTracing = SpannerOptions .environment .isEnableEndToEndTracing ();
830
842
private boolean enableBuiltInMetrics = SpannerOptions .environment .isEnableBuiltInMetrics ();
843
+ private String monitoringHost = SpannerOptions .environment .getMonitoringHost ();
831
844
832
845
private static String createCustomClientLibToken (String token ) {
833
846
return token + " " + ServiceOptions .getGoogApiClientLibName ();
@@ -895,6 +908,7 @@ protected Builder() {
895
908
this .enableExtendedTracing = options .enableExtendedTracing ;
896
909
this .enableBuiltInMetrics = options .enableBuiltInMetrics ;
897
910
this .enableEndToEndTracing = options .enableEndToEndTracing ;
911
+ this .monitoringHost = options .monitoringHost ;
898
912
}
899
913
900
914
@ Override
@@ -1417,6 +1431,12 @@ public Builder setBuiltInMetricsEnabled(boolean enableBuiltInMetrics) {
1417
1431
return this ;
1418
1432
}
1419
1433
1434
+ /** Sets the monitoring host to be used for Built-in client side metrics */
1435
+ public Builder setMonitoringHost (String monitoringHost ) {
1436
+ this .monitoringHost = monitoringHost ;
1437
+ return this ;
1438
+ }
1439
+
1420
1440
/**
1421
1441
* Sets whether to enable extended OpenTelemetry tracing. Enabling this option will add the
1422
1442
* following additional attributes to the traces that are generated by the client:
@@ -1727,7 +1747,7 @@ private ApiTracerFactory getDefaultApiTracerFactory() {
1727
1747
private ApiTracerFactory createMetricsApiTracerFactory () {
1728
1748
OpenTelemetry openTelemetry =
1729
1749
this .builtInOpenTelemetryMetricsProvider .getOrCreateOpenTelemetry (
1730
- this .getProjectId (), getCredentials ());
1750
+ this .getProjectId (), getCredentials (), this . monitoringHost );
1731
1751
1732
1752
return openTelemetry != null
1733
1753
? new MetricsTracerFactory (
@@ -1754,6 +1774,11 @@ public boolean isEnableBuiltInMetrics() {
1754
1774
return enableBuiltInMetrics ;
1755
1775
}
1756
1776
1777
+ /** Returns the override metrics Host. */
1778
+ String getMonitoringHost () {
1779
+ return monitoringHost ;
1780
+ }
1781
+
1757
1782
@ BetaApi
1758
1783
public boolean isUseVirtualThreads () {
1759
1784
return useVirtualThreads ;
0 commit comments