From ce45397c5673673ccabec994cb4afe58ce3bb241 Mon Sep 17 00:00:00 2001 From: hailin0 Date: Sun, 15 Aug 2021 21:55:45 +0800 Subject: [PATCH] Fix kafka-reporter-plugin shade package conflict (#7463) * Fix kafka-reporter-plugin shade package conflict Don't shade lz4, snappy or zstd package because they call native library files. --- CHANGES.md | 1 + .../kafka-reporter-plugin/pom.xml | 75 +++++++++++-------- .../How-to-enable-kafka-reporter.md | 2 + .../e2e-test/docker/kafka/Dockerfile.provider | 2 + 4 files changed, 48 insertions(+), 32 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index efb4f49b0..8f7c72976 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -15,6 +15,7 @@ Release Notes. * Support Multiple DNS period resolving mechanism * Modify `Tags.STATUS_CODE` field name to `Tags.HTTP_RESPONSE_STATUS_CODE` and type from `StringTag` to `IntegerTag`, add `Tags.RPC_RESPONSE_STATUS_CODE` field to hold rpc response code value. +* Fix kafka-reporter-plugin shade package conflict #### OAP-Backend diff --git a/apm-sniffer/optional-reporter-plugins/kafka-reporter-plugin/pom.xml b/apm-sniffer/optional-reporter-plugins/kafka-reporter-plugin/pom.xml index 6b1a1c665..c60ac2043 100644 --- a/apm-sniffer/optional-reporter-plugins/kafka-reporter-plugin/pom.xml +++ b/apm-sniffer/optional-reporter-plugins/kafka-reporter-plugin/pom.xml @@ -52,6 +52,13 @@ true true true + + + org.xerial.snappy:snappy-java + org.lz4:lz4-java + com.github.luben:zstd-jni + + org.apache.kafka @@ -69,38 +76,6 @@ org.slf4j ${shade.package}/org.slf4j - - org.xerial - ${shade.package}/org.xerial - - - net.jpountz - ${shade.package}/net.jpountz - - - aix.ppc64 - ${shade.package}/aix.ppc64 - - - com.github.luben - ${shade.package}/com.github.luben - - - darwin - ${shade.package}/darwin - - - include - ${shade.package}/include - - - linux - ${shade.package}/linux - - - win - ${shade.package}/win - @@ -150,6 +125,42 @@ + + org.apache.maven.plugins + maven-dependency-plugin + ${maven-dependency-plugin.version} + + + copy + package + + copy + + + + + org.xerial.snappy + snappy-java + 1.1.7.3 + ${optional.reporter.plugins.dest.dir} + + + org.lz4 + lz4-java + 1.6.0 + ${optional.reporter.plugins.dest.dir} + + + com.github.luben + zstd-jni + 1.4.3-1 + ${optional.reporter.plugins.dest.dir} + + + + + + diff --git a/docs/en/setup/service-agent/java-agent/How-to-enable-kafka-reporter.md b/docs/en/setup/service-agent/java-agent/How-to-enable-kafka-reporter.md index 7e7b8245a..baf9c6985 100644 --- a/docs/en/setup/service-agent/java-agent/How-to-enable-kafka-reporter.md +++ b/docs/en/setup/service-agent/java-agent/How-to-enable-kafka-reporter.md @@ -2,6 +2,8 @@ The Kafka reporter plugin support report traces, JVM metrics, Instance Properties, and profiled snapshots to Kafka cluster, which is disabled in default. Move the jar of the plugin, `kafka-reporter-plugin-x.y.z.jar`, from `agent/optional-reporter-plugins` to `agent/plugins` for activating. +If you configure to use `compression.type` such as `lz4`, `zstd`, `snappy`, etc., you also need to move the jar of the plugin, `lz4-java-x.y.z.jar` or `zstd-jni-x.y.z.jar` or `snappy-java.x.y.z.jar`, from `agent/optional-reporter-plugins` to `agent/plugins`. + Notice, currently, the agent still needs to configure GRPC receiver for delivering the task of profiling. In other words, the following configure cannot be omitted. ```properties diff --git a/test/e2e/e2e-test/docker/kafka/Dockerfile.provider b/test/e2e/e2e-test/docker/kafka/Dockerfile.provider index 3e61dc06e..916a9b278 100644 --- a/test/e2e/e2e-test/docker/kafka/Dockerfile.provider +++ b/test/e2e/e2e-test/docker/kafka/Dockerfile.provider @@ -27,6 +27,7 @@ RUN mv apache-skywalking-apm-bin/* . || true RUN sed -i 's/# plugin.kafka.bootstrap_servers/plugin.kafka.bootstrap_servers/g' agent/config/agent.config RUN echo 'plugin.kafka.get_topic_timeout=${SW_GET_TOPIC_TIMEOUT:60}' >> agent/config/agent.config +RUN echo 'plugin.kafka.producer_config[compression.type]=snappy' >> agent/config/agent.config # add log reporter configuration RUN echo 'plugin.toolkit.log.grpc.reporter.server_host=${SW_GRPC_LOG_SERVER_HOST:oap}' >> agent/config/agent.config @@ -34,6 +35,7 @@ RUN echo 'plugin.toolkit.log.grpc.reporter.server_port=${SW_GRPC_LOG_SERVER_PORT # activate kafka-reporter plugin RUN mv agent/optional-reporter-plugins/kafka-reporter-plugin-*.jar agent/plugins/ || true +RUN mv agent/optional-reporter-plugins/snappy-java-*.jar agent/plugins/ || true VOLUME /services