From 352214cd69d770eb244d60c15dbc3d1c13de3456 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Wed, 7 Aug 2024 11:47:21 +0800 Subject: [PATCH 01/22] powerjob step1 --- .../powerjob-4.0/javaagent/build.gradle.kts | 25 +++++++ .../v_4_0_0/PowerJobCodeAttributesGetter.java | 24 +++++++ ...owerJobExperimentalAttributeExtractor.java | 42 ++++++++++++ .../powerjob/v_4_0_0/PowerJobHelper.java | 62 +++++++++++++++++ .../PowerJobInstrumentationModule.java | 25 +++++++ .../v_4_0_0/PowerJobInstrumenterFactory.java | 48 +++++++++++++ .../v_4_0_0/PowerJobProcessRequest.java | 64 +++++++++++++++++ .../powerjob/v_4_0_0/PowerJobSingletons.java | 30 ++++++++ .../v_4_0_0/PowerJobSpanNameExtractor.java | 24 +++++++ .../SimpleProcessorInstrumentation.java | 68 +++++++++++++++++++ settings.gradle.kts | 1 + 11 files changed, 413 insertions(+) create mode 100644 instrumentation/powerjob-4.0/javaagent/build.gradle.kts create mode 100644 instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobCodeAttributesGetter.java create mode 100644 instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobExperimentalAttributeExtractor.java create mode 100644 instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobHelper.java create mode 100644 instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumentationModule.java create mode 100644 instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumenterFactory.java create mode 100644 instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobProcessRequest.java create mode 100644 instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSingletons.java create mode 100644 instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSpanNameExtractor.java create mode 100644 instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/SimpleProcessorInstrumentation.java diff --git a/instrumentation/powerjob-4.0/javaagent/build.gradle.kts b/instrumentation/powerjob-4.0/javaagent/build.gradle.kts new file mode 100644 index 000000000000..f3a65e2ace59 --- /dev/null +++ b/instrumentation/powerjob-4.0/javaagent/build.gradle.kts @@ -0,0 +1,25 @@ +plugins { + id("otel.javaagent-instrumentation") +} + +muzzle { + pass { + group.set("tech.powerjob") + module.set("powerjob-worker") + versions.set("[4.0.0,)") + assertInverse.set(true) + } +} + + + +dependencies { + library("tech.powerjob:powerjob-worker:4.0.0") +} + +tasks.withType().configureEach { + // required on jdk17 + jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED") + jvmArgs("-XX:+IgnoreUnrecognizedVMOptions") + jvmArgs("-Dotel.instrumentation.powerjob.experimental-span-attributes=true") +} diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobCodeAttributesGetter.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobCodeAttributesGetter.java new file mode 100644 index 000000000000..74ca29c7e729 --- /dev/null +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobCodeAttributesGetter.java @@ -0,0 +1,24 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; + +import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeAttributesGetter; +import javax.annotation.Nullable; + +class PowerJobCodeAttributesGetter implements CodeAttributesGetter { + + @Nullable + @Override + public Class getCodeClass(PowerJobProcessRequest powerJobProcessRequest) { + return powerJobProcessRequest.getDeclaringClass(); + } + + @Nullable + @Override + public String getMethodName(PowerJobProcessRequest powerJobProcessRequest) { + return powerJobProcessRequest.getMethodName(); + } +} diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobExperimentalAttributeExtractor.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobExperimentalAttributeExtractor.java new file mode 100644 index 000000000000..54409ee67bad --- /dev/null +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobExperimentalAttributeExtractor.java @@ -0,0 +1,42 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; + +import io.opentelemetry.api.common.AttributeKey; +import io.opentelemetry.api.common.AttributesBuilder; +import io.opentelemetry.context.Context; +import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; +import javax.annotation.Nullable; + +class PowerJobExperimentalAttributeExtractor + implements AttributesExtractor { + + + private static final AttributeKey POWERJOB_JOB_ID = + AttributeKey.longKey("scheduling.powerjob.job.id"); + private static final AttributeKey POWERJOB_JOB_PARAM = + AttributeKey.stringKey("scheduling.powerjob.job.param"); + private static final AttributeKey POWERJOB_JOB_INSTANCE_PARAM = + AttributeKey.stringKey("scheduling.powerjob.job.instance.param"); + + @Override + public void onStart( + AttributesBuilder attributes, + Context parentContext, + PowerJobProcessRequest powerJobProcessRequest) { + attributes.put(POWERJOB_JOB_ID, powerJobProcessRequest.getJobId()); + attributes.put(POWERJOB_JOB_PARAM, powerJobProcessRequest.getJobParams()); + attributes.put(POWERJOB_JOB_INSTANCE_PARAM, powerJobProcessRequest.getInstanceParams()); + } + + @Override + public void onEnd( + AttributesBuilder attributes, + Context context, + PowerJobProcessRequest powerJobProcessRequest, + @Nullable Void unused, + @Nullable Throwable error) {} +} diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobHelper.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobHelper.java new file mode 100644 index 000000000000..8c396ec6f76e --- /dev/null +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobHelper.java @@ -0,0 +1,62 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; + +import io.opentelemetry.context.Context; +import io.opentelemetry.context.Scope; +import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; +import java.util.function.Predicate; +import tech.powerjob.worker.core.processor.ProcessResult; + +public final class PowerJobHelper { + + private final Instrumenter instrumenter; + + private final Predicate failedStatusPredicate; + + private PowerJobHelper( + Instrumenter instrumenter, + Predicate failedStatusPredicate) { + this.instrumenter = instrumenter; + this.failedStatusPredicate = failedStatusPredicate; + } + + public static PowerJobHelper create( + Instrumenter instrumenter, + Predicate failedStatusPredicate) { + return new PowerJobHelper(instrumenter, failedStatusPredicate); + } + + + public Context startSpan(Context parentContext, PowerJobProcessRequest request) { + if (!instrumenter.shouldStart(parentContext, request)) { + System.out.println("======> SimpleProcessorInstrumentation startSpan return null"); + return null; + } + return instrumenter.start(parentContext, request); + } + + public void stopSpan( + ProcessResult result, + PowerJobProcessRequest request, + Throwable throwable, + Scope scope, + Context context) { + if (scope == null) { + return; + } + if (failedStatusPredicate.test(result)) { + request.setFailed(); + } + scope.close(); + instrumenter.end(context, request, null, throwable); + } + + public void stopSpan( + PowerJobProcessRequest request, Throwable throwable, Scope scope, Context context) { + stopSpan(null, request, throwable, scope, context); + } +} diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumentationModule.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumentationModule.java new file mode 100644 index 000000000000..5980a63b2d08 --- /dev/null +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumentationModule.java @@ -0,0 +1,25 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; + +import static java.util.Arrays.asList; + +import com.google.auto.service.AutoService; +import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; +import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; +import java.util.List; + +@AutoService(InstrumentationModule.class) +public class PowerJobInstrumentationModule extends InstrumentationModule{ + public PowerJobInstrumentationModule() { + super("powerjob", "powerjob-4.0.0"); + } + + @Override + public List typeInstrumentations() { + return asList(new SimpleProcessorInstrumentation()); + } +} diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumenterFactory.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumenterFactory.java new file mode 100644 index 000000000000..93f5a8d0ada5 --- /dev/null +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumenterFactory.java @@ -0,0 +1,48 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; + +import io.opentelemetry.api.GlobalOpenTelemetry; +import io.opentelemetry.api.common.AttributeKey; +import io.opentelemetry.api.trace.StatusCode; +import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeAttributesExtractor; +import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; +import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; +import io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder; +import io.opentelemetry.javaagent.bootstrap.internal.AgentInstrumentationConfig; + +public final class PowerJobInstrumenterFactory { + + static final boolean CAPTURE_EXPERIMENTAL_SPAN_ATTRIBUTES = + AgentInstrumentationConfig.get() + .getBoolean("otel.instrumentation.powerjob.experimental-span-attributes", false); + + public static Instrumenter create(String instrumentationName) { + PowerJobCodeAttributesGetter codeAttributesGetter = new PowerJobCodeAttributesGetter(); + PowerJobSpanNameExtractor spanNameExtractor = new PowerJobSpanNameExtractor(codeAttributesGetter); + + InstrumenterBuilder builder = + Instrumenter.builder( + GlobalOpenTelemetry.get(), instrumentationName, spanNameExtractor) + .addAttributesExtractor(CodeAttributesExtractor.create(codeAttributesGetter)) + .setSpanStatusExtractor( + (spanStatusBuilder, powerJobProcessRequest, response, error) -> { + if (error != null || powerJobProcessRequest.isFailed()) { + spanStatusBuilder.setStatus(StatusCode.ERROR); + } + }); + + if (CAPTURE_EXPERIMENTAL_SPAN_ATTRIBUTES) { + builder.addAttributesExtractor( + AttributesExtractor.constant(AttributeKey.stringKey("job.system"), "powerjob")); + builder.addAttributesExtractor(new PowerJobExperimentalAttributeExtractor()); + } + + return builder.buildInstrumenter(); + } + + private PowerJobInstrumenterFactory() {} +} diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobProcessRequest.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobProcessRequest.java new file mode 100644 index 000000000000..6cb5ecfa9d1f --- /dev/null +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobProcessRequest.java @@ -0,0 +1,64 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; + +public final class PowerJobProcessRequest { + private String methodName; + private final Long jobId; + private Class declaringClass; + + private boolean failed; + + private String jobParams; + private String instanceParams; + + private PowerJobProcessRequest(Long jobId) { + this.jobId = jobId; + } + + public static PowerJobProcessRequest createRequest(Long jobId, Class declaringClass, String methodName) { + PowerJobProcessRequest request = new PowerJobProcessRequest(jobId); + request.methodName = methodName; + request.declaringClass = declaringClass; + return request; + } + + public void setFailed() { + failed = true; + } + + public boolean isFailed() { + return failed; + } + + public String getMethodName() { + return methodName; + } + + public Long getJobId() { + return jobId; + } + + public Class getDeclaringClass() { + return declaringClass; + } + + public String getJobParams() { + return jobParams; + } + + public void setJobParams(String jobParams) { + this.jobParams = jobParams; + } + + public String getInstanceParams() { + return instanceParams; + } + + public void setInstanceParams(String instanceParams) { + this.instanceParams = instanceParams; + } +} diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSingletons.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSingletons.java new file mode 100644 index 000000000000..f8cc9f721288 --- /dev/null +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSingletons.java @@ -0,0 +1,30 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; + +import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; + +public final class PowerJobSingletons { + private static final String INSTRUMENTATION_NAME = "io.opentelemetry.powerjob-4.0.0"; + private static final Instrumenter INSTRUMENTER = + PowerJobInstrumenterFactory.create(INSTRUMENTATION_NAME); + private static final PowerJobHelper HELPER = + PowerJobHelper.create( + INSTRUMENTER, + processResult -> { + if (processResult != null) { + return !processResult.isSuccess(); + } + return false; + }); + + public static PowerJobHelper helper() { + return HELPER; + } + + + private PowerJobSingletons() {} +} diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSpanNameExtractor.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSpanNameExtractor.java new file mode 100644 index 000000000000..6647b8ccfa18 --- /dev/null +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSpanNameExtractor.java @@ -0,0 +1,24 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; + +import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeAttributesGetter; +import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeSpanNameExtractor; +import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor; + +class PowerJobSpanNameExtractor implements SpanNameExtractor { + private final SpanNameExtractor codeSpanNameExtractor; + + PowerJobSpanNameExtractor(CodeAttributesGetter getter) { + codeSpanNameExtractor = CodeSpanNameExtractor.create(getter); + } + + @Override + public String extract(PowerJobProcessRequest request) { + // TODO: 2024/8/6 script call + return codeSpanNameExtractor.extract(request); + } +} diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/SimpleProcessorInstrumentation.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/SimpleProcessorInstrumentation.java new file mode 100644 index 000000000000..d064b4abd516 --- /dev/null +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/SimpleProcessorInstrumentation.java @@ -0,0 +1,68 @@ +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; + +import static io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge.currentContext; +import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.implementsInterface; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobSingletons.helper; +import static net.bytebuddy.matcher.ElementMatchers.isPublic; +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.takesArguments; + +import io.opentelemetry.context.Context; +import io.opentelemetry.context.Scope; +import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; +import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; +import net.bytebuddy.asm.Advice; +import net.bytebuddy.description.type.TypeDescription; +import net.bytebuddy.matcher.ElementMatcher; +import tech.powerjob.worker.core.processor.ProcessResult; +import tech.powerjob.worker.core.processor.TaskContext; +import tech.powerjob.worker.core.processor.sdk.BasicProcessor; + +public class SimpleProcessorInstrumentation implements TypeInstrumentation { + @Override + public ElementMatcher typeMatcher() { + return implementsInterface(named("tech.powerjob.worker.core.processor.sdk.BasicProcessor")); + } + + @Override + public void transform(TypeTransformer transformer) { + transformer.applyAdviceToMethod( + named("process").and(isPublic()).and(takesArguments(1)), + SimpleProcessorInstrumentation.class.getName() + "$ProcessAdvice"); + } + + public static class ProcessAdvice { + + @SuppressWarnings("unused") + @Advice.OnMethodEnter(suppress = Throwable.class) + public static void onSchedule( + @Advice.This BasicProcessor handler, + @Advice.Argument(0) TaskContext taskContext, + @Advice.Local("otelRequest") PowerJobProcessRequest request, + @Advice.Local("otelContext") Context context, + @Advice.Local("otelScope") Scope scope) { + Context parentContext = currentContext(); + Long jobId = taskContext.getJobId(); + request = PowerJobProcessRequest.createRequest(jobId, handler.getClass(), "process"); + request.setInstanceParams(taskContext.getInstanceParams()); + request.setJobParams(taskContext.getJobParams()); + context = helper().startSpan(parentContext, request); + if (context == null) { + return; + } + scope = context.makeCurrent(); + } + + @SuppressWarnings("unused") + @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) + public static void stopSpan( + @Advice.Return ProcessResult result, + @Advice.Thrown Throwable throwable, + @Advice.Local("otelRequest") PowerJobProcessRequest request, + @Advice.Local("otelContext") Context context, + @Advice.Local("otelScope") Scope scope) { + helper().stopSpan(result, request, throwable, scope, context); + } + + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 06ee5fe6f725..255f0c5d8cd9 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -476,6 +476,7 @@ include(":instrumentation:play:play-ws:play-ws-2.0:javaagent") include(":instrumentation:play:play-ws:play-ws-2.1:javaagent") include(":instrumentation:play:play-ws:play-ws-common:javaagent") include(":instrumentation:play:play-ws:play-ws-common:testing") +include("instrumentation:powerjob-4.0:javaagent") include(":instrumentation:pulsar:pulsar-2.8:javaagent") include(":instrumentation:pulsar:pulsar-2.8:javaagent-unit-tests") include(":instrumentation:quarkus-resteasy-reactive:common-testing") From 95acfcf8b18b0ad54073fc8fccf43a9bc1d9cccc Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Wed, 21 Aug 2024 14:21:52 +0800 Subject: [PATCH 02/22] span support job type --- .../powerjob-4.0/javaagent/build.gradle.kts | 1 + ...ava => BasicProcessorInstrumentation.java} | 6 +- .../powerjob/v_4_0_0/PowerJobConstants.java | 24 ++++++++ ...owerJobExperimentalAttributeExtractor.java | 3 + .../PowerJobInstrumentationModule.java | 2 +- .../v_4_0_0/PowerJobProcessRequest.java | 60 ++++++++++++++++++- 6 files changed, 90 insertions(+), 6 deletions(-) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/{SimpleProcessorInstrumentation.java => BasicProcessorInstrumentation.java} (93%) create mode 100644 instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobConstants.java diff --git a/instrumentation/powerjob-4.0/javaagent/build.gradle.kts b/instrumentation/powerjob-4.0/javaagent/build.gradle.kts index f3a65e2ace59..6940aedd0ae9 100644 --- a/instrumentation/powerjob-4.0/javaagent/build.gradle.kts +++ b/instrumentation/powerjob-4.0/javaagent/build.gradle.kts @@ -15,6 +15,7 @@ muzzle { dependencies { library("tech.powerjob:powerjob-worker:4.0.0") + implementation("tech.powerjob:powerjob-official-processors:1.1.0") } tasks.withType().configureEach { diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/SimpleProcessorInstrumentation.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/BasicProcessorInstrumentation.java similarity index 93% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/SimpleProcessorInstrumentation.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/BasicProcessorInstrumentation.java index d064b4abd516..c4c307335b0a 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/SimpleProcessorInstrumentation.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/BasicProcessorInstrumentation.java @@ -18,7 +18,7 @@ import tech.powerjob.worker.core.processor.TaskContext; import tech.powerjob.worker.core.processor.sdk.BasicProcessor; -public class SimpleProcessorInstrumentation implements TypeInstrumentation { +public class BasicProcessorInstrumentation implements TypeInstrumentation { @Override public ElementMatcher typeMatcher() { return implementsInterface(named("tech.powerjob.worker.core.processor.sdk.BasicProcessor")); @@ -28,7 +28,7 @@ public ElementMatcher typeMatcher() { public void transform(TypeTransformer transformer) { transformer.applyAdviceToMethod( named("process").and(isPublic()).and(takesArguments(1)), - SimpleProcessorInstrumentation.class.getName() + "$ProcessAdvice"); + BasicProcessorInstrumentation.class.getName() + "$ProcessAdvice"); } public static class ProcessAdvice { @@ -43,7 +43,7 @@ public static void onSchedule( @Advice.Local("otelScope") Scope scope) { Context parentContext = currentContext(); Long jobId = taskContext.getJobId(); - request = PowerJobProcessRequest.createRequest(jobId, handler.getClass(), "process"); + request = PowerJobProcessRequest.createRequest(jobId, handler, "process"); request.setInstanceParams(taskContext.getInstanceParams()); request.setJobParams(taskContext.getJobParams()); context = helper().startSpan(parentContext, request); diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobConstants.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobConstants.java new file mode 100644 index 000000000000..6276f9b5e7eb --- /dev/null +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobConstants.java @@ -0,0 +1,24 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; + +public final class PowerJobConstants { + + private PowerJobConstants() {} + + public static final String BASIC_PROCESSOR = "BasicProcessor"; + public static final String BROADCAST_PROCESSOR = "BroadcastProcessor"; + public static final String MAP_PROCESSOR = "MapProcessor"; + public static final String MAP_REDUCE_PROCESSOR = "MapReduceProcessor"; + + // Official processors + public static final String SHELL_PROCESSOR = "ShellProcessor"; + public static final String PYTHON_PROCESSOR = "PythonProcessor"; + public static final String HTTP_PROCESSOR = "HttpProcessor"; + public static final String FILE_CLEANUP_PROCESSOR = "FileCleanupProcessor"; + public static final String SPRING_DATASOURCE_SQL_PROCESSOR = "SpringDatasourceSqlProcessor"; + public static final String DYNAMIC_DATASOURCE_SQL_PROCESSOR = "DynamicDatasourceSqlProcessor"; +} diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobExperimentalAttributeExtractor.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobExperimentalAttributeExtractor.java index 54409ee67bad..808a3defc955 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobExperimentalAttributeExtractor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobExperimentalAttributeExtractor.java @@ -21,6 +21,8 @@ class PowerJobExperimentalAttributeExtractor AttributeKey.stringKey("scheduling.powerjob.job.param"); private static final AttributeKey POWERJOB_JOB_INSTANCE_PARAM = AttributeKey.stringKey("scheduling.powerjob.job.instance.param"); + private static final AttributeKey POWERJOB_JOB_INSTANCE_TRPE = + AttributeKey.stringKey("scheduling.powerjob.job.type"); @Override public void onStart( @@ -30,6 +32,7 @@ public void onStart( attributes.put(POWERJOB_JOB_ID, powerJobProcessRequest.getJobId()); attributes.put(POWERJOB_JOB_PARAM, powerJobProcessRequest.getJobParams()); attributes.put(POWERJOB_JOB_INSTANCE_PARAM, powerJobProcessRequest.getInstanceParams()); + attributes.put(POWERJOB_JOB_INSTANCE_TRPE, powerJobProcessRequest.getJobType()); } @Override diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumentationModule.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumentationModule.java index 5980a63b2d08..00b60ab65489 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumentationModule.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumentationModule.java @@ -20,6 +20,6 @@ public PowerJobInstrumentationModule() { @Override public List typeInstrumentations() { - return asList(new SimpleProcessorInstrumentation()); + return asList(new BasicProcessorInstrumentation()); } } diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobProcessRequest.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobProcessRequest.java index 6cb5ecfa9d1f..43027e28b3e9 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobProcessRequest.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobProcessRequest.java @@ -5,9 +5,32 @@ package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.BASIC_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.BROADCAST_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.DYNAMIC_DATASOURCE_SQL_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.FILE_CLEANUP_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.HTTP_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.MAP_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.MAP_REDUCE_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.PYTHON_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.SHELL_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.SPRING_DATASOURCE_SQL_PROCESSOR; + +import tech.powerjob.official.processors.impl.FileCleanupProcessor; +import tech.powerjob.official.processors.impl.HttpProcessor; +import tech.powerjob.official.processors.impl.script.PythonProcessor; +import tech.powerjob.official.processors.impl.script.ShellProcessor; +import tech.powerjob.official.processors.impl.sql.DynamicDatasourceSqlProcessor; +import tech.powerjob.official.processors.impl.sql.SpringDatasourceSqlProcessor; +import tech.powerjob.worker.core.processor.sdk.BasicProcessor; +import tech.powerjob.worker.core.processor.sdk.BroadcastProcessor; +import tech.powerjob.worker.core.processor.sdk.MapProcessor; +import tech.powerjob.worker.core.processor.sdk.MapReduceProcessor; + public final class PowerJobProcessRequest { private String methodName; private final Long jobId; + private String jobType; private Class declaringClass; private boolean failed; @@ -19,10 +42,39 @@ private PowerJobProcessRequest(Long jobId) { this.jobId = jobId; } - public static PowerJobProcessRequest createRequest(Long jobId, Class declaringClass, String methodName) { + public static PowerJobProcessRequest createRequest(Long jobId, BasicProcessor handler, + String methodName) { PowerJobProcessRequest request = new PowerJobProcessRequest(jobId); request.methodName = methodName; - request.declaringClass = declaringClass; + request.declaringClass = handler.getClass(); + request.jobType = BASIC_PROCESSOR; + if (handler instanceof BroadcastProcessor) { + request.jobType = BROADCAST_PROCESSOR; + } + if (handler instanceof MapProcessor) { + request.jobType = MAP_PROCESSOR; + } + if (handler instanceof MapReduceProcessor) { + request.jobType = MAP_REDUCE_PROCESSOR; + } + if (handler instanceof ShellProcessor) { + request.jobType = SHELL_PROCESSOR; + } + if (handler instanceof PythonProcessor) { + request.jobType = PYTHON_PROCESSOR; + } + if (handler instanceof HttpProcessor) { + request.jobType = HTTP_PROCESSOR; + } + if (handler instanceof FileCleanupProcessor) { + request.jobType = FILE_CLEANUP_PROCESSOR; + } + if (handler instanceof SpringDatasourceSqlProcessor) { + request.jobType = SPRING_DATASOURCE_SQL_PROCESSOR; + } + if (handler instanceof DynamicDatasourceSqlProcessor) { + request.jobType = DYNAMIC_DATASOURCE_SQL_PROCESSOR; + } return request; } @@ -61,4 +113,8 @@ public String getInstanceParams() { public void setInstanceParams(String instanceParams) { this.instanceParams = instanceParams; } + + public String getJobType() { + return jobType; + } } From ddacbdc8155d6b8ac8e425f54bfbb2ede31ff3f0 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Thu, 22 Aug 2024 23:14:27 +0800 Subject: [PATCH 03/22] add powerjob test --- ...ntelemetry-instrumentation-annotations.txt | 2 +- .../opentelemetry-instrumentation-api.txt | 2 +- .../powerjob-4.0/javaagent/build.gradle.kts | 2 - .../BasicProcessorInstrumentation.java | 6 +- .../v_4_0_0/PowerJobCodeAttributesGetter.java | 2 +- ...owerJobExperimentalAttributeExtractor.java | 9 +- .../powerjob/v_4_0_0/PowerJobHelper.java | 7 - .../PowerJobInstrumentationModule.java | 4 +- .../v_4_0_0/PowerJobInstrumenterFactory.java | 3 +- .../v_4_0_0/PowerJobProcessRequest.java | 4 +- .../powerjob/v_4_0_0/PowerJobSingletons.java | 3 +- .../v_4_0_0/PowerJobSpanNameExtractor.java | 1 - .../v_4_0_0/PowerJobBasicProcessorTest.java | 458 ++++++++++++++++++ .../v_4_0_0/TestBasicFailProcessor.java | 18 + .../powerjob/v_4_0_0/TestBasicProcessor.java | 18 + .../v_4_0_0/TestBroadcastProcessor.java | 29 ++ .../v_4_0_0/TestMapProcessProcessor.java | 18 + .../TestMapReduceProcessProcessor.java | 25 + 18 files changed, 585 insertions(+), 26 deletions(-) create mode 100644 instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobBasicProcessorTest.java create mode 100644 instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBasicFailProcessor.java create mode 100644 instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBasicProcessor.java create mode 100644 instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBroadcastProcessor.java create mode 100644 instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestMapProcessProcessor.java create mode 100644 instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestMapReduceProcessProcessor.java diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-annotations.txt b/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-annotations.txt index 96e3e62e1bc3..bd1edfa19f1c 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-annotations.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-annotations.txt @@ -1,2 +1,2 @@ Comparing source compatibility of opentelemetry-instrumentation-annotations-2.8.0-SNAPSHOT.jar against opentelemetry-instrumentation-annotations-2.7.0.jar -No changes. \ No newline at end of file +No changes. diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-api.txt b/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-api.txt index c781552c9423..b3792b416020 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-api.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-api.txt @@ -1,2 +1,2 @@ Comparing source compatibility of opentelemetry-instrumentation-api-2.8.0-SNAPSHOT.jar against opentelemetry-instrumentation-api-2.7.0.jar -No changes. \ No newline at end of file +No changes. diff --git a/instrumentation/powerjob-4.0/javaagent/build.gradle.kts b/instrumentation/powerjob-4.0/javaagent/build.gradle.kts index 6940aedd0ae9..73e8d5a6fb4e 100644 --- a/instrumentation/powerjob-4.0/javaagent/build.gradle.kts +++ b/instrumentation/powerjob-4.0/javaagent/build.gradle.kts @@ -11,8 +11,6 @@ muzzle { } } - - dependencies { library("tech.powerjob:powerjob-worker:4.0.0") implementation("tech.powerjob:powerjob-official-processors:1.1.0") diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/BasicProcessorInstrumentation.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/BasicProcessorInstrumentation.java index c4c307335b0a..2e74c78f4323 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/BasicProcessorInstrumentation.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/BasicProcessorInstrumentation.java @@ -1,3 +1,8 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; import static io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge.currentContext; @@ -63,6 +68,5 @@ public static void stopSpan( @Advice.Local("otelScope") Scope scope) { helper().stopSpan(result, request, throwable, scope, context); } - } } diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobCodeAttributesGetter.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobCodeAttributesGetter.java index 74ca29c7e729..c4d23e0d0dcb 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobCodeAttributesGetter.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobCodeAttributesGetter.java @@ -19,6 +19,6 @@ public Class getCodeClass(PowerJobProcessRequest powerJobProcessRequest) { @Nullable @Override public String getMethodName(PowerJobProcessRequest powerJobProcessRequest) { - return powerJobProcessRequest.getMethodName(); + return powerJobProcessRequest.getMethodName(); } } diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobExperimentalAttributeExtractor.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobExperimentalAttributeExtractor.java index 808a3defc955..1da9644d1e2c 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobExperimentalAttributeExtractor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobExperimentalAttributeExtractor.java @@ -14,7 +14,6 @@ class PowerJobExperimentalAttributeExtractor implements AttributesExtractor { - private static final AttributeKey POWERJOB_JOB_ID = AttributeKey.longKey("scheduling.powerjob.job.id"); private static final AttributeKey POWERJOB_JOB_PARAM = @@ -29,10 +28,10 @@ public void onStart( AttributesBuilder attributes, Context parentContext, PowerJobProcessRequest powerJobProcessRequest) { - attributes.put(POWERJOB_JOB_ID, powerJobProcessRequest.getJobId()); - attributes.put(POWERJOB_JOB_PARAM, powerJobProcessRequest.getJobParams()); - attributes.put(POWERJOB_JOB_INSTANCE_PARAM, powerJobProcessRequest.getInstanceParams()); - attributes.put(POWERJOB_JOB_INSTANCE_TRPE, powerJobProcessRequest.getJobType()); + attributes.put(POWERJOB_JOB_ID, powerJobProcessRequest.getJobId()); + attributes.put(POWERJOB_JOB_PARAM, powerJobProcessRequest.getJobParams()); + attributes.put(POWERJOB_JOB_INSTANCE_PARAM, powerJobProcessRequest.getInstanceParams()); + attributes.put(POWERJOB_JOB_INSTANCE_TRPE, powerJobProcessRequest.getJobType()); } @Override diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobHelper.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobHelper.java index 8c396ec6f76e..ef88b5f072ee 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobHelper.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobHelper.java @@ -30,10 +30,8 @@ public static PowerJobHelper create( return new PowerJobHelper(instrumenter, failedStatusPredicate); } - public Context startSpan(Context parentContext, PowerJobProcessRequest request) { if (!instrumenter.shouldStart(parentContext, request)) { - System.out.println("======> SimpleProcessorInstrumentation startSpan return null"); return null; } return instrumenter.start(parentContext, request); @@ -54,9 +52,4 @@ public void stopSpan( scope.close(); instrumenter.end(context, request, null, throwable); } - - public void stopSpan( - PowerJobProcessRequest request, Throwable throwable, Scope scope, Context context) { - stopSpan(null, request, throwable, scope, context); - } } diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumentationModule.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumentationModule.java index 00b60ab65489..965e0898af06 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumentationModule.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumentationModule.java @@ -13,9 +13,9 @@ import java.util.List; @AutoService(InstrumentationModule.class) -public class PowerJobInstrumentationModule extends InstrumentationModule{ +public class PowerJobInstrumentationModule extends InstrumentationModule { public PowerJobInstrumentationModule() { - super("powerjob", "powerjob-4.0.0"); + super("powerjob", "powerjob-4.0"); } @Override diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumenterFactory.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumenterFactory.java index 93f5a8d0ada5..2f05dd502754 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumenterFactory.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumenterFactory.java @@ -22,7 +22,8 @@ public final class PowerJobInstrumenterFactory { public static Instrumenter create(String instrumentationName) { PowerJobCodeAttributesGetter codeAttributesGetter = new PowerJobCodeAttributesGetter(); - PowerJobSpanNameExtractor spanNameExtractor = new PowerJobSpanNameExtractor(codeAttributesGetter); + PowerJobSpanNameExtractor spanNameExtractor = + new PowerJobSpanNameExtractor(codeAttributesGetter); InstrumenterBuilder builder = Instrumenter.builder( diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobProcessRequest.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobProcessRequest.java index 43027e28b3e9..abb529b2fa77 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobProcessRequest.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobProcessRequest.java @@ -42,8 +42,8 @@ private PowerJobProcessRequest(Long jobId) { this.jobId = jobId; } - public static PowerJobProcessRequest createRequest(Long jobId, BasicProcessor handler, - String methodName) { + public static PowerJobProcessRequest createRequest( + Long jobId, BasicProcessor handler, String methodName) { PowerJobProcessRequest request = new PowerJobProcessRequest(jobId); request.methodName = methodName; request.declaringClass = handler.getClass(); diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSingletons.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSingletons.java index f8cc9f721288..dcd4d7236602 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSingletons.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSingletons.java @@ -8,7 +8,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; public final class PowerJobSingletons { - private static final String INSTRUMENTATION_NAME = "io.opentelemetry.powerjob-4.0.0"; + private static final String INSTRUMENTATION_NAME = "io.opentelemetry.powerjob-4.0"; private static final Instrumenter INSTRUMENTER = PowerJobInstrumenterFactory.create(INSTRUMENTATION_NAME); private static final PowerJobHelper HELPER = @@ -25,6 +25,5 @@ public static PowerJobHelper helper() { return HELPER; } - private PowerJobSingletons() {} } diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSpanNameExtractor.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSpanNameExtractor.java index 6647b8ccfa18..7e39fe0955d9 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSpanNameExtractor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSpanNameExtractor.java @@ -18,7 +18,6 @@ class PowerJobSpanNameExtractor implements SpanNameExtractor { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName(String.format("%s.process", TestBasicProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.unset()); + span.hasAttributesSatisfying( + attributeAssertions( + TestBasicProcessor.class.getName(), jobId, jobParam, BASIC_PROCESSOR)); + }); + }); + } + + @Test + void testBasicFailProcessor() { + WorkerRuntime workerRuntime = genWorkerRuntime(); + + long jobId = 1; + String jobParam = "abc"; + TaskTrackerStartTaskReq req = + genTaskTrackerStartTaskReq( + TestBasicFailProcessor.class.getName(), jobId, jobParam, ExecuteType.STANDALONE); + TaskDO task = genTask(req); + ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); + pt.submitTask(task); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName( + String.format("%s.process", TestBasicFailProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.error()); + span.hasAttributesSatisfying( + attributeAssertions( + TestBasicFailProcessor.class.getName(), jobId, jobParam, BASIC_PROCESSOR)); + }); + }); + } + + @Test + void testBroadcastProcessor() { + WorkerRuntime workerRuntime = genWorkerRuntime(); + + long jobId = 1; + String jobParam = "abc"; + TaskTrackerStartTaskReq req = + genTaskTrackerStartTaskReq( + TestBroadcastProcessor.class.getName(), jobId, jobParam, ExecuteType.BROADCAST); + TaskDO task = genTask(req); + ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); + pt.submitTask(task); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName( + String.format("%s.process", TestBroadcastProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.unset()); + span.hasAttributesSatisfying( + attributeAssertions( + TestBroadcastProcessor.class.getName(), + jobId, + jobParam, + BROADCAST_PROCESSOR)); + }); + }); + } + + @Test + void testMapProcessor() { + WorkerRuntime workerRuntime = genWorkerRuntime(); + + long jobId = 1; + String jobParam = "abc"; + TaskTrackerStartTaskReq req = + genTaskTrackerStartTaskReq( + TestMapProcessProcessor.class.getName(), jobId, jobParam, ExecuteType.MAP); + TaskDO task = genTask(req); + ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); + pt.submitTask(task); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName( + String.format("%s.process", TestMapProcessProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.unset()); + span.hasAttributesSatisfying( + attributeAssertions( + TestMapProcessProcessor.class.getName(), jobId, jobParam, MAP_PROCESSOR)); + }); + }); + } + + @Test + void testMapReduceProcessor() { + WorkerRuntime workerRuntime = genWorkerRuntime(); + + long jobId = 1; + String jobParam = "abc"; + TaskTrackerStartTaskReq req = + genTaskTrackerStartTaskReq( + TestMapReduceProcessProcessor.class.getName(), jobId, jobParam, ExecuteType.MAP_REDUCE); + TaskDO task = genTask(req); + ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); + pt.submitTask(task); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName( + String.format( + "%s.process", TestMapReduceProcessProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.unset()); + span.hasAttributesSatisfying( + attributeAssertions( + TestMapReduceProcessProcessor.class.getName(), + jobId, + jobParam, + MAP_REDUCE_PROCESSOR)); + }); + }); + } + + @Test + void testShellProcessor() { + WorkerRuntime workerRuntime = genWorkerRuntime(); + workerRuntime.setOmsLogHandler( + new OmsLogHandler( + "", workerRuntime.getActorSystem(), workerRuntime.getServerDiscoveryService())); + + long jobId = 1; + String jobParam = "ls"; + TaskTrackerStartTaskReq req = + genTaskTrackerStartTaskReq( + ShellProcessor.class.getName(), jobId, jobParam, ExecuteType.STANDALONE); + TaskDO task = genTask(req); + ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); + pt.submitTask(task); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName(String.format("%s.process", ShellProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.unset()); + span.hasAttributesSatisfying( + attributeAssertions( + ShellProcessor.class.getName(), jobId, jobParam, SHELL_PROCESSOR)); + }); + }); + } + + @Test + void testPythonProcessor() { + WorkerRuntime workerRuntime = genWorkerRuntime(); + workerRuntime.setOmsLogHandler( + new OmsLogHandler( + "", workerRuntime.getActorSystem(), workerRuntime.getServerDiscoveryService())); + + long jobId = 1; + String jobParam = "1+1"; + TaskTrackerStartTaskReq req = + genTaskTrackerStartTaskReq( + PythonProcessor.class.getName(), jobId, jobParam, ExecuteType.STANDALONE); + TaskDO task = genTask(req); + ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); + pt.submitTask(task); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName(String.format("%s.process", PythonProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.unset()); + span.hasAttributesSatisfying( + attributeAssertions( + PythonProcessor.class.getName(), jobId, jobParam, PYTHON_PROCESSOR)); + }); + }); + } + + @Test + void testHttpProcessor() { + WorkerRuntime workerRuntime = genWorkerRuntime(); + workerRuntime.setOmsLogHandler( + new OmsLogHandler( + "", workerRuntime.getActorSystem(), workerRuntime.getServerDiscoveryService())); + + long jobId = 1; + String jobParam = "{\"method\":\"GET\"}"; + TaskTrackerStartTaskReq req = + genTaskTrackerStartTaskReq( + HttpProcessor.class.getName(), jobId, jobParam, ExecuteType.STANDALONE); + TaskDO task = genTask(req); + ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); + pt.submitTask(task); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName(String.format("%s.process", HttpProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.error()); + span.hasAttributesSatisfying( + attributeAssertions( + HttpProcessor.class.getName(), jobId, jobParam, HTTP_PROCESSOR)); + }); + }); + } + + @Test + void testFileCleanerProcessor() { + WorkerRuntime workerRuntime = genWorkerRuntime(); + workerRuntime.setOmsLogHandler( + new OmsLogHandler( + "", workerRuntime.getActorSystem(), workerRuntime.getServerDiscoveryService())); + + long jobId = 1; + String jobParam = "{\"dirPath\":\"/abc\"}"; + TaskTrackerStartTaskReq req = + genTaskTrackerStartTaskReq( + FileCleanupProcessor.class.getName(), jobId, jobParam, ExecuteType.STANDALONE); + TaskDO task = genTask(req); + ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); + pt.submitTask(task); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName( + String.format("%s.process", FileCleanupProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.error()); + span.hasAttributesSatisfying( + attributeAssertions( + FileCleanupProcessor.class.getName(), + jobId, + jobParam, + FILE_CLEANUP_PROCESSOR)); + }); + }); + } + + @Test + void testSpringDataSourceProcessor() { + AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); + DataSource dataSource = new HikariDataSource(); + context.registerBean( + SpringDatasourceSqlProcessor.class, () -> new SpringDatasourceSqlProcessor(dataSource)); + SpringUtils.inject(context); + context.refresh(); + WorkerRuntime workerRuntime = genWorkerRuntime(); + workerRuntime.setOmsLogHandler( + new OmsLogHandler( + "", workerRuntime.getActorSystem(), workerRuntime.getServerDiscoveryService())); + + long jobId = 1; + String jobParam = "{\"dirPath\":\"/abc\"}"; + TaskTrackerStartTaskReq req = + genTaskTrackerStartTaskReq( + SpringDatasourceSqlProcessor.class.getName(), jobId, jobParam, ExecuteType.STANDALONE); + TaskDO task = genTask(req); + ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); + pt.submitTask(task); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName( + String.format( + "%s.process", SpringDatasourceSqlProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.error()); + span.hasAttributesSatisfying( + attributeAssertions( + SpringDatasourceSqlProcessor.class.getName(), + jobId, + jobParam, + SPRING_DATASOURCE_SQL_PROCESSOR)); + }); + }); + } + + @Test + void testDynamicDataSourceProcessor() { + WorkerRuntime workerRuntime = genWorkerRuntime(); + workerRuntime.setOmsLogHandler( + new OmsLogHandler( + "", workerRuntime.getActorSystem(), workerRuntime.getServerDiscoveryService())); + + long jobId = 1; + String jobParam = "{\"dirPath\":\"/abc\"}"; + TaskTrackerStartTaskReq req = + genTaskTrackerStartTaskReq( + DynamicDatasourceSqlProcessor.class.getName(), jobId, jobParam, ExecuteType.STANDALONE); + TaskDO task = genTask(req); + ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); + pt.submitTask(task); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName( + String.format( + "%s.process", DynamicDatasourceSqlProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.error()); + span.hasAttributesSatisfying( + attributeAssertions( + DynamicDatasourceSqlProcessor.class.getName(), + jobId, + jobParam, + DYNAMIC_DATASOURCE_SQL_PROCESSOR)); + }); + }); + } + + private static WorkerRuntime genWorkerRuntime() { + Map overrideConfig = Maps.newHashMap(); + Config akkaFinalConfig = ConfigFactory.parseMap(overrideConfig); + ActorSystem actorSystem = + ActorSystem.create(RemoteConstant.WORKER_ACTOR_SYSTEM_NAME, akkaFinalConfig); + WorkerRuntime workerRuntime = new WorkerRuntime(); + workerRuntime.setAppId(1L); + workerRuntime.setActorSystem(actorSystem); + workerRuntime.setWorkerConfig(new PowerJobWorkerConfig()); + return workerRuntime; + } + + private static TaskDO genTask(TaskTrackerStartTaskReq req) { + TaskDO task = new TaskDO(); + task.setTaskId(req.getTaskId()); + task.setTaskName(req.getTaskName()); + task.setTaskContent(req.getTaskContent()); + task.setFailedCnt(req.getTaskCurrentRetryNums()); + task.setSubInstanceId(req.getSubInstanceId()); + return task; + } + + private static TaskTrackerStartTaskReq genTaskTrackerStartTaskReq( + String processor, long jobId, String jobParam, ExecuteType executeType) { + InstanceInfo instanceInfo = new InstanceInfo(); + instanceInfo.setJobId(jobId); + instanceInfo.setInstanceId(10086L); + instanceInfo.setJobParams(jobParam); + instanceInfo.setExecuteType(executeType.name()); + instanceInfo.setProcessorType(ProcessorType.BUILT_IN.name()); + instanceInfo.setProcessorInfo(processor); + instanceInfo.setInstanceTimeoutMS(500000); + instanceInfo.setThreadConcurrency(5); + instanceInfo.setTaskRetryNum(3); + + TaskTrackerStartTaskReq req = new TaskTrackerStartTaskReq(); + req.setTaskTrackerAddress(NetUtils.getLocalHost() + ":27777"); + req.setInstanceInfo(instanceInfo); + req.setTaskId("0"); + req.setTaskName("ROOT_TASK"); + req.setTaskCurrentRetryNums(0); + return req; + } + + private static List attributeAssertions( + String codeNamespace, long jobId, String jobParam, String jobType) { + List attributeAssertions = + new ArrayList<>( + asList( + equalTo(AttributeKey.stringKey("code.namespace"), codeNamespace), + equalTo(AttributeKey.stringKey("code.function"), "process"), + equalTo(AttributeKey.stringKey("job.system"), "powerjob"), + equalTo(AttributeKey.longKey("scheduling.powerjob.job.id"), jobId), + equalTo(AttributeKey.stringKey("scheduling.powerjob.job.type"), jobType))); + if (!StringUtils.isNullOrEmpty(jobParam)) { + attributeAssertions.add( + equalTo(AttributeKey.stringKey("scheduling.powerjob.job.param"), jobParam)); + } + return attributeAssertions; + } +} diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBasicFailProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBasicFailProcessor.java new file mode 100644 index 000000000000..1bae8d23b33b --- /dev/null +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBasicFailProcessor.java @@ -0,0 +1,18 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; + +import tech.powerjob.worker.core.processor.ProcessResult; +import tech.powerjob.worker.core.processor.TaskContext; +import tech.powerjob.worker.core.processor.sdk.BasicProcessor; + +public class TestBasicFailProcessor implements BasicProcessor { + + @Override + public ProcessResult process(TaskContext context) { + return new ProcessResult(false, "fail"); + } +} diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBasicProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBasicProcessor.java new file mode 100644 index 000000000000..ab232ff14e42 --- /dev/null +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBasicProcessor.java @@ -0,0 +1,18 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; + +import tech.powerjob.worker.core.processor.ProcessResult; +import tech.powerjob.worker.core.processor.TaskContext; +import tech.powerjob.worker.core.processor.sdk.BasicProcessor; + +public class TestBasicProcessor implements BasicProcessor { + + @Override + public ProcessResult process(TaskContext context) { + return new ProcessResult(true, System.currentTimeMillis() + "success"); + } +} diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBroadcastProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBroadcastProcessor.java new file mode 100644 index 000000000000..a3d784554684 --- /dev/null +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBroadcastProcessor.java @@ -0,0 +1,29 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; + +import java.util.List; +import tech.powerjob.worker.core.processor.ProcessResult; +import tech.powerjob.worker.core.processor.TaskContext; +import tech.powerjob.worker.core.processor.TaskResult; +import tech.powerjob.worker.core.processor.sdk.BroadcastProcessor; + +public class TestBroadcastProcessor implements BroadcastProcessor { + @Override + public ProcessResult preProcess(TaskContext taskContext) { + return new ProcessResult(true, "preProcess success"); + } + + @Override + public ProcessResult postProcess(TaskContext taskContext, List taskResults) { + return new ProcessResult(true, "postProcess success"); + } + + @Override + public ProcessResult process(TaskContext context) { + return new ProcessResult(true, "processSuccess"); + } +} diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestMapProcessProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestMapProcessProcessor.java new file mode 100644 index 000000000000..3a3b300ae4d4 --- /dev/null +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestMapProcessProcessor.java @@ -0,0 +1,18 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; + +import tech.powerjob.worker.core.processor.ProcessResult; +import tech.powerjob.worker.core.processor.TaskContext; +import tech.powerjob.worker.core.processor.sdk.MapProcessor; + +public class TestMapProcessProcessor implements MapProcessor { + + @Override + public ProcessResult process(TaskContext context) { + return new ProcessResult(true, "processSuccess"); + } +} diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestMapReduceProcessProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestMapReduceProcessProcessor.java new file mode 100644 index 000000000000..100892a444e2 --- /dev/null +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestMapReduceProcessProcessor.java @@ -0,0 +1,25 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; + +import java.util.List; +import tech.powerjob.worker.core.processor.ProcessResult; +import tech.powerjob.worker.core.processor.TaskContext; +import tech.powerjob.worker.core.processor.TaskResult; +import tech.powerjob.worker.core.processor.sdk.MapReduceProcessor; + +public class TestMapReduceProcessProcessor implements MapReduceProcessor { + + @Override + public ProcessResult process(TaskContext context) { + return new ProcessResult(true, "processSuccess"); + } + + @Override + public ProcessResult reduce(TaskContext taskContext, List list) { + return new ProcessResult(true, "reduceSuccess"); + } +} From 32782bc6d39e016755490632091a86f7204fb017 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Thu, 22 Aug 2024 23:31:03 +0800 Subject: [PATCH 04/22] fix ci --- docs/supported-libraries.md | 1 + instrumentation/powerjob-4.0/README.md | 5 +++++ instrumentation/powerjob-4.0/javaagent/build.gradle.kts | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 instrumentation/powerjob-4.0/README.md diff --git a/docs/supported-libraries.md b/docs/supported-libraries.md index 68065b23894f..15d91fcffddc 100644 --- a/docs/supported-libraries.md +++ b/docs/supported-libraries.md @@ -36,6 +36,7 @@ These are the supported libraries and frameworks: | [Apache MyFaces](https://myfaces.apache.org/) | 1.2+ (not including 3.x yet) | N/A | Provides `http.route` [2], Controller Spans [3] | | [Apache Pekko Actors](https://pekko.apache.org/) | 1.0+ | N/A | Context propagation | | [Apache Pekko HTTP](https://pekko.apache.org/) | 1.0+ | N/A | [HTTP Client Spans], [HTTP Client Metrics], [HTTP Server Spans], [HTTP Server Metrics], Provides `http.route` [2] | +| [PowerJob](http://www.powerjob.tech/) | 4.0+ | N/A | none | | [Apache Pulsar](https://pulsar.apache.org/) | 2.8+ | N/A | [Messaging Spans] | | [Apache RocketMQ gRPC/Protobuf-based Client](https://rocketmq.apache.org/) | 5.0+ | N/A | [Messaging Spans] | | [Apache RocketMQ Remoting-based Client](https://rocketmq.apache.org/) | 4.8+ | [opentelemetry-rocketmq-client-4.8](../instrumentation/rocketmq/rocketmq-client/rocketmq-client-4.8/library) | [Messaging Spans] | diff --git a/instrumentation/powerjob-4.0/README.md b/instrumentation/powerjob-4.0/README.md new file mode 100644 index 000000000000..f95b6da8b107 --- /dev/null +++ b/instrumentation/powerjob-4.0/README.md @@ -0,0 +1,5 @@ +# Settings for the PowerJob instrumentation + +| System property | Type | Default | Description | +|--------------------------------------------------------------|---------|---------|-----------------------------------------------------| +| `otel.instrumentation.powerjob.experimental-span-attributes` | Boolean | `false` | Enable the capture of experimental span attributes. | diff --git a/instrumentation/powerjob-4.0/javaagent/build.gradle.kts b/instrumentation/powerjob-4.0/javaagent/build.gradle.kts index 73e8d5a6fb4e..7a8f5aad4589 100644 --- a/instrumentation/powerjob-4.0/javaagent/build.gradle.kts +++ b/instrumentation/powerjob-4.0/javaagent/build.gradle.kts @@ -13,7 +13,7 @@ muzzle { dependencies { library("tech.powerjob:powerjob-worker:4.0.0") - implementation("tech.powerjob:powerjob-official-processors:1.1.0") + library("tech.powerjob:powerjob-official-processors:1.1.0") } tasks.withType().configureEach { From 7fd29e55a416beafab6d7eee558e21ab91ba8e80 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Fri, 23 Aug 2024 00:04:08 +0800 Subject: [PATCH 05/22] rename package --- .../BasicProcessorInstrumentation.java | 4 ++-- .../PowerJobCodeAttributesGetter.java | 2 +- .../{v_4_0_0 => v_4_0}/PowerJobConstants.java | 2 +- ...owerJobExperimentalAttributeExtractor.java | 2 +- .../{v_4_0_0 => v_4_0}/PowerJobHelper.java | 2 +- .../PowerJobInstrumentationModule.java | 2 +- .../PowerJobInstrumenterFactory.java | 2 +- .../PowerJobProcessRequest.java | 24 +++++++++---------- .../PowerJobSingletons.java | 2 +- .../PowerJobSpanNameExtractor.java | 2 +- .../PowerJobBasicProcessorTest.java | 22 ++++++++--------- .../TestBasicFailProcessor.java | 2 +- .../TestBasicProcessor.java | 2 +- .../TestBroadcastProcessor.java | 2 +- .../TestMapProcessProcessor.java | 2 +- .../TestMapReduceProcessProcessor.java | 2 +- 16 files changed, 38 insertions(+), 38 deletions(-) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0_0 => v_4_0}/BasicProcessorInstrumentation.java (98%) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0_0 => v_4_0}/PowerJobCodeAttributesGetter.java (99%) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0_0 => v_4_0}/PowerJobConstants.java (99%) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0_0 => v_4_0}/PowerJobExperimentalAttributeExtractor.java (99%) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0_0 => v_4_0}/PowerJobHelper.java (99%) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0_0 => v_4_0}/PowerJobInstrumentationModule.java (99%) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0_0 => v_4_0}/PowerJobInstrumenterFactory.java (99%) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0_0 => v_4_0}/PowerJobProcessRequest.java (88%) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0_0 => v_4_0}/PowerJobSingletons.java (99%) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0_0 => v_4_0}/PowerJobSpanNameExtractor.java (99%) rename instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0_0 => v_4_0}/PowerJobBasicProcessorTest.java (97%) rename instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0_0 => v_4_0}/TestBasicFailProcessor.java (99%) rename instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0_0 => v_4_0}/TestBasicProcessor.java (99%) rename instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0_0 => v_4_0}/TestBroadcastProcessor.java (99%) rename instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0_0 => v_4_0}/TestMapProcessProcessor.java (99%) rename instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0_0 => v_4_0}/TestMapReduceProcessProcessor.java (99%) diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/BasicProcessorInstrumentation.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/BasicProcessorInstrumentation.java similarity index 98% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/BasicProcessorInstrumentation.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/BasicProcessorInstrumentation.java index 2e74c78f4323..29d1f82b0cfe 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/BasicProcessorInstrumentation.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/BasicProcessorInstrumentation.java @@ -3,11 +3,11 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; import static io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge.currentContext; import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.implementsInterface; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobSingletons.helper; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobSingletons.helper; import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.takesArguments; diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobCodeAttributesGetter.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobCodeAttributesGetter.java similarity index 99% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobCodeAttributesGetter.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobCodeAttributesGetter.java index c4d23e0d0dcb..bb676f25caba 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobCodeAttributesGetter.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobCodeAttributesGetter.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeAttributesGetter; import javax.annotation.Nullable; diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobConstants.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobConstants.java similarity index 99% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobConstants.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobConstants.java index 6276f9b5e7eb..f0d53b91139d 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobConstants.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobConstants.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; public final class PowerJobConstants { diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobExperimentalAttributeExtractor.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobExperimentalAttributeExtractor.java similarity index 99% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobExperimentalAttributeExtractor.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobExperimentalAttributeExtractor.java index 1da9644d1e2c..8f17608db3bd 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobExperimentalAttributeExtractor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobExperimentalAttributeExtractor.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.AttributesBuilder; diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobHelper.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobHelper.java similarity index 99% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobHelper.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobHelper.java index ef88b5f072ee..f3d34dea4954 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobHelper.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobHelper.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; import io.opentelemetry.context.Context; import io.opentelemetry.context.Scope; diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumentationModule.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobInstrumentationModule.java similarity index 99% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumentationModule.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobInstrumentationModule.java index 965e0898af06..bd87a20876d5 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumentationModule.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobInstrumentationModule.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; import static java.util.Arrays.asList; diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumenterFactory.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobInstrumenterFactory.java similarity index 99% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumenterFactory.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobInstrumenterFactory.java index 2f05dd502754..12ff38b33d96 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobInstrumenterFactory.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobInstrumenterFactory.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.common.AttributeKey; diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobProcessRequest.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobProcessRequest.java similarity index 88% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobProcessRequest.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobProcessRequest.java index abb529b2fa77..3c27e65c6b12 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobProcessRequest.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobProcessRequest.java @@ -3,18 +3,18 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; - -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.BASIC_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.BROADCAST_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.DYNAMIC_DATASOURCE_SQL_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.FILE_CLEANUP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.HTTP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.MAP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.MAP_REDUCE_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.PYTHON_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.SHELL_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.SPRING_DATASOURCE_SQL_PROCESSOR; +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; + +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.BASIC_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.BROADCAST_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.DYNAMIC_DATASOURCE_SQL_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.FILE_CLEANUP_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.HTTP_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.MAP_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.MAP_REDUCE_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.PYTHON_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.SHELL_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.SPRING_DATASOURCE_SQL_PROCESSOR; import tech.powerjob.official.processors.impl.FileCleanupProcessor; import tech.powerjob.official.processors.impl.HttpProcessor; diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSingletons.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobSingletons.java similarity index 99% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSingletons.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobSingletons.java index dcd4d7236602..0f6ff55cdb19 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSingletons.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobSingletons.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSpanNameExtractor.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobSpanNameExtractor.java similarity index 99% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSpanNameExtractor.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobSpanNameExtractor.java index 7e39fe0955d9..4a4151af639f 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobSpanNameExtractor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobSpanNameExtractor.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeAttributesGetter; import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeSpanNameExtractor; diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobBasicProcessorTest.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobBasicProcessorTest.java similarity index 97% rename from instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobBasicProcessorTest.java rename to instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobBasicProcessorTest.java index 6b0b3df03aaf..38b411e96d47 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/PowerJobBasicProcessorTest.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobBasicProcessorTest.java @@ -3,18 +3,18 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.BASIC_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.BROADCAST_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.DYNAMIC_DATASOURCE_SQL_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.FILE_CLEANUP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.HTTP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.MAP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.MAP_REDUCE_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.PYTHON_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.SHELL_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0.PowerJobConstants.SPRING_DATASOURCE_SQL_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.BASIC_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.BROADCAST_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.DYNAMIC_DATASOURCE_SQL_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.FILE_CLEANUP_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.HTTP_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.MAP_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.MAP_REDUCE_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.PYTHON_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.SHELL_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.SPRING_DATASOURCE_SQL_PROCESSOR; import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo; import static java.util.Arrays.asList; diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBasicFailProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestBasicFailProcessor.java similarity index 99% rename from instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBasicFailProcessor.java rename to instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestBasicFailProcessor.java index 1bae8d23b33b..6becbd21188c 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBasicFailProcessor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestBasicFailProcessor.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; import tech.powerjob.worker.core.processor.ProcessResult; import tech.powerjob.worker.core.processor.TaskContext; diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBasicProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestBasicProcessor.java similarity index 99% rename from instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBasicProcessor.java rename to instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestBasicProcessor.java index ab232ff14e42..18aab3a80daa 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBasicProcessor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestBasicProcessor.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; import tech.powerjob.worker.core.processor.ProcessResult; import tech.powerjob.worker.core.processor.TaskContext; diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBroadcastProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestBroadcastProcessor.java similarity index 99% rename from instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBroadcastProcessor.java rename to instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestBroadcastProcessor.java index a3d784554684..8f31d9adc825 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestBroadcastProcessor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestBroadcastProcessor.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; import java.util.List; import tech.powerjob.worker.core.processor.ProcessResult; diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestMapProcessProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestMapProcessProcessor.java similarity index 99% rename from instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestMapProcessProcessor.java rename to instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestMapProcessProcessor.java index 3a3b300ae4d4..52aec16993fe 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestMapProcessProcessor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestMapProcessProcessor.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; import tech.powerjob.worker.core.processor.ProcessResult; import tech.powerjob.worker.core.processor.TaskContext; diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestMapReduceProcessProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestMapReduceProcessProcessor.java similarity index 99% rename from instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestMapReduceProcessProcessor.java rename to instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestMapReduceProcessProcessor.java index 100892a444e2..c2518a1b0f1c 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0_0/TestMapReduceProcessProcessor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestMapReduceProcessProcessor.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; import java.util.List; import tech.powerjob.worker.core.processor.ProcessResult; From 29344b17ee6f5efd4abc0022a35ad33387dc6a68 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Fri, 23 Aug 2024 10:12:01 +0800 Subject: [PATCH 06/22] rename package --- .../BasicProcessorInstrumentation.java | 4 ++-- .../PowerJobCodeAttributesGetter.java | 2 +- .../{v_4_0 => v4_0}/PowerJobConstants.java | 2 +- ...owerJobExperimentalAttributeExtractor.java | 2 +- .../{v_4_0 => v4_0}/PowerJobHelper.java | 2 +- .../PowerJobInstrumentationModule.java | 2 +- .../PowerJobInstrumenterFactory.java | 2 +- .../PowerJobProcessRequest.java | 24 +++++++++---------- .../{v_4_0 => v4_0}/PowerJobSingletons.java | 2 +- .../PowerJobSpanNameExtractor.java | 2 +- .../PowerJobBasicProcessorTest.java | 22 ++++++++--------- .../TestBasicFailProcessor.java | 2 +- .../{v_4_0 => v4_0}/TestBasicProcessor.java | 2 +- .../TestBroadcastProcessor.java | 2 +- .../TestMapProcessProcessor.java | 2 +- .../TestMapReduceProcessProcessor.java | 2 +- 16 files changed, 38 insertions(+), 38 deletions(-) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0 => v4_0}/BasicProcessorInstrumentation.java (96%) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0 => v4_0}/PowerJobCodeAttributesGetter.java (90%) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0 => v4_0}/PowerJobConstants.java (93%) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0 => v4_0}/PowerJobExperimentalAttributeExtractor.java (96%) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0 => v4_0}/PowerJobHelper.java (95%) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0 => v4_0}/PowerJobInstrumentationModule.java (91%) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0 => v4_0}/PowerJobInstrumenterFactory.java (96%) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0 => v4_0}/PowerJobProcessRequest.java (87%) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0 => v4_0}/PowerJobSingletons.java (92%) rename instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0 => v4_0}/PowerJobSpanNameExtractor.java (92%) rename instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0 => v4_0}/PowerJobBasicProcessorTest.java (97%) rename instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0 => v4_0}/TestBasicFailProcessor.java (86%) rename instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0 => v4_0}/TestBasicProcessor.java (87%) rename instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0 => v4_0}/TestBroadcastProcessor.java (92%) rename instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0 => v4_0}/TestMapProcessProcessor.java (87%) rename instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/{v_4_0 => v4_0}/TestMapReduceProcessProcessor.java (91%) diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/BasicProcessorInstrumentation.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java similarity index 96% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/BasicProcessorInstrumentation.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java index 29d1f82b0cfe..9b35b34e5fef 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/BasicProcessorInstrumentation.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java @@ -3,11 +3,11 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; import static io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge.currentContext; import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.implementsInterface; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobSingletons.helper; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobSingletons.helper; import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.takesArguments; diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobCodeAttributesGetter.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobCodeAttributesGetter.java similarity index 90% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobCodeAttributesGetter.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobCodeAttributesGetter.java index bb676f25caba..79d3316d1012 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobCodeAttributesGetter.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobCodeAttributesGetter.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeAttributesGetter; import javax.annotation.Nullable; diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobConstants.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobConstants.java similarity index 93% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobConstants.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobConstants.java index f0d53b91139d..c2659315e080 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobConstants.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobConstants.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; public final class PowerJobConstants { diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobExperimentalAttributeExtractor.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobExperimentalAttributeExtractor.java similarity index 96% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobExperimentalAttributeExtractor.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobExperimentalAttributeExtractor.java index 8f17608db3bd..0c527aedb06d 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobExperimentalAttributeExtractor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobExperimentalAttributeExtractor.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.AttributesBuilder; diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobHelper.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobHelper.java similarity index 95% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobHelper.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobHelper.java index f3d34dea4954..66bafd39f74d 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobHelper.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobHelper.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; import io.opentelemetry.context.Context; import io.opentelemetry.context.Scope; diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobInstrumentationModule.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobInstrumentationModule.java similarity index 91% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobInstrumentationModule.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobInstrumentationModule.java index bd87a20876d5..86cb6d6cc069 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobInstrumentationModule.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobInstrumentationModule.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; import static java.util.Arrays.asList; diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobInstrumenterFactory.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobInstrumenterFactory.java similarity index 96% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobInstrumenterFactory.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobInstrumenterFactory.java index 12ff38b33d96..9a877ea527de 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobInstrumenterFactory.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobInstrumenterFactory.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.common.AttributeKey; diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobProcessRequest.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobProcessRequest.java similarity index 87% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobProcessRequest.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobProcessRequest.java index 3c27e65c6b12..5f561bb13d2a 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobProcessRequest.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobProcessRequest.java @@ -3,18 +3,18 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; - -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.BASIC_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.BROADCAST_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.DYNAMIC_DATASOURCE_SQL_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.FILE_CLEANUP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.HTTP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.MAP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.MAP_REDUCE_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.PYTHON_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.SHELL_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.SPRING_DATASOURCE_SQL_PROCESSOR; +package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; + +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.BASIC_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.BROADCAST_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.DYNAMIC_DATASOURCE_SQL_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.FILE_CLEANUP_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.HTTP_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.MAP_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.MAP_REDUCE_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.PYTHON_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.SHELL_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.SPRING_DATASOURCE_SQL_PROCESSOR; import tech.powerjob.official.processors.impl.FileCleanupProcessor; import tech.powerjob.official.processors.impl.HttpProcessor; diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobSingletons.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSingletons.java similarity index 92% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobSingletons.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSingletons.java index 0f6ff55cdb19..3d5c4f94daad 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobSingletons.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSingletons.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobSpanNameExtractor.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSpanNameExtractor.java similarity index 92% rename from instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobSpanNameExtractor.java rename to instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSpanNameExtractor.java index 4a4151af639f..6da5b9c9e06c 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobSpanNameExtractor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSpanNameExtractor.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeAttributesGetter; import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeSpanNameExtractor; diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobBasicProcessorTest.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java similarity index 97% rename from instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobBasicProcessorTest.java rename to instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java index 38b411e96d47..ea415d60909e 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/PowerJobBasicProcessorTest.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java @@ -3,18 +3,18 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.BASIC_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.BROADCAST_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.DYNAMIC_DATASOURCE_SQL_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.FILE_CLEANUP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.HTTP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.MAP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.MAP_REDUCE_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.PYTHON_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.SHELL_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0.PowerJobConstants.SPRING_DATASOURCE_SQL_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.BASIC_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.BROADCAST_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.DYNAMIC_DATASOURCE_SQL_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.FILE_CLEANUP_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.HTTP_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.MAP_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.MAP_REDUCE_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.PYTHON_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.SHELL_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.SPRING_DATASOURCE_SQL_PROCESSOR; import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo; import static java.util.Arrays.asList; diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestBasicFailProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBasicFailProcessor.java similarity index 86% rename from instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestBasicFailProcessor.java rename to instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBasicFailProcessor.java index 6becbd21188c..2c7ebf80a25c 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestBasicFailProcessor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBasicFailProcessor.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; import tech.powerjob.worker.core.processor.ProcessResult; import tech.powerjob.worker.core.processor.TaskContext; diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestBasicProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBasicProcessor.java similarity index 87% rename from instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestBasicProcessor.java rename to instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBasicProcessor.java index 18aab3a80daa..5cf410405bb3 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestBasicProcessor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBasicProcessor.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; import tech.powerjob.worker.core.processor.ProcessResult; import tech.powerjob.worker.core.processor.TaskContext; diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestBroadcastProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBroadcastProcessor.java similarity index 92% rename from instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestBroadcastProcessor.java rename to instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBroadcastProcessor.java index 8f31d9adc825..80d0839c9a08 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestBroadcastProcessor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBroadcastProcessor.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; import java.util.List; import tech.powerjob.worker.core.processor.ProcessResult; diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestMapProcessProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestMapProcessProcessor.java similarity index 87% rename from instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestMapProcessProcessor.java rename to instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestMapProcessProcessor.java index 52aec16993fe..9f83cc705585 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestMapProcessProcessor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestMapProcessProcessor.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; import tech.powerjob.worker.core.processor.ProcessResult; import tech.powerjob.worker.core.processor.TaskContext; diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestMapReduceProcessProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestMapReduceProcessProcessor.java similarity index 91% rename from instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestMapReduceProcessProcessor.java rename to instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestMapReduceProcessProcessor.java index c2518a1b0f1c..5700654af1ef 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v_4_0/TestMapReduceProcessProcessor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestMapReduceProcessProcessor.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.powerjob.v_4_0; +package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; import java.util.List; import tech.powerjob.worker.core.processor.ProcessResult; From e1681c3b396508fbdb1b77c6d1161818b4d4dbd8 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Fri, 23 Aug 2024 10:26:12 +0800 Subject: [PATCH 07/22] fix muzzle --- instrumentation/powerjob-4.0/javaagent/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/instrumentation/powerjob-4.0/javaagent/build.gradle.kts b/instrumentation/powerjob-4.0/javaagent/build.gradle.kts index 7a8f5aad4589..68b536143917 100644 --- a/instrumentation/powerjob-4.0/javaagent/build.gradle.kts +++ b/instrumentation/powerjob-4.0/javaagent/build.gradle.kts @@ -8,6 +8,7 @@ muzzle { module.set("powerjob-worker") versions.set("[4.0.0,)") assertInverse.set(true) + extraDependency("tech.powerjob:powerjob-official-processors:1.1.0") } } From 54efc0c75cf21c7c9eeac8f872046e74d1341d39 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Fri, 23 Aug 2024 12:14:03 +0800 Subject: [PATCH 08/22] fix ci --- instrumentation/powerjob-4.0/javaagent/build.gradle.kts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/instrumentation/powerjob-4.0/javaagent/build.gradle.kts b/instrumentation/powerjob-4.0/javaagent/build.gradle.kts index 68b536143917..9d1e56bbb979 100644 --- a/instrumentation/powerjob-4.0/javaagent/build.gradle.kts +++ b/instrumentation/powerjob-4.0/javaagent/build.gradle.kts @@ -15,6 +15,8 @@ muzzle { dependencies { library("tech.powerjob:powerjob-worker:4.0.0") library("tech.powerjob:powerjob-official-processors:1.1.0") + + testImplementation("tech.powerjob:powerjob-worker:4.0.0") } tasks.withType().configureEach { From 7f3236ec0c2616c03faf73a072c009e87e8de7e2 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Fri, 23 Aug 2024 14:40:01 +0800 Subject: [PATCH 09/22] fix ci --- .../opentelemetry-instrumentation-annotations.txt | 2 +- .../current_vs_latest/opentelemetry-instrumentation-api.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-annotations.txt b/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-annotations.txt index bd1edfa19f1c..96e3e62e1bc3 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-annotations.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-annotations.txt @@ -1,2 +1,2 @@ Comparing source compatibility of opentelemetry-instrumentation-annotations-2.8.0-SNAPSHOT.jar against opentelemetry-instrumentation-annotations-2.7.0.jar -No changes. +No changes. \ No newline at end of file diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-api.txt b/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-api.txt index b3792b416020..c781552c9423 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-api.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-instrumentation-api.txt @@ -1,2 +1,2 @@ Comparing source compatibility of opentelemetry-instrumentation-api-2.8.0-SNAPSHOT.jar against opentelemetry-instrumentation-api-2.7.0.jar -No changes. +No changes. \ No newline at end of file From 6f4faeb1d676b80d9b4900ea6ebe59f2dbcd5a2f Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Fri, 23 Aug 2024 15:26:36 +0800 Subject: [PATCH 10/22] fix ci --- instrumentation/powerjob-4.0/javaagent/build.gradle.kts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/instrumentation/powerjob-4.0/javaagent/build.gradle.kts b/instrumentation/powerjob-4.0/javaagent/build.gradle.kts index 9d1e56bbb979..e38a203e3bba 100644 --- a/instrumentation/powerjob-4.0/javaagent/build.gradle.kts +++ b/instrumentation/powerjob-4.0/javaagent/build.gradle.kts @@ -17,6 +17,8 @@ dependencies { library("tech.powerjob:powerjob-official-processors:1.1.0") testImplementation("tech.powerjob:powerjob-worker:4.0.0") + testImplementation("org.springframework:spring-context:5.2.4.RELEASE") + latestDepTestLibrary("org.springframework:spring-context:5.+") } tasks.withType().configureEach { From ec6cd9aa7cc99aea806db91b3695ddb9f8e1ec70 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Fri, 23 Aug 2024 16:40:00 +0800 Subject: [PATCH 11/22] use the process directly --- .../v4_0/PowerJobBasicProcessorTest.java | 405 +----------------- 1 file changed, 12 insertions(+), 393 deletions(-) diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java index ea415d60909e..757e295cb075 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java @@ -6,23 +6,9 @@ package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.BASIC_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.BROADCAST_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.DYNAMIC_DATASOURCE_SQL_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.FILE_CLEANUP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.HTTP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.MAP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.MAP_REDUCE_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.PYTHON_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.SHELL_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.SPRING_DATASOURCE_SQL_PROCESSOR; import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo; import static java.util.Arrays.asList; -import akka.actor.ActorSystem; -import com.google.common.collect.Maps; -import com.typesafe.config.Config; -import com.typesafe.config.ConfigFactory; -import com.zaxxer.hikari.HikariDataSource; import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.internal.StringUtils; import io.opentelemetry.api.trace.SpanKind; @@ -32,46 +18,23 @@ import io.opentelemetry.sdk.trace.data.StatusData; import java.util.ArrayList; import java.util.List; -import java.util.Map; -import javax.sql.DataSource; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; -import tech.powerjob.common.RemoteConstant; -import tech.powerjob.common.enums.ExecuteType; -import tech.powerjob.common.enums.ProcessorType; -import tech.powerjob.common.utils.NetUtils; -import tech.powerjob.official.processors.impl.FileCleanupProcessor; -import tech.powerjob.official.processors.impl.HttpProcessor; -import tech.powerjob.official.processors.impl.script.PythonProcessor; -import tech.powerjob.official.processors.impl.script.ShellProcessor; -import tech.powerjob.official.processors.impl.sql.DynamicDatasourceSqlProcessor; -import tech.powerjob.official.processors.impl.sql.SpringDatasourceSqlProcessor; -import tech.powerjob.worker.background.OmsLogHandler; -import tech.powerjob.worker.common.PowerJobWorkerConfig; -import tech.powerjob.worker.common.WorkerRuntime; -import tech.powerjob.worker.common.utils.SpringUtils; -import tech.powerjob.worker.core.tracker.processor.ProcessorTracker; -import tech.powerjob.worker.persistence.TaskDO; -import tech.powerjob.worker.pojo.model.InstanceInfo; -import tech.powerjob.worker.pojo.request.TaskTrackerStartTaskReq; +import tech.powerjob.worker.core.processor.TaskContext; +import tech.powerjob.worker.core.processor.sdk.BasicProcessor; class PowerJobBasicProcessorTest { @RegisterExtension private static final InstrumentationExtension testing = AgentInstrumentationExtension.create(); - @Test - void testBasicProcessor() { - WorkerRuntime workerRuntime = genWorkerRuntime(); + @Test + void testCoreBasicProcessor() throws Exception { long jobId = 1; String jobParam = "abc"; - TaskTrackerStartTaskReq req = - genTaskTrackerStartTaskReq( - TestBasicProcessor.class.getName(), jobId, jobParam, ExecuteType.STANDALONE); - TaskDO task = genTask(req); - ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); - pt.submitTask(task); + TaskContext taskContext = genTaskContext(jobId, jobParam); + BasicProcessor testBasicProcessor = new TestBasicProcessor(); + testBasicProcessor.process(taskContext); testing.waitAndAssertTraces( trace -> { trace.hasSpansSatisfyingExactly( @@ -86,358 +49,14 @@ void testBasicProcessor() { }); } - @Test - void testBasicFailProcessor() { - WorkerRuntime workerRuntime = genWorkerRuntime(); - - long jobId = 1; - String jobParam = "abc"; - TaskTrackerStartTaskReq req = - genTaskTrackerStartTaskReq( - TestBasicFailProcessor.class.getName(), jobId, jobParam, ExecuteType.STANDALONE); - TaskDO task = genTask(req); - ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); - pt.submitTask(task); - testing.waitAndAssertTraces( - trace -> { - trace.hasSpansSatisfyingExactly( - span -> { - span.hasName( - String.format("%s.process", TestBasicFailProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.error()); - span.hasAttributesSatisfying( - attributeAssertions( - TestBasicFailProcessor.class.getName(), jobId, jobParam, BASIC_PROCESSOR)); - }); - }); - } - - @Test - void testBroadcastProcessor() { - WorkerRuntime workerRuntime = genWorkerRuntime(); - - long jobId = 1; - String jobParam = "abc"; - TaskTrackerStartTaskReq req = - genTaskTrackerStartTaskReq( - TestBroadcastProcessor.class.getName(), jobId, jobParam, ExecuteType.BROADCAST); - TaskDO task = genTask(req); - ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); - pt.submitTask(task); - testing.waitAndAssertTraces( - trace -> { - trace.hasSpansSatisfyingExactly( - span -> { - span.hasName( - String.format("%s.process", TestBroadcastProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.unset()); - span.hasAttributesSatisfying( - attributeAssertions( - TestBroadcastProcessor.class.getName(), - jobId, - jobParam, - BROADCAST_PROCESSOR)); - }); - }); - } - - @Test - void testMapProcessor() { - WorkerRuntime workerRuntime = genWorkerRuntime(); - - long jobId = 1; - String jobParam = "abc"; - TaskTrackerStartTaskReq req = - genTaskTrackerStartTaskReq( - TestMapProcessProcessor.class.getName(), jobId, jobParam, ExecuteType.MAP); - TaskDO task = genTask(req); - ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); - pt.submitTask(task); - testing.waitAndAssertTraces( - trace -> { - trace.hasSpansSatisfyingExactly( - span -> { - span.hasName( - String.format("%s.process", TestMapProcessProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.unset()); - span.hasAttributesSatisfying( - attributeAssertions( - TestMapProcessProcessor.class.getName(), jobId, jobParam, MAP_PROCESSOR)); - }); - }); - } - - @Test - void testMapReduceProcessor() { - WorkerRuntime workerRuntime = genWorkerRuntime(); - - long jobId = 1; - String jobParam = "abc"; - TaskTrackerStartTaskReq req = - genTaskTrackerStartTaskReq( - TestMapReduceProcessProcessor.class.getName(), jobId, jobParam, ExecuteType.MAP_REDUCE); - TaskDO task = genTask(req); - ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); - pt.submitTask(task); - testing.waitAndAssertTraces( - trace -> { - trace.hasSpansSatisfyingExactly( - span -> { - span.hasName( - String.format( - "%s.process", TestMapReduceProcessProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.unset()); - span.hasAttributesSatisfying( - attributeAssertions( - TestMapReduceProcessProcessor.class.getName(), - jobId, - jobParam, - MAP_REDUCE_PROCESSOR)); - }); - }); - } - - @Test - void testShellProcessor() { - WorkerRuntime workerRuntime = genWorkerRuntime(); - workerRuntime.setOmsLogHandler( - new OmsLogHandler( - "", workerRuntime.getActorSystem(), workerRuntime.getServerDiscoveryService())); - - long jobId = 1; - String jobParam = "ls"; - TaskTrackerStartTaskReq req = - genTaskTrackerStartTaskReq( - ShellProcessor.class.getName(), jobId, jobParam, ExecuteType.STANDALONE); - TaskDO task = genTask(req); - ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); - pt.submitTask(task); - testing.waitAndAssertTraces( - trace -> { - trace.hasSpansSatisfyingExactly( - span -> { - span.hasName(String.format("%s.process", ShellProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.unset()); - span.hasAttributesSatisfying( - attributeAssertions( - ShellProcessor.class.getName(), jobId, jobParam, SHELL_PROCESSOR)); - }); - }); - } - - @Test - void testPythonProcessor() { - WorkerRuntime workerRuntime = genWorkerRuntime(); - workerRuntime.setOmsLogHandler( - new OmsLogHandler( - "", workerRuntime.getActorSystem(), workerRuntime.getServerDiscoveryService())); - - long jobId = 1; - String jobParam = "1+1"; - TaskTrackerStartTaskReq req = - genTaskTrackerStartTaskReq( - PythonProcessor.class.getName(), jobId, jobParam, ExecuteType.STANDALONE); - TaskDO task = genTask(req); - ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); - pt.submitTask(task); - testing.waitAndAssertTraces( - trace -> { - trace.hasSpansSatisfyingExactly( - span -> { - span.hasName(String.format("%s.process", PythonProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.unset()); - span.hasAttributesSatisfying( - attributeAssertions( - PythonProcessor.class.getName(), jobId, jobParam, PYTHON_PROCESSOR)); - }); - }); + private static TaskContext genTaskContext(long jobId, String jobParam){ + TaskContext taskContext = new TaskContext(); + taskContext.setJobId(jobId); + taskContext.setJobParams(jobParam); + return taskContext; } - @Test - void testHttpProcessor() { - WorkerRuntime workerRuntime = genWorkerRuntime(); - workerRuntime.setOmsLogHandler( - new OmsLogHandler( - "", workerRuntime.getActorSystem(), workerRuntime.getServerDiscoveryService())); - long jobId = 1; - String jobParam = "{\"method\":\"GET\"}"; - TaskTrackerStartTaskReq req = - genTaskTrackerStartTaskReq( - HttpProcessor.class.getName(), jobId, jobParam, ExecuteType.STANDALONE); - TaskDO task = genTask(req); - ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); - pt.submitTask(task); - testing.waitAndAssertTraces( - trace -> { - trace.hasSpansSatisfyingExactly( - span -> { - span.hasName(String.format("%s.process", HttpProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.error()); - span.hasAttributesSatisfying( - attributeAssertions( - HttpProcessor.class.getName(), jobId, jobParam, HTTP_PROCESSOR)); - }); - }); - } - - @Test - void testFileCleanerProcessor() { - WorkerRuntime workerRuntime = genWorkerRuntime(); - workerRuntime.setOmsLogHandler( - new OmsLogHandler( - "", workerRuntime.getActorSystem(), workerRuntime.getServerDiscoveryService())); - - long jobId = 1; - String jobParam = "{\"dirPath\":\"/abc\"}"; - TaskTrackerStartTaskReq req = - genTaskTrackerStartTaskReq( - FileCleanupProcessor.class.getName(), jobId, jobParam, ExecuteType.STANDALONE); - TaskDO task = genTask(req); - ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); - pt.submitTask(task); - testing.waitAndAssertTraces( - trace -> { - trace.hasSpansSatisfyingExactly( - span -> { - span.hasName( - String.format("%s.process", FileCleanupProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.error()); - span.hasAttributesSatisfying( - attributeAssertions( - FileCleanupProcessor.class.getName(), - jobId, - jobParam, - FILE_CLEANUP_PROCESSOR)); - }); - }); - } - - @Test - void testSpringDataSourceProcessor() { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); - DataSource dataSource = new HikariDataSource(); - context.registerBean( - SpringDatasourceSqlProcessor.class, () -> new SpringDatasourceSqlProcessor(dataSource)); - SpringUtils.inject(context); - context.refresh(); - WorkerRuntime workerRuntime = genWorkerRuntime(); - workerRuntime.setOmsLogHandler( - new OmsLogHandler( - "", workerRuntime.getActorSystem(), workerRuntime.getServerDiscoveryService())); - - long jobId = 1; - String jobParam = "{\"dirPath\":\"/abc\"}"; - TaskTrackerStartTaskReq req = - genTaskTrackerStartTaskReq( - SpringDatasourceSqlProcessor.class.getName(), jobId, jobParam, ExecuteType.STANDALONE); - TaskDO task = genTask(req); - ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); - pt.submitTask(task); - testing.waitAndAssertTraces( - trace -> { - trace.hasSpansSatisfyingExactly( - span -> { - span.hasName( - String.format( - "%s.process", SpringDatasourceSqlProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.error()); - span.hasAttributesSatisfying( - attributeAssertions( - SpringDatasourceSqlProcessor.class.getName(), - jobId, - jobParam, - SPRING_DATASOURCE_SQL_PROCESSOR)); - }); - }); - } - - @Test - void testDynamicDataSourceProcessor() { - WorkerRuntime workerRuntime = genWorkerRuntime(); - workerRuntime.setOmsLogHandler( - new OmsLogHandler( - "", workerRuntime.getActorSystem(), workerRuntime.getServerDiscoveryService())); - - long jobId = 1; - String jobParam = "{\"dirPath\":\"/abc\"}"; - TaskTrackerStartTaskReq req = - genTaskTrackerStartTaskReq( - DynamicDatasourceSqlProcessor.class.getName(), jobId, jobParam, ExecuteType.STANDALONE); - TaskDO task = genTask(req); - ProcessorTracker pt = new ProcessorTracker(req, workerRuntime); - pt.submitTask(task); - testing.waitAndAssertTraces( - trace -> { - trace.hasSpansSatisfyingExactly( - span -> { - span.hasName( - String.format( - "%s.process", DynamicDatasourceSqlProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.error()); - span.hasAttributesSatisfying( - attributeAssertions( - DynamicDatasourceSqlProcessor.class.getName(), - jobId, - jobParam, - DYNAMIC_DATASOURCE_SQL_PROCESSOR)); - }); - }); - } - - private static WorkerRuntime genWorkerRuntime() { - Map overrideConfig = Maps.newHashMap(); - Config akkaFinalConfig = ConfigFactory.parseMap(overrideConfig); - ActorSystem actorSystem = - ActorSystem.create(RemoteConstant.WORKER_ACTOR_SYSTEM_NAME, akkaFinalConfig); - WorkerRuntime workerRuntime = new WorkerRuntime(); - workerRuntime.setAppId(1L); - workerRuntime.setActorSystem(actorSystem); - workerRuntime.setWorkerConfig(new PowerJobWorkerConfig()); - return workerRuntime; - } - - private static TaskDO genTask(TaskTrackerStartTaskReq req) { - TaskDO task = new TaskDO(); - task.setTaskId(req.getTaskId()); - task.setTaskName(req.getTaskName()); - task.setTaskContent(req.getTaskContent()); - task.setFailedCnt(req.getTaskCurrentRetryNums()); - task.setSubInstanceId(req.getSubInstanceId()); - return task; - } - - private static TaskTrackerStartTaskReq genTaskTrackerStartTaskReq( - String processor, long jobId, String jobParam, ExecuteType executeType) { - InstanceInfo instanceInfo = new InstanceInfo(); - instanceInfo.setJobId(jobId); - instanceInfo.setInstanceId(10086L); - instanceInfo.setJobParams(jobParam); - instanceInfo.setExecuteType(executeType.name()); - instanceInfo.setProcessorType(ProcessorType.BUILT_IN.name()); - instanceInfo.setProcessorInfo(processor); - instanceInfo.setInstanceTimeoutMS(500000); - instanceInfo.setThreadConcurrency(5); - instanceInfo.setTaskRetryNum(3); - - TaskTrackerStartTaskReq req = new TaskTrackerStartTaskReq(); - req.setTaskTrackerAddress(NetUtils.getLocalHost() + ":27777"); - req.setInstanceInfo(instanceInfo); - req.setTaskId("0"); - req.setTaskName("ROOT_TASK"); - req.setTaskCurrentRetryNums(0); - return req; - } private static List attributeAssertions( String codeNamespace, long jobId, String jobParam, String jobType) { From 029e00e2ad25cd709a3addabb92530f0568cdc48 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Fri, 23 Aug 2024 18:02:05 +0800 Subject: [PATCH 12/22] use the process directly --- .../powerjob-4.0/javaagent/build.gradle.kts | 4 - .../v4_0/PowerJobBasicProcessorTest.java | 284 +++++++++++++++++- 2 files changed, 279 insertions(+), 9 deletions(-) diff --git a/instrumentation/powerjob-4.0/javaagent/build.gradle.kts b/instrumentation/powerjob-4.0/javaagent/build.gradle.kts index e38a203e3bba..68b536143917 100644 --- a/instrumentation/powerjob-4.0/javaagent/build.gradle.kts +++ b/instrumentation/powerjob-4.0/javaagent/build.gradle.kts @@ -15,10 +15,6 @@ muzzle { dependencies { library("tech.powerjob:powerjob-worker:4.0.0") library("tech.powerjob:powerjob-official-processors:1.1.0") - - testImplementation("tech.powerjob:powerjob-worker:4.0.0") - testImplementation("org.springframework:spring-context:5.2.4.RELEASE") - latestDepTestLibrary("org.springframework:spring-context:5.+") } tasks.withType().configureEach { diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java index 757e295cb075..5e4ae50ac96a 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java @@ -6,9 +6,21 @@ package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.BASIC_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.BROADCAST_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.DYNAMIC_DATASOURCE_SQL_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.FILE_CLEANUP_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.HTTP_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.MAP_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.MAP_REDUCE_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.PYTHON_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.SHELL_PROCESSOR; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.SPRING_DATASOURCE_SQL_PROCESSOR; import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo; import static java.util.Arrays.asList; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.zaxxer.hikari.HikariDataSource; import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.internal.StringUtils; import io.opentelemetry.api.trace.SpanKind; @@ -18,18 +30,26 @@ import io.opentelemetry.sdk.trace.data.StatusData; import java.util.ArrayList; import java.util.List; +import javax.sql.DataSource; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; +import tech.powerjob.official.processors.impl.FileCleanupProcessor; +import tech.powerjob.official.processors.impl.HttpProcessor; +import tech.powerjob.official.processors.impl.script.PythonProcessor; +import tech.powerjob.official.processors.impl.script.ShellProcessor; +import tech.powerjob.official.processors.impl.sql.DynamicDatasourceSqlProcessor; +import tech.powerjob.official.processors.impl.sql.SpringDatasourceSqlProcessor; import tech.powerjob.worker.core.processor.TaskContext; +import tech.powerjob.worker.core.processor.WorkflowContext; import tech.powerjob.worker.core.processor.sdk.BasicProcessor; +import tech.powerjob.worker.log.impl.OmsLocalLogger; class PowerJobBasicProcessorTest { @RegisterExtension private static final InstrumentationExtension testing = AgentInstrumentationExtension.create(); - @Test - void testCoreBasicProcessor() throws Exception { + void testBasicProcessor() throws Exception { long jobId = 1; String jobParam = "abc"; TaskContext taskContext = genTaskContext(jobId, jobParam); @@ -49,15 +69,269 @@ void testCoreBasicProcessor() throws Exception { }); } - private static TaskContext genTaskContext(long jobId, String jobParam){ + @Test + void testBasicFailProcessor() throws Exception { + long jobId = 1; + String jobParam = "abc"; + TaskContext taskContext = genTaskContext(jobId, jobParam); + BasicProcessor testBasicFailProcessor = new TestBasicFailProcessor(); + testBasicFailProcessor.process(taskContext); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName( + String.format("%s.process", TestBasicFailProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.error()); + span.hasAttributesSatisfying( + attributeAssertions( + TestBasicFailProcessor.class.getName(), jobId, jobParam, BASIC_PROCESSOR)); + }); + }); + } + + @Test + void testBroadcastProcessor() throws Exception { + long jobId = 1; + String jobParam = "abc"; + TaskContext taskContext = genTaskContext(jobId, jobParam); + BasicProcessor testBroadcastProcessor = new TestBroadcastProcessor(); + testBroadcastProcessor.process(taskContext); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName( + String.format("%s.process", TestBroadcastProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.unset()); + span.hasAttributesSatisfying( + attributeAssertions( + TestBroadcastProcessor.class.getName(), + jobId, + jobParam, + BROADCAST_PROCESSOR)); + }); + }); + } + + @Test + void testMapProcessor() throws Exception { + long jobId = 1; + String jobParam = "abc"; + TaskContext taskContext = genTaskContext(jobId, jobParam); + BasicProcessor testMapProcessProcessor = new TestMapProcessProcessor(); + testMapProcessProcessor.process(taskContext); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName( + String.format("%s.process", TestMapProcessProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.unset()); + span.hasAttributesSatisfying( + attributeAssertions( + TestMapProcessProcessor.class.getName(), jobId, jobParam, MAP_PROCESSOR)); + }); + }); + } + + @Test + void testMapReduceProcessor() throws Exception { + long jobId = 1; + String jobParam = "abc"; + TaskContext taskContext = genTaskContext(jobId, jobParam); + BasicProcessor testMapReduceProcessProcessor = new TestMapReduceProcessProcessor(); + testMapReduceProcessProcessor.process(taskContext); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName( + String.format( + "%s.process", TestMapReduceProcessProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.unset()); + span.hasAttributesSatisfying( + attributeAssertions( + TestMapReduceProcessProcessor.class.getName(), + jobId, + jobParam, + MAP_REDUCE_PROCESSOR)); + }); + }); + } + + @Test + void testShellProcessor() throws Exception { + long jobId = 1; + String jobParam = "ls"; + TaskContext taskContext = genTaskContext(jobId, jobParam); + taskContext.setWorkflowContext(new WorkflowContext(jobId, "")); + taskContext.setOmsLogger(new OmsLocalLogger()); + BasicProcessor shellProcessor = new ShellProcessor(); + shellProcessor.process(taskContext); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName(String.format("%s.process", ShellProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.unset()); + span.hasAttributesSatisfying( + attributeAssertions( + ShellProcessor.class.getName(), jobId, jobParam, SHELL_PROCESSOR)); + }); + }); + } + + @Test + void testPythonProcessor() throws Exception { + long jobId = 1; + String jobParam = "1+1"; + TaskContext taskContext = genTaskContext(jobId, jobParam); + taskContext.setWorkflowContext(new WorkflowContext(jobId, "")); + taskContext.setOmsLogger(new OmsLocalLogger()); + BasicProcessor pythonProcessor = new PythonProcessor(); + pythonProcessor.process(taskContext); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName(String.format("%s.process", PythonProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.unset()); + span.hasAttributesSatisfying( + attributeAssertions( + PythonProcessor.class.getName(), jobId, jobParam, PYTHON_PROCESSOR)); + }); + }); + } + + @Test + void testHttpProcessor() throws Exception { + + long jobId = 1; + String jobParam = "{\"method\":\"GET\"}"; + TaskContext taskContext = genTaskContext(jobId, jobParam); + taskContext.setWorkflowContext(new WorkflowContext(jobId, "")); + taskContext.setOmsLogger(new OmsLocalLogger()); + BasicProcessor httpProcessor = new HttpProcessor(); + httpProcessor.process(taskContext); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName(String.format("%s.process", HttpProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.error()); + span.hasAttributesSatisfying( + attributeAssertions( + HttpProcessor.class.getName(), jobId, jobParam, HTTP_PROCESSOR)); + }); + }); + } + + @Test + void testFileCleanerProcessor() throws Exception { + + long jobId = 1; + JSONObject params = new JSONObject(); + params.put("dirPath", "/abc"); + params.put("filePattern", "[\\s\\S]*log"); + params.put("retentionTime", 0); + JSONArray array = new JSONArray(); + array.add(params); + String jobParam = array.toJSONString(); + TaskContext taskContext = genTaskContext(jobId, jobParam); + taskContext.setOmsLogger(new OmsLocalLogger()); + BasicProcessor fileCleanupProcessor = new FileCleanupProcessor(); + fileCleanupProcessor.process(taskContext); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName( + String.format("%s.process", FileCleanupProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.unset()); + span.hasAttributesSatisfying( + attributeAssertions( + FileCleanupProcessor.class.getName(), + jobId, + jobParam, + FILE_CLEANUP_PROCESSOR)); + }); + }); + } + + @Test + void testSpringDataSourceProcessor() throws Exception { + DataSource dataSource = new HikariDataSource(); + long jobId = 1; + String jobParam = "{\"dirPath\":\"/abc\"}"; + TaskContext taskContext = genTaskContext(jobId, jobParam); + taskContext.setWorkflowContext(new WorkflowContext(jobId, "")); + taskContext.setOmsLogger(new OmsLocalLogger()); + BasicProcessor springDatasourceSqlProcessor = new SpringDatasourceSqlProcessor(dataSource); + springDatasourceSqlProcessor.process(taskContext); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName( + String.format( + "%s.process", SpringDatasourceSqlProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.error()); + span.hasAttributesSatisfying( + attributeAssertions( + SpringDatasourceSqlProcessor.class.getName(), + jobId, + jobParam, + SPRING_DATASOURCE_SQL_PROCESSOR)); + }); + }); + } + + @Test + void testDynamicDataSourceProcessor() throws Exception { + + long jobId = 1; + String jobParam = "{\"dirPath\":\"/abc\"}"; + TaskContext taskContext = genTaskContext(jobId, jobParam); + taskContext.setWorkflowContext(new WorkflowContext(jobId, "")); + taskContext.setOmsLogger(new OmsLocalLogger()); + BasicProcessor dynamicDatasourceSqlProcessor = new DynamicDatasourceSqlProcessor(); + dynamicDatasourceSqlProcessor.process(taskContext); + testing.waitAndAssertTraces( + trace -> { + trace.hasSpansSatisfyingExactly( + span -> { + span.hasName( + String.format( + "%s.process", DynamicDatasourceSqlProcessor.class.getSimpleName())); + span.hasKind(SpanKind.INTERNAL); + span.hasStatus(StatusData.error()); + span.hasAttributesSatisfying( + attributeAssertions( + DynamicDatasourceSqlProcessor.class.getName(), + jobId, + jobParam, + DYNAMIC_DATASOURCE_SQL_PROCESSOR)); + }); + }); + } + + private static TaskContext genTaskContext(long jobId, String jobParam) { TaskContext taskContext = new TaskContext(); taskContext.setJobId(jobId); taskContext.setJobParams(jobParam); return taskContext; } - - private static List attributeAssertions( String codeNamespace, long jobId, String jobParam, String jobType) { List attributeAssertions = From 353b669bcc44cc960fde940973bf683adbc4082f Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Fri, 23 Aug 2024 18:40:28 +0800 Subject: [PATCH 13/22] fix ci --- .../v4_0/PowerJobBasicProcessorTest.java | 29 ++++++++++++++----- .../powerjob/v4_0/TestBasicFailProcessor.java | 2 +- .../powerjob/v4_0/TestBasicProcessor.java | 2 +- .../powerjob/v4_0/TestBroadcastProcessor.java | 2 +- .../v4_0/TestMapProcessProcessor.java | 2 +- .../v4_0/TestMapReduceProcessProcessor.java | 2 +- 6 files changed, 27 insertions(+), 12 deletions(-) diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java index 5e4ae50ac96a..7cb5b8711da5 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java @@ -42,7 +42,7 @@ import tech.powerjob.worker.core.processor.TaskContext; import tech.powerjob.worker.core.processor.WorkflowContext; import tech.powerjob.worker.core.processor.sdk.BasicProcessor; -import tech.powerjob.worker.log.impl.OmsLocalLogger; +import tech.powerjob.worker.log.OmsLogger; class PowerJobBasicProcessorTest { @RegisterExtension @@ -170,7 +170,7 @@ void testShellProcessor() throws Exception { String jobParam = "ls"; TaskContext taskContext = genTaskContext(jobId, jobParam); taskContext.setWorkflowContext(new WorkflowContext(jobId, "")); - taskContext.setOmsLogger(new OmsLocalLogger()); + taskContext.setOmsLogger(new TestOmsLogger()); BasicProcessor shellProcessor = new ShellProcessor(); shellProcessor.process(taskContext); testing.waitAndAssertTraces( @@ -193,7 +193,7 @@ void testPythonProcessor() throws Exception { String jobParam = "1+1"; TaskContext taskContext = genTaskContext(jobId, jobParam); taskContext.setWorkflowContext(new WorkflowContext(jobId, "")); - taskContext.setOmsLogger(new OmsLocalLogger()); + taskContext.setOmsLogger(new TestOmsLogger()); BasicProcessor pythonProcessor = new PythonProcessor(); pythonProcessor.process(taskContext); testing.waitAndAssertTraces( @@ -217,7 +217,7 @@ void testHttpProcessor() throws Exception { String jobParam = "{\"method\":\"GET\"}"; TaskContext taskContext = genTaskContext(jobId, jobParam); taskContext.setWorkflowContext(new WorkflowContext(jobId, "")); - taskContext.setOmsLogger(new OmsLocalLogger()); + taskContext.setOmsLogger(new TestOmsLogger()); BasicProcessor httpProcessor = new HttpProcessor(); httpProcessor.process(taskContext); testing.waitAndAssertTraces( @@ -246,7 +246,7 @@ void testFileCleanerProcessor() throws Exception { array.add(params); String jobParam = array.toJSONString(); TaskContext taskContext = genTaskContext(jobId, jobParam); - taskContext.setOmsLogger(new OmsLocalLogger()); + taskContext.setOmsLogger(new TestOmsLogger()); BasicProcessor fileCleanupProcessor = new FileCleanupProcessor(); fileCleanupProcessor.process(taskContext); testing.waitAndAssertTraces( @@ -274,7 +274,7 @@ void testSpringDataSourceProcessor() throws Exception { String jobParam = "{\"dirPath\":\"/abc\"}"; TaskContext taskContext = genTaskContext(jobId, jobParam); taskContext.setWorkflowContext(new WorkflowContext(jobId, "")); - taskContext.setOmsLogger(new OmsLocalLogger()); + taskContext.setOmsLogger(new TestOmsLogger()); BasicProcessor springDatasourceSqlProcessor = new SpringDatasourceSqlProcessor(dataSource); springDatasourceSqlProcessor.process(taskContext); testing.waitAndAssertTraces( @@ -303,7 +303,7 @@ void testDynamicDataSourceProcessor() throws Exception { String jobParam = "{\"dirPath\":\"/abc\"}"; TaskContext taskContext = genTaskContext(jobId, jobParam); taskContext.setWorkflowContext(new WorkflowContext(jobId, "")); - taskContext.setOmsLogger(new OmsLocalLogger()); + taskContext.setOmsLogger(new TestOmsLogger()); BasicProcessor dynamicDatasourceSqlProcessor = new DynamicDatasourceSqlProcessor(); dynamicDatasourceSqlProcessor.process(taskContext); testing.waitAndAssertTraces( @@ -348,4 +348,19 @@ private static List attributeAssertions( } return attributeAssertions; } + + private static class TestOmsLogger implements OmsLogger { + + @Override + public void debug(String s, Object... objects) {} + + @Override + public void info(String s, Object... objects) {} + + @Override + public void warn(String s, Object... objects) {} + + @Override + public void error(String s, Object... objects) {} + } } diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBasicFailProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBasicFailProcessor.java index 2c7ebf80a25c..9c2e2ff3608d 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBasicFailProcessor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBasicFailProcessor.java @@ -9,7 +9,7 @@ import tech.powerjob.worker.core.processor.TaskContext; import tech.powerjob.worker.core.processor.sdk.BasicProcessor; -public class TestBasicFailProcessor implements BasicProcessor { +class TestBasicFailProcessor implements BasicProcessor { @Override public ProcessResult process(TaskContext context) { diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBasicProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBasicProcessor.java index 5cf410405bb3..b15848cddec7 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBasicProcessor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBasicProcessor.java @@ -9,7 +9,7 @@ import tech.powerjob.worker.core.processor.TaskContext; import tech.powerjob.worker.core.processor.sdk.BasicProcessor; -public class TestBasicProcessor implements BasicProcessor { +class TestBasicProcessor implements BasicProcessor { @Override public ProcessResult process(TaskContext context) { diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBroadcastProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBroadcastProcessor.java index 80d0839c9a08..65727212a3f7 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBroadcastProcessor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBroadcastProcessor.java @@ -11,7 +11,7 @@ import tech.powerjob.worker.core.processor.TaskResult; import tech.powerjob.worker.core.processor.sdk.BroadcastProcessor; -public class TestBroadcastProcessor implements BroadcastProcessor { +class TestBroadcastProcessor implements BroadcastProcessor { @Override public ProcessResult preProcess(TaskContext taskContext) { return new ProcessResult(true, "preProcess success"); diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestMapProcessProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestMapProcessProcessor.java index 9f83cc705585..2b0855efa725 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestMapProcessProcessor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestMapProcessProcessor.java @@ -9,7 +9,7 @@ import tech.powerjob.worker.core.processor.TaskContext; import tech.powerjob.worker.core.processor.sdk.MapProcessor; -public class TestMapProcessProcessor implements MapProcessor { +class TestMapProcessProcessor implements MapProcessor { @Override public ProcessResult process(TaskContext context) { diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestMapReduceProcessProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestMapReduceProcessProcessor.java index 5700654af1ef..06497121e5ba 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestMapReduceProcessProcessor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestMapReduceProcessProcessor.java @@ -11,7 +11,7 @@ import tech.powerjob.worker.core.processor.TaskResult; import tech.powerjob.worker.core.processor.sdk.MapReduceProcessor; -public class TestMapReduceProcessProcessor implements MapReduceProcessor { +class TestMapReduceProcessProcessor implements MapReduceProcessor { @Override public ProcessResult process(TaskContext context) { From 2bac40b5723bd6ba79ca9620cd5d3136bafb0f11 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Mon, 26 Aug 2024 13:35:58 +0800 Subject: [PATCH 14/22] Update settings.gradle.kts Co-authored-by: Steve Rao --- settings.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index e3b391a929de..e8906c49b06d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -477,7 +477,7 @@ include(":instrumentation:play:play-ws:play-ws-2.0:javaagent") include(":instrumentation:play:play-ws:play-ws-2.1:javaagent") include(":instrumentation:play:play-ws:play-ws-common:javaagent") include(":instrumentation:play:play-ws:play-ws-common:testing") -include("instrumentation:powerjob-4.0:javaagent") +include(":instrumentation:powerjob-4.0:javaagent") include(":instrumentation:pulsar:pulsar-2.8:javaagent") include(":instrumentation:pulsar:pulsar-2.8:javaagent-unit-tests") include(":instrumentation:quarkus-resteasy-reactive:common-testing") From 878e7d277522fd8806d339bd984f4b89d4b7e0f6 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Mon, 26 Aug 2024 14:16:00 +0800 Subject: [PATCH 15/22] fix cr --- docs/supported-libraries.md | 6 +++--- .../powerjob/v4_0/BasicProcessorInstrumentation.java | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/supported-libraries.md b/docs/supported-libraries.md index 15d91fcffddc..e8c98715f625 100644 --- a/docs/supported-libraries.md +++ b/docs/supported-libraries.md @@ -35,8 +35,7 @@ These are the supported libraries and frameworks: | [Apache Kafka Streams API](https://kafka.apache.org/documentation/streams/) | 0.11+ | N/A | [Messaging Spans] | | [Apache MyFaces](https://myfaces.apache.org/) | 1.2+ (not including 3.x yet) | N/A | Provides `http.route` [2], Controller Spans [3] | | [Apache Pekko Actors](https://pekko.apache.org/) | 1.0+ | N/A | Context propagation | -| [Apache Pekko HTTP](https://pekko.apache.org/) | 1.0+ | N/A | [HTTP Client Spans], [HTTP Client Metrics], [HTTP Server Spans], [HTTP Server Metrics], Provides `http.route` [2] | -| [PowerJob](http://www.powerjob.tech/) | 4.0+ | N/A | none | +| [Apache Pekko HTTP](https://pekko.apache.org/) | 1.0+ | N/A | [HTTP Client Spans], [HTTP Client Metrics], [HTTP Server Spans], [HTTP Server Metrics], Provides `http.route` [2] | | none | | [Apache Pulsar](https://pulsar.apache.org/) | 2.8+ | N/A | [Messaging Spans] | | [Apache RocketMQ gRPC/Protobuf-based Client](https://rocketmq.apache.org/) | 5.0+ | N/A | [Messaging Spans] | | [Apache RocketMQ Remoting-based Client](https://rocketmq.apache.org/) | 4.8+ | [opentelemetry-rocketmq-client-4.8](../instrumentation/rocketmq/rocketmq-client/rocketmq-client-4.8/library) | [Messaging Spans] | @@ -107,7 +106,8 @@ These are the supported libraries and frameworks: | [Oracle UCP](https://docs.oracle.com/database/121/JJUCP/) | 11.2+ | [opentelemetry-oracle-ucp-11.2](../instrumentation/oracle-ucp-11.2/library) | [Database Pool Metrics] | | [OSHI](https://github.com/oshi/oshi/) | 5.3.1+ | [opentelemetry-oshi](../instrumentation/oshi/library) | [System Metrics] (partial support) | | [Play MVC](https://github.com/playframework/playframework) | 2.4+ | N/A | Provides `http.route` [2], Controller Spans [3] | -| [Play WS](https://github.com/playframework/play-ws) | 1.0+ | N/A | [HTTP Client Spans], [HTTP Client Metrics] | +| [Play WS](https://github.com/playframework/play-ws) | 1.0+ | N/A +| [PowerJob](http://www.powerjob.tech/) | 4.0+ | N/A | [HTTP Client Spans], [HTTP Client Metrics] | | [Quarkus Resteasy Reactive](https://quarkus.io/extensions/io.quarkus/quarkus-resteasy-reactive/) | 2.16.7+ | N/A | Provides `http.route` [2] | | [Quartz](https://www.quartz-scheduler.org/) | 2.0+ | [opentelemetry-quartz-2.0](../instrumentation/quartz-2.0/library) | none | | [R2DBC](https://r2dbc.io/) | 1.0+ | [opentelemetry-r2dbc-1.0](../instrumentation/r2dbc-1.0/library) | [Database Client Spans] | diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java index 9b35b34e5fef..494cf601a2c6 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java @@ -47,8 +47,7 @@ public static void onSchedule( @Advice.Local("otelContext") Context context, @Advice.Local("otelScope") Scope scope) { Context parentContext = currentContext(); - Long jobId = taskContext.getJobId(); - request = PowerJobProcessRequest.createRequest(jobId, handler, "process"); + request = PowerJobProcessRequest.createRequest(taskContext.getJobId(), handler, "process"); request.setInstanceParams(taskContext.getInstanceParams()); request.setJobParams(taskContext.getJobParams()); context = helper().startSpan(parentContext, request); From 28a9ff1f2fe3b069f285f42d8d5346e34bd49ab7 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Mon, 26 Aug 2024 14:39:24 +0800 Subject: [PATCH 16/22] fix ci --- docs/supported-libraries.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/supported-libraries.md b/docs/supported-libraries.md index e8c98715f625..62361ffc61f9 100644 --- a/docs/supported-libraries.md +++ b/docs/supported-libraries.md @@ -35,7 +35,7 @@ These are the supported libraries and frameworks: | [Apache Kafka Streams API](https://kafka.apache.org/documentation/streams/) | 0.11+ | N/A | [Messaging Spans] | | [Apache MyFaces](https://myfaces.apache.org/) | 1.2+ (not including 3.x yet) | N/A | Provides `http.route` [2], Controller Spans [3] | | [Apache Pekko Actors](https://pekko.apache.org/) | 1.0+ | N/A | Context propagation | -| [Apache Pekko HTTP](https://pekko.apache.org/) | 1.0+ | N/A | [HTTP Client Spans], [HTTP Client Metrics], [HTTP Server Spans], [HTTP Server Metrics], Provides `http.route` [2] | | none | +| [Apache Pekko HTTP](https://pekko.apache.org/) | 1.0+ | N/A | [HTTP Client Spans], [HTTP Client Metrics], [HTTP Server Spans], [HTTP Server Metrics], Provides `http.route` [2] | | [Apache Pulsar](https://pulsar.apache.org/) | 2.8+ | N/A | [Messaging Spans] | | [Apache RocketMQ gRPC/Protobuf-based Client](https://rocketmq.apache.org/) | 5.0+ | N/A | [Messaging Spans] | | [Apache RocketMQ Remoting-based Client](https://rocketmq.apache.org/) | 4.8+ | [opentelemetry-rocketmq-client-4.8](../instrumentation/rocketmq/rocketmq-client/rocketmq-client-4.8/library) | [Messaging Spans] | @@ -106,8 +106,8 @@ These are the supported libraries and frameworks: | [Oracle UCP](https://docs.oracle.com/database/121/JJUCP/) | 11.2+ | [opentelemetry-oracle-ucp-11.2](../instrumentation/oracle-ucp-11.2/library) | [Database Pool Metrics] | | [OSHI](https://github.com/oshi/oshi/) | 5.3.1+ | [opentelemetry-oshi](../instrumentation/oshi/library) | [System Metrics] (partial support) | | [Play MVC](https://github.com/playframework/playframework) | 2.4+ | N/A | Provides `http.route` [2], Controller Spans [3] | -| [Play WS](https://github.com/playframework/play-ws) | 1.0+ | N/A -| [PowerJob](http://www.powerjob.tech/) | 4.0+ | N/A | [HTTP Client Spans], [HTTP Client Metrics] | +| [Play WS](https://github.com/playframework/play-ws) | 1.0+ | N/A | [HTTP Client Spans], [HTTP Client Metrics] | +| [PowerJob](http://www.powerjob.tech/) | 4.0+ | N/A | none | | [Quarkus Resteasy Reactive](https://quarkus.io/extensions/io.quarkus/quarkus-resteasy-reactive/) | 2.16.7+ | N/A | Provides `http.route` [2] | | [Quartz](https://www.quartz-scheduler.org/) | 2.0+ | [opentelemetry-quartz-2.0](../instrumentation/quartz-2.0/library) | none | | [R2DBC](https://r2dbc.io/) | 1.0+ | [opentelemetry-r2dbc-1.0](../instrumentation/r2dbc-1.0/library) | [Database Client Spans] | From d933e0bc5dd5ed83b4adf7d9a50b804a4703a22a Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Wed, 28 Aug 2024 09:31:07 +0800 Subject: [PATCH 17/22] Update docs/supported-libraries.md Co-authored-by: Helen <56097766+heyams@users.noreply.github.com> --- docs/supported-libraries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/supported-libraries.md b/docs/supported-libraries.md index 62361ffc61f9..eff122d514d2 100644 --- a/docs/supported-libraries.md +++ b/docs/supported-libraries.md @@ -107,7 +107,7 @@ These are the supported libraries and frameworks: | [OSHI](https://github.com/oshi/oshi/) | 5.3.1+ | [opentelemetry-oshi](../instrumentation/oshi/library) | [System Metrics] (partial support) | | [Play MVC](https://github.com/playframework/playframework) | 2.4+ | N/A | Provides `http.route` [2], Controller Spans [3] | | [Play WS](https://github.com/playframework/play-ws) | 1.0+ | N/A | [HTTP Client Spans], [HTTP Client Metrics] | -| [PowerJob](http://www.powerjob.tech/) | 4.0+ | N/A | none | +| [PowerJob](http://www.powerjob.tech/) | 4.0.0+ | N/A | none | | [Quarkus Resteasy Reactive](https://quarkus.io/extensions/io.quarkus/quarkus-resteasy-reactive/) | 2.16.7+ | N/A | Provides `http.route` [2] | | [Quartz](https://www.quartz-scheduler.org/) | 2.0+ | [opentelemetry-quartz-2.0](../instrumentation/quartz-2.0/library) | none | | [R2DBC](https://r2dbc.io/) | 1.0+ | [opentelemetry-r2dbc-1.0](../instrumentation/r2dbc-1.0/library) | [Database Client Spans] | From fe81649b51424f59d35c92e2b1bf0149e5c743b3 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Wed, 28 Aug 2024 09:47:55 +0800 Subject: [PATCH 18/22] fix ci --- docs/supported-libraries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/supported-libraries.md b/docs/supported-libraries.md index eff122d514d2..725423a4c465 100644 --- a/docs/supported-libraries.md +++ b/docs/supported-libraries.md @@ -107,7 +107,7 @@ These are the supported libraries and frameworks: | [OSHI](https://github.com/oshi/oshi/) | 5.3.1+ | [opentelemetry-oshi](../instrumentation/oshi/library) | [System Metrics] (partial support) | | [Play MVC](https://github.com/playframework/playframework) | 2.4+ | N/A | Provides `http.route` [2], Controller Spans [3] | | [Play WS](https://github.com/playframework/play-ws) | 1.0+ | N/A | [HTTP Client Spans], [HTTP Client Metrics] | -| [PowerJob](http://www.powerjob.tech/) | 4.0.0+ | N/A | none | +| [PowerJob](http://www.powerjob.tech/) | 4.0.0+ | N/A | none | | [Quarkus Resteasy Reactive](https://quarkus.io/extensions/io.quarkus/quarkus-resteasy-reactive/) | 2.16.7+ | N/A | Provides `http.route` [2] | | [Quartz](https://www.quartz-scheduler.org/) | 2.0+ | [opentelemetry-quartz-2.0](../instrumentation/quartz-2.0/library) | none | | [R2DBC](https://r2dbc.io/) | 1.0+ | [opentelemetry-r2dbc-1.0](../instrumentation/r2dbc-1.0/library) | [Database Client Spans] | From 2222dd8f96d7d82d3f8f6e5e5e136e27201b61b4 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Wed, 4 Sep 2024 10:20:10 +0800 Subject: [PATCH 19/22] fix cr --- .../v4_0/BasicProcessorInstrumentation.java | 10 +- ...owerJobExperimentalAttributeExtractor.java | 4 +- .../v4_0/PowerJobInstrumentationModule.java | 5 +- .../v4_0/PowerJobInstrumenterFactory.java | 49 ----- .../powerjob/v4_0/PowerJobProcessRequest.java | 62 +++---- .../powerjob/v4_0/PowerJobSingletons.java | 42 ++++- .../v4_0/PowerJobSpanNameExtractor.java | 23 --- .../v4_0/PowerJobBasicProcessorTest.java | 174 +++++++++--------- .../powerjob/v4_0/TestBroadcastProcessor.java | 1 + 9 files changed, 168 insertions(+), 202 deletions(-) delete mode 100644 instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobInstrumenterFactory.java delete mode 100644 instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSpanNameExtractor.java diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java index 494cf601a2c6..a2cbbe301a92 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java @@ -47,9 +47,13 @@ public static void onSchedule( @Advice.Local("otelContext") Context context, @Advice.Local("otelScope") Scope scope) { Context parentContext = currentContext(); - request = PowerJobProcessRequest.createRequest(taskContext.getJobId(), handler, "process"); - request.setInstanceParams(taskContext.getInstanceParams()); - request.setJobParams(taskContext.getJobParams()); + request = + PowerJobProcessRequest.createRequest( + taskContext.getJobId(), + handler, + "process", + taskContext.getJobParams(), + taskContext.getInstanceParams()); context = helper().startSpan(parentContext, request); if (context == null) { return; diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobExperimentalAttributeExtractor.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobExperimentalAttributeExtractor.java index 0c527aedb06d..7a0e52d229b6 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobExperimentalAttributeExtractor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobExperimentalAttributeExtractor.java @@ -20,7 +20,7 @@ class PowerJobExperimentalAttributeExtractor AttributeKey.stringKey("scheduling.powerjob.job.param"); private static final AttributeKey POWERJOB_JOB_INSTANCE_PARAM = AttributeKey.stringKey("scheduling.powerjob.job.instance.param"); - private static final AttributeKey POWERJOB_JOB_INSTANCE_TRPE = + private static final AttributeKey POWERJOB_JOB_INSTANCE_TYPE = AttributeKey.stringKey("scheduling.powerjob.job.type"); @Override @@ -31,7 +31,7 @@ public void onStart( attributes.put(POWERJOB_JOB_ID, powerJobProcessRequest.getJobId()); attributes.put(POWERJOB_JOB_PARAM, powerJobProcessRequest.getJobParams()); attributes.put(POWERJOB_JOB_INSTANCE_PARAM, powerJobProcessRequest.getInstanceParams()); - attributes.put(POWERJOB_JOB_INSTANCE_TRPE, powerJobProcessRequest.getJobType()); + attributes.put(POWERJOB_JOB_INSTANCE_TYPE, powerJobProcessRequest.getJobType()); } @Override diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobInstrumentationModule.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobInstrumentationModule.java index 86cb6d6cc069..4838b489f02a 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobInstrumentationModule.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobInstrumentationModule.java @@ -5,11 +5,10 @@ package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; -import static java.util.Arrays.asList; - import com.google.auto.service.AutoService; import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; +import java.util.Collections; import java.util.List; @AutoService(InstrumentationModule.class) @@ -20,6 +19,6 @@ public PowerJobInstrumentationModule() { @Override public List typeInstrumentations() { - return asList(new BasicProcessorInstrumentation()); + return Collections.singletonList(new BasicProcessorInstrumentation()); } } diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobInstrumenterFactory.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobInstrumenterFactory.java deleted file mode 100644 index 9a877ea527de..000000000000 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobInstrumenterFactory.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; - -import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.api.common.AttributeKey; -import io.opentelemetry.api.trace.StatusCode; -import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeAttributesExtractor; -import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; -import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; -import io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder; -import io.opentelemetry.javaagent.bootstrap.internal.AgentInstrumentationConfig; - -public final class PowerJobInstrumenterFactory { - - static final boolean CAPTURE_EXPERIMENTAL_SPAN_ATTRIBUTES = - AgentInstrumentationConfig.get() - .getBoolean("otel.instrumentation.powerjob.experimental-span-attributes", false); - - public static Instrumenter create(String instrumentationName) { - PowerJobCodeAttributesGetter codeAttributesGetter = new PowerJobCodeAttributesGetter(); - PowerJobSpanNameExtractor spanNameExtractor = - new PowerJobSpanNameExtractor(codeAttributesGetter); - - InstrumenterBuilder builder = - Instrumenter.builder( - GlobalOpenTelemetry.get(), instrumentationName, spanNameExtractor) - .addAttributesExtractor(CodeAttributesExtractor.create(codeAttributesGetter)) - .setSpanStatusExtractor( - (spanStatusBuilder, powerJobProcessRequest, response, error) -> { - if (error != null || powerJobProcessRequest.isFailed()) { - spanStatusBuilder.setStatus(StatusCode.ERROR); - } - }); - - if (CAPTURE_EXPERIMENTAL_SPAN_ATTRIBUTES) { - builder.addAttributesExtractor( - AttributesExtractor.constant(AttributeKey.stringKey("job.system"), "powerjob")); - builder.addAttributesExtractor(new PowerJobExperimentalAttributeExtractor()); - } - - return builder.buildInstrumenter(); - } - - private PowerJobInstrumenterFactory() {} -} diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobProcessRequest.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobProcessRequest.java index 5f561bb13d2a..a6d88a832750 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobProcessRequest.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobProcessRequest.java @@ -6,16 +6,9 @@ package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.BASIC_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.BROADCAST_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.DYNAMIC_DATASOURCE_SQL_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.FILE_CLEANUP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.HTTP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.MAP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.MAP_REDUCE_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.PYTHON_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.SHELL_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.SPRING_DATASOURCE_SQL_PROCESSOR; +import java.util.Arrays; +import java.util.List; import tech.powerjob.official.processors.impl.FileCleanupProcessor; import tech.powerjob.official.processors.impl.HttpProcessor; import tech.powerjob.official.processors.impl.script.PythonProcessor; @@ -37,43 +30,40 @@ public final class PowerJobProcessRequest { private String jobParams; private String instanceParams; + private static final List> KNOWN_PROCESSORS = + Arrays.asList( + FileCleanupProcessor.class, + BroadcastProcessor.class, + MapReduceProcessor.class, + MapProcessor.class, + ShellProcessor.class, + PythonProcessor.class, + HttpProcessor.class, + SpringDatasourceSqlProcessor.class, + DynamicDatasourceSqlProcessor.class); private PowerJobProcessRequest(Long jobId) { this.jobId = jobId; } public static PowerJobProcessRequest createRequest( - Long jobId, BasicProcessor handler, String methodName) { + Long jobId, + BasicProcessor handler, + String methodName, + String jobParams, + String instanceParams) { PowerJobProcessRequest request = new PowerJobProcessRequest(jobId); request.methodName = methodName; request.declaringClass = handler.getClass(); + request.jobParams = jobParams; + request.instanceParams = instanceParams; request.jobType = BASIC_PROCESSOR; - if (handler instanceof BroadcastProcessor) { - request.jobType = BROADCAST_PROCESSOR; - } - if (handler instanceof MapProcessor) { - request.jobType = MAP_PROCESSOR; - } - if (handler instanceof MapReduceProcessor) { - request.jobType = MAP_REDUCE_PROCESSOR; - } - if (handler instanceof ShellProcessor) { - request.jobType = SHELL_PROCESSOR; - } - if (handler instanceof PythonProcessor) { - request.jobType = PYTHON_PROCESSOR; - } - if (handler instanceof HttpProcessor) { - request.jobType = HTTP_PROCESSOR; - } - if (handler instanceof FileCleanupProcessor) { - request.jobType = FILE_CLEANUP_PROCESSOR; - } - if (handler instanceof SpringDatasourceSqlProcessor) { - request.jobType = SPRING_DATASOURCE_SQL_PROCESSOR; - } - if (handler instanceof DynamicDatasourceSqlProcessor) { - request.jobType = DYNAMIC_DATASOURCE_SQL_PROCESSOR; + + for (Class processorClass : KNOWN_PROCESSORS) { + if (processorClass.isInstance(handler)) { + request.jobType = processorClass.getSimpleName(); + break; + } } return request; } diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSingletons.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSingletons.java index 3d5c4f94daad..106e9635b507 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSingletons.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSingletons.java @@ -5,12 +5,50 @@ package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; +import io.opentelemetry.api.GlobalOpenTelemetry; +import io.opentelemetry.api.common.AttributeKey; +import io.opentelemetry.api.trace.StatusCode; +import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeAttributesExtractor; +import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeSpanNameExtractor; +import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; +import io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder; +import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor; +import io.opentelemetry.javaagent.bootstrap.internal.AgentInstrumentationConfig; public final class PowerJobSingletons { private static final String INSTRUMENTATION_NAME = "io.opentelemetry.powerjob-4.0"; - private static final Instrumenter INSTRUMENTER = - PowerJobInstrumenterFactory.create(INSTRUMENTATION_NAME); + + private static final boolean CAPTURE_EXPERIMENTAL_SPAN_ATTRIBUTES = + AgentInstrumentationConfig.get() + .getBoolean("otel.instrumentation.powerjob.experimental-span-attributes", false); + private static final Instrumenter INSTRUMENTER = create(); + + private static Instrumenter create() { + PowerJobCodeAttributesGetter codeAttributesGetter = new PowerJobCodeAttributesGetter(); + SpanNameExtractor spanNameExtractor = + CodeSpanNameExtractor.create(codeAttributesGetter); + + InstrumenterBuilder builder = + Instrumenter.builder( + GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, spanNameExtractor) + .addAttributesExtractor(CodeAttributesExtractor.create(codeAttributesGetter)) + .setSpanStatusExtractor( + (spanStatusBuilder, powerJobProcessRequest, response, error) -> { + if (error != null || powerJobProcessRequest.isFailed()) { + spanStatusBuilder.setStatus(StatusCode.ERROR); + } + }); + + if (CAPTURE_EXPERIMENTAL_SPAN_ATTRIBUTES) { + builder.addAttributesExtractor( + AttributesExtractor.constant(AttributeKey.stringKey("job.system"), "powerjob")); + builder.addAttributesExtractor(new PowerJobExperimentalAttributeExtractor()); + } + + return builder.buildInstrumenter(); + } + private static final PowerJobHelper HELPER = PowerJobHelper.create( INSTRUMENTER, diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSpanNameExtractor.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSpanNameExtractor.java deleted file mode 100644 index 6da5b9c9e06c..000000000000 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSpanNameExtractor.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; - -import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeAttributesGetter; -import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeSpanNameExtractor; -import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor; - -class PowerJobSpanNameExtractor implements SpanNameExtractor { - private final SpanNameExtractor codeSpanNameExtractor; - - PowerJobSpanNameExtractor(CodeAttributesGetter getter) { - codeSpanNameExtractor = CodeSpanNameExtractor.create(getter); - } - - @Override - public String extract(PowerJobProcessRequest request) { - return codeSpanNameExtractor.extract(request); - } -} diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java index 7cb5b8711da5..a95508e89453 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java @@ -59,12 +59,12 @@ void testBasicProcessor() throws Exception { trace -> { trace.hasSpansSatisfyingExactly( span -> { - span.hasName(String.format("%s.process", TestBasicProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.unset()); - span.hasAttributesSatisfying( - attributeAssertions( - TestBasicProcessor.class.getName(), jobId, jobParam, BASIC_PROCESSOR)); + span.hasName(String.format("%s.process", TestBasicProcessor.class.getSimpleName())) + .hasKind(SpanKind.INTERNAL) + .hasStatus(StatusData.unset()) + .hasAttributesSatisfyingExactly( + attributeAssertions( + TestBasicProcessor.class.getName(), jobId, jobParam, BASIC_PROCESSOR)); }); }); } @@ -81,12 +81,15 @@ void testBasicFailProcessor() throws Exception { trace.hasSpansSatisfyingExactly( span -> { span.hasName( - String.format("%s.process", TestBasicFailProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.error()); - span.hasAttributesSatisfying( - attributeAssertions( - TestBasicFailProcessor.class.getName(), jobId, jobParam, BASIC_PROCESSOR)); + String.format("%s.process", TestBasicFailProcessor.class.getSimpleName())) + .hasKind(SpanKind.INTERNAL) + .hasStatus(StatusData.error()) + .hasAttributesSatisfyingExactly( + attributeAssertions( + TestBasicFailProcessor.class.getName(), + jobId, + jobParam, + BASIC_PROCESSOR)); }); }); } @@ -103,15 +106,15 @@ void testBroadcastProcessor() throws Exception { trace.hasSpansSatisfyingExactly( span -> { span.hasName( - String.format("%s.process", TestBroadcastProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.unset()); - span.hasAttributesSatisfying( - attributeAssertions( - TestBroadcastProcessor.class.getName(), - jobId, - jobParam, - BROADCAST_PROCESSOR)); + String.format("%s.process", TestBroadcastProcessor.class.getSimpleName())) + .hasKind(SpanKind.INTERNAL) + .hasStatus(StatusData.unset()) + .hasAttributesSatisfyingExactly( + attributeAssertions( + TestBroadcastProcessor.class.getName(), + jobId, + jobParam, + BROADCAST_PROCESSOR)); }); }); } @@ -128,12 +131,15 @@ void testMapProcessor() throws Exception { trace.hasSpansSatisfyingExactly( span -> { span.hasName( - String.format("%s.process", TestMapProcessProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.unset()); - span.hasAttributesSatisfying( - attributeAssertions( - TestMapProcessProcessor.class.getName(), jobId, jobParam, MAP_PROCESSOR)); + String.format("%s.process", TestMapProcessProcessor.class.getSimpleName())) + .hasKind(SpanKind.INTERNAL) + .hasStatus(StatusData.unset()) + .hasAttributesSatisfyingExactly( + attributeAssertions( + TestMapProcessProcessor.class.getName(), + jobId, + jobParam, + MAP_PROCESSOR)); }); }); } @@ -150,16 +156,16 @@ void testMapReduceProcessor() throws Exception { trace.hasSpansSatisfyingExactly( span -> { span.hasName( - String.format( - "%s.process", TestMapReduceProcessProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.unset()); - span.hasAttributesSatisfying( - attributeAssertions( - TestMapReduceProcessProcessor.class.getName(), - jobId, - jobParam, - MAP_REDUCE_PROCESSOR)); + String.format( + "%s.process", TestMapReduceProcessProcessor.class.getSimpleName())) + .hasKind(SpanKind.INTERNAL) + .hasStatus(StatusData.unset()) + .hasAttributesSatisfyingExactly( + attributeAssertions( + TestMapReduceProcessProcessor.class.getName(), + jobId, + jobParam, + MAP_REDUCE_PROCESSOR)); }); }); } @@ -177,12 +183,12 @@ void testShellProcessor() throws Exception { trace -> { trace.hasSpansSatisfyingExactly( span -> { - span.hasName(String.format("%s.process", ShellProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.unset()); - span.hasAttributesSatisfying( - attributeAssertions( - ShellProcessor.class.getName(), jobId, jobParam, SHELL_PROCESSOR)); + span.hasName(String.format("%s.process", ShellProcessor.class.getSimpleName())) + .hasKind(SpanKind.INTERNAL) + .hasStatus(StatusData.unset()) + .hasAttributesSatisfyingExactly( + attributeAssertions( + ShellProcessor.class.getName(), jobId, jobParam, SHELL_PROCESSOR)); }); }); } @@ -200,12 +206,12 @@ void testPythonProcessor() throws Exception { trace -> { trace.hasSpansSatisfyingExactly( span -> { - span.hasName(String.format("%s.process", PythonProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.unset()); - span.hasAttributesSatisfying( - attributeAssertions( - PythonProcessor.class.getName(), jobId, jobParam, PYTHON_PROCESSOR)); + span.hasName(String.format("%s.process", PythonProcessor.class.getSimpleName())) + .hasKind(SpanKind.INTERNAL) + .hasStatus(StatusData.unset()) + .hasAttributesSatisfyingExactly( + attributeAssertions( + PythonProcessor.class.getName(), jobId, jobParam, PYTHON_PROCESSOR)); }); }); } @@ -224,12 +230,12 @@ void testHttpProcessor() throws Exception { trace -> { trace.hasSpansSatisfyingExactly( span -> { - span.hasName(String.format("%s.process", HttpProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.error()); - span.hasAttributesSatisfying( - attributeAssertions( - HttpProcessor.class.getName(), jobId, jobParam, HTTP_PROCESSOR)); + span.hasName(String.format("%s.process", HttpProcessor.class.getSimpleName())) + .hasKind(SpanKind.INTERNAL) + .hasStatus(StatusData.error()) + .hasAttributesSatisfyingExactly( + attributeAssertions( + HttpProcessor.class.getName(), jobId, jobParam, HTTP_PROCESSOR)); }); }); } @@ -254,15 +260,15 @@ void testFileCleanerProcessor() throws Exception { trace.hasSpansSatisfyingExactly( span -> { span.hasName( - String.format("%s.process", FileCleanupProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.unset()); - span.hasAttributesSatisfying( - attributeAssertions( - FileCleanupProcessor.class.getName(), - jobId, - jobParam, - FILE_CLEANUP_PROCESSOR)); + String.format("%s.process", FileCleanupProcessor.class.getSimpleName())) + .hasKind(SpanKind.INTERNAL) + .hasStatus(StatusData.unset()) + .hasAttributesSatisfyingExactly( + attributeAssertions( + FileCleanupProcessor.class.getName(), + jobId, + jobParam, + FILE_CLEANUP_PROCESSOR)); }); }); } @@ -282,16 +288,16 @@ void testSpringDataSourceProcessor() throws Exception { trace.hasSpansSatisfyingExactly( span -> { span.hasName( - String.format( - "%s.process", SpringDatasourceSqlProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.error()); - span.hasAttributesSatisfying( - attributeAssertions( - SpringDatasourceSqlProcessor.class.getName(), - jobId, - jobParam, - SPRING_DATASOURCE_SQL_PROCESSOR)); + String.format( + "%s.process", SpringDatasourceSqlProcessor.class.getSimpleName())) + .hasKind(SpanKind.INTERNAL) + .hasStatus(StatusData.error()) + .hasAttributesSatisfyingExactly( + attributeAssertions( + SpringDatasourceSqlProcessor.class.getName(), + jobId, + jobParam, + SPRING_DATASOURCE_SQL_PROCESSOR)); }); }); } @@ -311,16 +317,16 @@ void testDynamicDataSourceProcessor() throws Exception { trace.hasSpansSatisfyingExactly( span -> { span.hasName( - String.format( - "%s.process", DynamicDatasourceSqlProcessor.class.getSimpleName())); - span.hasKind(SpanKind.INTERNAL); - span.hasStatus(StatusData.error()); - span.hasAttributesSatisfying( - attributeAssertions( - DynamicDatasourceSqlProcessor.class.getName(), - jobId, - jobParam, - DYNAMIC_DATASOURCE_SQL_PROCESSOR)); + String.format( + "%s.process", DynamicDatasourceSqlProcessor.class.getSimpleName())) + .hasKind(SpanKind.INTERNAL) + .hasStatus(StatusData.error()) + .hasAttributesSatisfyingExactly( + attributeAssertions( + DynamicDatasourceSqlProcessor.class.getName(), + jobId, + jobParam, + DYNAMIC_DATASOURCE_SQL_PROCESSOR)); }); }); } diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBroadcastProcessor.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBroadcastProcessor.java index 65727212a3f7..5c170974be31 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBroadcastProcessor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/TestBroadcastProcessor.java @@ -12,6 +12,7 @@ import tech.powerjob.worker.core.processor.sdk.BroadcastProcessor; class TestBroadcastProcessor implements BroadcastProcessor { + @Override public ProcessResult preProcess(TaskContext taskContext) { return new ProcessResult(true, "preProcess success"); From ef3e686c34ddf6e461b54e740ae459ff1ced5fcf Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Wed, 4 Sep 2024 10:44:03 +0800 Subject: [PATCH 20/22] fix cr --- .../powerjob/v4_0/BasicProcessorInstrumentation.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java index a2cbbe301a92..f78f680893b5 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java @@ -10,6 +10,7 @@ import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobSingletons.helper; import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import static net.bytebuddy.matcher.ElementMatchers.takesArguments; import io.opentelemetry.context.Context; @@ -32,7 +33,13 @@ public ElementMatcher typeMatcher() { @Override public void transform(TypeTransformer transformer) { transformer.applyAdviceToMethod( - named("process").and(isPublic()).and(takesArguments(1)), + named("process") + .and(isPublic()) + .and( + takesArguments(1) + .and( + takesArgument( + 0, named("tech.powerjob.worker.core.processor.TaskContext")))), BasicProcessorInstrumentation.class.getName() + "$ProcessAdvice"); } From fd29bb07f92563ef13458df581b04322044f4057 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Thu, 5 Sep 2024 23:18:02 +0800 Subject: [PATCH 21/22] fix cr --- .../v4_0/BasicProcessorInstrumentation.java | 13 +++-- .../powerjob/v4_0/PowerJobConstants.java | 24 -------- ...owerJobExperimentalAttributeExtractor.java | 5 +- .../powerjob/v4_0/PowerJobHelper.java | 55 ------------------ .../powerjob/v4_0/PowerJobProcessRequest.java | 57 +++++++------------ .../powerjob/v4_0/PowerJobSingletons.java | 29 ++++------ .../v4_0/PowerJobBasicProcessorTest.java | 21 +++---- 7 files changed, 54 insertions(+), 150 deletions(-) delete mode 100644 instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobConstants.java delete mode 100644 instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobHelper.java diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java index f78f680893b5..4fd168a2da3a 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/BasicProcessorInstrumentation.java @@ -7,7 +7,7 @@ import static io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge.currentContext; import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.implementsInterface; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobSingletons.helper; +import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobSingletons.instrumenter; import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; @@ -61,10 +61,11 @@ public static void onSchedule( "process", taskContext.getJobParams(), taskContext.getInstanceParams()); - context = helper().startSpan(parentContext, request); - if (context == null) { + + if (!instrumenter().shouldStart(parentContext, request)) { return; } + context = instrumenter().start(parentContext, request); scope = context.makeCurrent(); } @@ -76,7 +77,11 @@ public static void stopSpan( @Advice.Local("otelRequest") PowerJobProcessRequest request, @Advice.Local("otelContext") Context context, @Advice.Local("otelScope") Scope scope) { - helper().stopSpan(result, request, throwable, scope, context); + if (scope == null) { + return; + } + scope.close(); + instrumenter().end(context, request, result, throwable); } } } diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobConstants.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobConstants.java deleted file mode 100644 index c2659315e080..000000000000 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobConstants.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; - -public final class PowerJobConstants { - - private PowerJobConstants() {} - - public static final String BASIC_PROCESSOR = "BasicProcessor"; - public static final String BROADCAST_PROCESSOR = "BroadcastProcessor"; - public static final String MAP_PROCESSOR = "MapProcessor"; - public static final String MAP_REDUCE_PROCESSOR = "MapReduceProcessor"; - - // Official processors - public static final String SHELL_PROCESSOR = "ShellProcessor"; - public static final String PYTHON_PROCESSOR = "PythonProcessor"; - public static final String HTTP_PROCESSOR = "HttpProcessor"; - public static final String FILE_CLEANUP_PROCESSOR = "FileCleanupProcessor"; - public static final String SPRING_DATASOURCE_SQL_PROCESSOR = "SpringDatasourceSqlProcessor"; - public static final String DYNAMIC_DATASOURCE_SQL_PROCESSOR = "DynamicDatasourceSqlProcessor"; -} diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobExperimentalAttributeExtractor.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobExperimentalAttributeExtractor.java index 7a0e52d229b6..50f71ca84767 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobExperimentalAttributeExtractor.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobExperimentalAttributeExtractor.java @@ -10,9 +10,10 @@ import io.opentelemetry.context.Context; import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; import javax.annotation.Nullable; +import tech.powerjob.worker.core.processor.ProcessResult; class PowerJobExperimentalAttributeExtractor - implements AttributesExtractor { + implements AttributesExtractor { private static final AttributeKey POWERJOB_JOB_ID = AttributeKey.longKey("scheduling.powerjob.job.id"); @@ -39,6 +40,6 @@ public void onEnd( AttributesBuilder attributes, Context context, PowerJobProcessRequest powerJobProcessRequest, - @Nullable Void unused, + @Nullable ProcessResult unused, @Nullable Throwable error) {} } diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobHelper.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobHelper.java deleted file mode 100644 index 66bafd39f74d..000000000000 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobHelper.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; - -import io.opentelemetry.context.Context; -import io.opentelemetry.context.Scope; -import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; -import java.util.function.Predicate; -import tech.powerjob.worker.core.processor.ProcessResult; - -public final class PowerJobHelper { - - private final Instrumenter instrumenter; - - private final Predicate failedStatusPredicate; - - private PowerJobHelper( - Instrumenter instrumenter, - Predicate failedStatusPredicate) { - this.instrumenter = instrumenter; - this.failedStatusPredicate = failedStatusPredicate; - } - - public static PowerJobHelper create( - Instrumenter instrumenter, - Predicate failedStatusPredicate) { - return new PowerJobHelper(instrumenter, failedStatusPredicate); - } - - public Context startSpan(Context parentContext, PowerJobProcessRequest request) { - if (!instrumenter.shouldStart(parentContext, request)) { - return null; - } - return instrumenter.start(parentContext, request); - } - - public void stopSpan( - ProcessResult result, - PowerJobProcessRequest request, - Throwable throwable, - Scope scope, - Context context) { - if (scope == null) { - return; - } - if (failedStatusPredicate.test(result)) { - request.setFailed(); - } - scope.close(); - instrumenter.end(context, request, null, throwable); - } -} diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobProcessRequest.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobProcessRequest.java index a6d88a832750..76145e1bf40e 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobProcessRequest.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobProcessRequest.java @@ -5,8 +5,6 @@ package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.BASIC_PROCESSOR; - import java.util.Arrays; import java.util.List; import tech.powerjob.official.processors.impl.FileCleanupProcessor; @@ -21,15 +19,12 @@ import tech.powerjob.worker.core.processor.sdk.MapReduceProcessor; public final class PowerJobProcessRequest { - private String methodName; + private final String methodName; private final Long jobId; - private String jobType; - private Class declaringClass; - - private boolean failed; - - private String jobParams; - private String instanceParams; + private final String jobType; + private final Class declaringClass; + private final String jobParams; + private final String instanceParams; private static final List> KNOWN_PROCESSORS = Arrays.asList( FileCleanupProcessor.class, @@ -42,8 +37,19 @@ public final class PowerJobProcessRequest { SpringDatasourceSqlProcessor.class, DynamicDatasourceSqlProcessor.class); - private PowerJobProcessRequest(Long jobId) { + private PowerJobProcessRequest( + Long jobId, + String methodName, + Class declaringClass, + String jobParams, + String instanceParams, + String jobType) { this.jobId = jobId; + this.methodName = methodName; + this.jobType = jobType; + this.declaringClass = declaringClass; + this.jobParams = jobParams; + this.instanceParams = instanceParams; } public static PowerJobProcessRequest createRequest( @@ -52,28 +58,15 @@ public static PowerJobProcessRequest createRequest( String methodName, String jobParams, String instanceParams) { - PowerJobProcessRequest request = new PowerJobProcessRequest(jobId); - request.methodName = methodName; - request.declaringClass = handler.getClass(); - request.jobParams = jobParams; - request.instanceParams = instanceParams; - request.jobType = BASIC_PROCESSOR; - + String jobType = "BasicProcessor"; for (Class processorClass : KNOWN_PROCESSORS) { if (processorClass.isInstance(handler)) { - request.jobType = processorClass.getSimpleName(); + jobType = processorClass.getSimpleName(); break; } } - return request; - } - - public void setFailed() { - failed = true; - } - - public boolean isFailed() { - return failed; + return new PowerJobProcessRequest( + jobId, methodName, handler.getClass(), jobParams, instanceParams, jobType); } public String getMethodName() { @@ -92,18 +85,10 @@ public String getJobParams() { return jobParams; } - public void setJobParams(String jobParams) { - this.jobParams = jobParams; - } - public String getInstanceParams() { return instanceParams; } - public void setInstanceParams(String instanceParams) { - this.instanceParams = instanceParams; - } - public String getJobType() { return jobType; } diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSingletons.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSingletons.java index 106e9635b507..0bb4de93374b 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSingletons.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSingletons.java @@ -15,6 +15,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder; import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor; import io.opentelemetry.javaagent.bootstrap.internal.AgentInstrumentationConfig; +import tech.powerjob.worker.core.processor.ProcessResult; public final class PowerJobSingletons { private static final String INSTRUMENTATION_NAME = "io.opentelemetry.powerjob-4.0"; @@ -22,20 +23,24 @@ public final class PowerJobSingletons { private static final boolean CAPTURE_EXPERIMENTAL_SPAN_ATTRIBUTES = AgentInstrumentationConfig.get() .getBoolean("otel.instrumentation.powerjob.experimental-span-attributes", false); - private static final Instrumenter INSTRUMENTER = create(); + private static final Instrumenter INSTRUMENTER = create(); - private static Instrumenter create() { + public static Instrumenter instrumenter() { + return INSTRUMENTER; + } + + private static Instrumenter create() { PowerJobCodeAttributesGetter codeAttributesGetter = new PowerJobCodeAttributesGetter(); SpanNameExtractor spanNameExtractor = CodeSpanNameExtractor.create(codeAttributesGetter); - InstrumenterBuilder builder = - Instrumenter.builder( + InstrumenterBuilder builder = + Instrumenter.builder( GlobalOpenTelemetry.get(), INSTRUMENTATION_NAME, spanNameExtractor) .addAttributesExtractor(CodeAttributesExtractor.create(codeAttributesGetter)) .setSpanStatusExtractor( (spanStatusBuilder, powerJobProcessRequest, response, error) -> { - if (error != null || powerJobProcessRequest.isFailed()) { + if (error != null || response == null || !response.isSuccess()) { spanStatusBuilder.setStatus(StatusCode.ERROR); } }); @@ -49,19 +54,5 @@ private static Instrumenter create() { return builder.buildInstrumenter(); } - private static final PowerJobHelper HELPER = - PowerJobHelper.create( - INSTRUMENTER, - processResult -> { - if (processResult != null) { - return !processResult.isSuccess(); - } - return false; - }); - - public static PowerJobHelper helper() { - return HELPER; - } - private PowerJobSingletons() {} } diff --git a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java index a95508e89453..f38eecfd1800 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java +++ b/instrumentation/powerjob-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobBasicProcessorTest.java @@ -5,16 +5,6 @@ package io.opentelemetry.javaagent.instrumentation.powerjob.v4_0; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.BASIC_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.BROADCAST_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.DYNAMIC_DATASOURCE_SQL_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.FILE_CLEANUP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.HTTP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.MAP_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.MAP_REDUCE_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.PYTHON_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.SHELL_PROCESSOR; -import static io.opentelemetry.javaagent.instrumentation.powerjob.v4_0.PowerJobConstants.SPRING_DATASOURCE_SQL_PROCESSOR; import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo; import static java.util.Arrays.asList; @@ -48,6 +38,17 @@ class PowerJobBasicProcessorTest { @RegisterExtension private static final InstrumentationExtension testing = AgentInstrumentationExtension.create(); + private static final String BASIC_PROCESSOR = "BasicProcessor"; + private static final String BROADCAST_PROCESSOR = "BroadcastProcessor"; + private static final String MAP_PROCESSOR = "MapProcessor"; + private static final String MAP_REDUCE_PROCESSOR = "MapReduceProcessor"; + private static final String SHELL_PROCESSOR = "ShellProcessor"; + private static final String PYTHON_PROCESSOR = "PythonProcessor"; + private static final String HTTP_PROCESSOR = "HttpProcessor"; + private static final String FILE_CLEANUP_PROCESSOR = "FileCleanupProcessor"; + private static final String SPRING_DATASOURCE_SQL_PROCESSOR = "SpringDatasourceSqlProcessor"; + private static final String DYNAMIC_DATASOURCE_SQL_PROCESSOR = "DynamicDatasourceSqlProcessor"; + @Test void testBasicProcessor() throws Exception { long jobId = 1; From 2b43e92e6493ce107d82a336393d97c744dfa435 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Fri, 6 Sep 2024 16:23:52 +0800 Subject: [PATCH 22/22] fix cr --- .../instrumentation/powerjob/v4_0/PowerJobSingletons.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSingletons.java b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSingletons.java index 0bb4de93374b..cf49c5d333a3 100644 --- a/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSingletons.java +++ b/instrumentation/powerjob-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/powerjob/v4_0/PowerJobSingletons.java @@ -14,6 +14,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder; import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor; +import io.opentelemetry.instrumentation.api.instrumenter.SpanStatusExtractor; import io.opentelemetry.javaagent.bootstrap.internal.AgentInstrumentationConfig; import tech.powerjob.worker.core.processor.ProcessResult; @@ -40,8 +41,11 @@ private static Instrumenter create() { .addAttributesExtractor(CodeAttributesExtractor.create(codeAttributesGetter)) .setSpanStatusExtractor( (spanStatusBuilder, powerJobProcessRequest, response, error) -> { - if (error != null || response == null || !response.isSuccess()) { + if (response != null && !response.isSuccess()) { spanStatusBuilder.setStatus(StatusCode.ERROR); + } else { + SpanStatusExtractor.getDefault() + .extract(spanStatusBuilder, powerJobProcessRequest, response, error); } });