Skip to content

Commit a9e2e68

Browse files
authored
[OpenTelemetry] Add OpenTelemetry options to SdkHarnessOptions (#36716)
* Add OpenTelemetry options to SdkHarnessOptions * Add missing dependency licenses
1 parent 388e5e5 commit a9e2e68

File tree

5 files changed

+43
-0
lines changed

5 files changed

+43
-0
lines changed

buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,8 @@ class BeamModulePlugin implements Plugin<Project> {
634634
def nemo_version = "0.1"
635635
// [bomupgrader] determined by: io.grpc:grpc-netty, consistent with: google_cloud_platform_libraries_bom
636636
def netty_version = "4.1.110.Final"
637+
// [bomupgrader] determined by: io.opentelemetry:opentelemetry-sdk, consistent with: google_cloud_platform_libraries_bom
638+
def opentelemetry_version = "1.47.0"
637639
def postgres_version = "42.2.16"
638640
// [bomupgrader] determined by: com.google.protobuf:protobuf-java, consistent with: google_cloud_platform_libraries_bom
639641
def protobuf_version = "4.33.0"
@@ -853,6 +855,8 @@ class BeamModulePlugin implements Plugin<Project> {
853855
netty_tcnative_boringssl_static : "io.netty:netty-tcnative-boringssl-static:2.0.52.Final",
854856
netty_transport : "io.netty:netty-transport:$netty_version",
855857
netty_transport_native_epoll : "io.netty:netty-transport-native-epoll:$netty_version",
858+
opentelemetry_api : "io.opentelemetry:opentelemetry-api", // google_cloud_platform_libraries_bom sets version
859+
opentelemetry_bom : "io.opentelemetry:opentelemetry-bom-alpha:$opentelemetry_version-alpha", // alpha required by extensions
856860
postgres : "org.postgresql:postgresql:$postgres_version",
857861
protobuf_java : "com.google.protobuf:protobuf-java:$protobuf_version",
858862
protobuf_java_util : "com.google.protobuf:protobuf-java-util:$protobuf_version",

scripts/tools/bomupgrader.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ class BeamModulePluginProcessor:
5252
"grpc":
5353
"io.grpc:grpc-netty", # use "grpc-netty" to pick up proper netty version
5454
"netty": "io.netty:netty-transport",
55+
"opentelemetry": "io.opentelemetry:opentelemetry-sdk",
5556
"protobuf": "com.google.protobuf:protobuf-java"
5657
}
5758
# dependencies managed by GCP-BOM that used the dependencies in KNOWN_DEPS

sdks/java/container/license_scripts/dep_urls_java.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,14 @@ org.eclipse.jgit:
6565
'4.4.1.201607150455-r':
6666
license: "https://www.eclipse.org/org/documents/edl-v10.html"
6767
type: "Eclipse Distribution License - v1.0"
68+
opentelemetry-bom:
69+
'1.47.0':
70+
license: "https://raw.githubusercontent.com/open-telemetry/opentelemetry-java/v1.47.0/LICENSE"
71+
type: "Apache License 2.0"
72+
opentelemetry-bom-alpha:
73+
'1.47.0-alpha':
74+
license: "https://raw.githubusercontent.com/open-telemetry/opentelemetry-java/v1.47.0/LICENSE"
75+
type: "Apache License 2.0"
6876
zstd-jni:
6977
'1.5.2-5':
7078
license: "https://raw.githubusercontent.com/luben/zstd-jni/master/LICENSE"

sdks/java/core/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ dependencies {
9696
shadow library.java.jackson_core
9797
shadow library.java.jackson_annotations
9898
shadow library.java.jackson_databind
99+
shadow platform(library.java.opentelemetry_bom)
100+
shadow library.java.opentelemetry_api
99101
shadow library.java.slf4j_api
100102
shadow library.java.snappy_java
101103
shadow library.java.joda_time

sdks/java/core/src/main/java/org/apache/beam/sdk/options/SdkHarnessOptions.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
import static org.apache.beam.vendor.guava.v32_1_2_jre.com.google.common.base.Preconditions.checkNotNull;
2121

2222
import com.fasterxml.jackson.annotation.JsonCreator;
23+
import com.fasterxml.jackson.annotation.JsonIgnore;
24+
import io.opentelemetry.api.GlobalOpenTelemetry;
25+
import io.opentelemetry.api.OpenTelemetry;
2326
import java.time.Duration;
2427
import java.util.ArrayList;
2528
import java.util.Arrays;
@@ -452,4 +455,29 @@ public Duration create(PipelineOptions options) {
452455
List<String> getAvroSerializableClasses();
453456

454457
void setAvroSerializableClasses(List<String> options);
458+
459+
/**
460+
* The OpenTelemetry properties that will be appended to the set of system properties for SDK
461+
* harness instances. Property names must be specified without the 'otel.' prefix.
462+
*/
463+
@Description(
464+
"The OpenTelemetry properties that will be appended to the set of system properties for SDK "
465+
+ "harness instances. Property names must be specified without the 'otel.' prefix.")
466+
Map<String, String> getOpenTelemetryProperties();
467+
468+
void setOpenTelemetryProperties(Map<String, String> value);
469+
470+
@JsonIgnore
471+
@Hidden
472+
@Default.InstanceFactory(GlobalOpenTelemetryFactory.class)
473+
OpenTelemetry getOpenTelemetry();
474+
475+
void setOpenTelemetry(OpenTelemetry value);
476+
477+
class GlobalOpenTelemetryFactory implements DefaultValueFactory<OpenTelemetry> {
478+
@Override
479+
public OpenTelemetry create(PipelineOptions options) {
480+
return GlobalOpenTelemetry.get();
481+
}
482+
}
455483
}

0 commit comments

Comments
 (0)