This is an automated email from the ASF dual-hosted git repository.

stankiewicz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new 61dd18e6886 set default otel.service.instance.id (#40353)
61dd18e6886 is described below

commit 61dd18e68869a55ff39b35a3b01a842155025889
Author: RadosÅ‚aw Stankiewicz <[email protected]>
AuthorDate: Mon Oct 12 16:13:21 2026 +0200

    set default otel.service.instance.id (#40353)
---
 .../dataflow/worker/StreamingDataflowWorker.java   | 18 +---------------
 .../apache/beam/sdk/options/SdkHarnessOptions.java | 24 ++++++++++++++++++++++
 .../java/org/apache/beam/fn/harness/FnHarness.java | 18 +---------------
 3 files changed, 26 insertions(+), 34 deletions(-)

diff --git 
a/runners/google-cloud-dataflow-java/worker/src/main/java/org/apache/beam/runners/dataflow/worker/StreamingDataflowWorker.java
 
b/runners/google-cloud-dataflow-java/worker/src/main/java/org/apache/beam/runners/dataflow/worker/StreamingDataflowWorker.java
index b6aaaf76271..fd00cea775f 100644
--- 
a/runners/google-cloud-dataflow-java/worker/src/main/java/org/apache/beam/runners/dataflow/worker/StreamingDataflowWorker.java
+++ 
b/runners/google-cloud-dataflow-java/worker/src/main/java/org/apache/beam/runners/dataflow/worker/StreamingDataflowWorker.java
@@ -1082,23 +1082,7 @@ public final class StreamingDataflowWorker {
       WindowedValues.FullWindowedValueCoder.setMetadataSupported();
     }
 
-    SdkHarnessOptions sdkHarnessOptions = options.as(SdkHarnessOptions.class);
-    Map<String, String> openTelemetryProperties = 
sdkHarnessOptions.getOpenTelemetryProperties();
-    if (openTelemetryProperties != null && !openTelemetryProperties.isEmpty()) 
{
-      openTelemetryProperties.forEach(
-          (k, v) -> {
-            if (k != null && v != null) {
-              System.setProperty(k, v);
-            }
-          });
-      LOG.info("Enabled Open Telemetry with properties: {}", 
openTelemetryProperties);
-    } else {
-      // turn off auth extension so it doesn't interfere if user is 
configuring otel e.g. via
-      // JvmInitializer.
-      if (System.getProperty("google.otel.auth.target.signals") == null) {
-        System.setProperty("google.otel.auth.target.signals", "none");
-      }
-    }
+    SdkHarnessOptions.configureOpenTelemetry(options);
 
     LOG.debug("Creating StreamingDataflowWorker from options: {}", options);
     StreamingDataflowWorker worker = 
StreamingDataflowWorker.fromOptions(options);
diff --git 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/options/SdkHarnessOptions.java
 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/options/SdkHarnessOptions.java
index 531c86ef043..0fcd770c1d1 100644
--- 
a/sdks/java/core/src/main/java/org/apache/beam/sdk/options/SdkHarnessOptions.java
+++ 
b/sdks/java/core/src/main/java/org/apache/beam/sdk/options/SdkHarnessOptions.java
@@ -30,6 +30,7 @@ import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 import java.util.logging.Level;
 import java.util.logging.LogManager;
 import java.util.logging.Logger;
@@ -475,6 +476,29 @@ public interface SdkHarnessOptions extends 
PipelineOptions, MemoryMonitorOptions
 
   void setOpenTelemetryProperties(Map<String, String> value);
 
+  static void configureOpenTelemetry(PipelineOptions options) {
+    SdkHarnessOptions sdkHarnessOptions = options.as(SdkHarnessOptions.class);
+    Map<String, String> openTelemetryProperties = 
sdkHarnessOptions.getOpenTelemetryProperties();
+    if (openTelemetryProperties != null && !openTelemetryProperties.isEmpty()) 
{
+      openTelemetryProperties.forEach(
+          (k, v) -> {
+            if (k != null && v != null) {
+              System.setProperty(k, v);
+            }
+          });
+      if (System.getProperty("otel.service.instance.id") == null) {
+        String instanceId = UUID.randomUUID().toString();
+        System.setProperty("otel.service.instance.id", instanceId);
+      }
+    } else {
+      // turn off auth extension so it doesn't interfere if user is 
configuring otel e.g. via
+      // JvmInitializer.
+      if (System.getProperty("google.otel.auth.target.signals") == null) {
+        System.setProperty("google.otel.auth.target.signals", "none");
+      }
+    }
+  }
+
   @JsonIgnore
   @Hidden
   @Default.InstanceFactory(GlobalOpenTelemetryFactory.class)
diff --git 
a/sdks/java/harness/src/main/java/org/apache/beam/fn/harness/FnHarness.java 
b/sdks/java/harness/src/main/java/org/apache/beam/fn/harness/FnHarness.java
index 7bda0e18cad..63f6c41b5a7 100644
--- a/sdks/java/harness/src/main/java/org/apache/beam/fn/harness/FnHarness.java
+++ b/sdks/java/harness/src/main/java/org/apache/beam/fn/harness/FnHarness.java
@@ -305,23 +305,7 @@ public class FnHarness {
       // Register standard file systems.
       FileSystems.setDefaultPipelineOptions(options);
       CoderTranslation.verifyModelCodersRegistered();
-      SdkHarnessOptions sdkHarnessOptions = 
options.as(SdkHarnessOptions.class);
-      Map<String, String> openTelemetryProperties = 
sdkHarnessOptions.getOpenTelemetryProperties();
-      if (openTelemetryProperties != null && 
!openTelemetryProperties.isEmpty()) {
-        openTelemetryProperties.forEach(
-            (k, v) -> {
-              if (k != null && v != null) {
-                System.setProperty(k, v);
-              }
-            });
-        LOG.info("Enabled Open Telemetry with properties: {}", 
openTelemetryProperties);
-      } else {
-        // turn off auth extension so it doesn't interfere if user is 
configuring otel e.g. via
-        // JvmInitializer.
-        if (System.getProperty("google.otel.auth.target.signals") == null) {
-          System.setProperty("google.otel.auth.target.signals", "none");
-        }
-      }
+      SdkHarnessOptions.configureOpenTelemetry(options);
       EnumMap<
               BeamFnApi.InstructionRequest.RequestCase,
               ThrowingFunction<InstructionRequest, 
BeamFnApi.InstructionResponse.Builder>>

Reply via email to