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>>