This is an OpenTelemetry extension to instrument Apache Spark application. This is not be confused with the existing OpenTelemetry Spark web framework auto instrumentation.
opentelemetry-javaagent.jar
and this extension opentelemetry-spark-all-<version>.jar
to all YARN node
manager hosts.spark.driver.extraJavaOptions
and spark.executor.extraJavaOptions
.For example,
/path/to/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
--executor-memory 2g \
--executor-cores 1 \
--conf spark.executor.instances=2 \
--conf "spark.driver.extraJavaOptions=-javaagent:/path/to/opentelemetry-javaagent.jar -Dotel.javaagent.extensions=/path/to/opentelemetry-spark-0.1.0-all.jar -Dotel.traces.exporter=otlp -Dotel.metrics.exporter=otlp -Dotel.logs.exporter=otlp -Dotel.java.global-autoconfigure.enabled=true" \
--conf "spark.executor.extraJavaOptions=-javaagent:/path/to/opentelemetry-javaagent.jar -Dotel.javaagent.extensions=/path/to/opentelemetry-spark-0.1.0-all.jar -Dotel.traces.exporter=otlp -Dotel.metrics.exporter=otlp -Dotel.logs.exporter=otlp -Dotel.java.global-autoconfigure.enabled=true" \
/path/to/spark-examples_2.11-2.4.8.jar
To build extension project, run ./gradlew build
. The resulting jar file in build/libs
.