diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md index 4e9032902dd8..9340d9ef4217 100644 --- a/docs/en/changes/changes.md +++ b/docs/en/changes/changes.md @@ -2,6 +2,7 @@ #### Project +* Move the DSL class-loading machinery under `core/dsl`. `core/classloader` held only DSL types — `RuleClassLoader`, `DSLClassLoaderManager`, `ClassLoaderGc`, `UnloadProbePayload` and `BytecodeClassDefiner` — so it is now `core/dsl/classloader`, and `Catalog` moves to `core/dsl` because a rule-file taxonomy is not a class-loading concern. Three copies of the "define a generated class into the right loader" dispatch (MAL, LAL, `MeterSystem`) collapse into a static `BytecodeClassDefiner.define`, which also gives the JDK 17 `--add-opens` rationale one home instead of four. Three of the four copies of the generated-class dump-directory lookup become `DslGeneratedFileWriter.resolveClassDumpDir`; OAL keeps its own, because its debug flag is settable independently of the environment variable and two tests rely on that. No behaviour change. * Extend the `GET /inspect/entities` admin API to inspect a metric persisted by **any** OAP, even one this node does not define locally. When the metric is unknown to the local registry, the caller supplies `valueColumn` + `valueType` and the storage backend resolves the physical index/table/group from its own running config (no DB schema/table-metadata read): ES uses the merged `metrics-all` index + `metric_table` discriminator, JDBC probes the node's function tables by the `table_name` discriminator, and BanyanDB synthesizes a read-only measure schema. Scope is no longer required — the `entity_id` is decoded structurally (service / 2nd-level / relations) with a generic `name` leaf. Locally-defined metrics keep the exact field names, scope, and `mqeEntity` as before. * Add the `POST /inspect/values` admin API — read the value series of a metric persisted by **another** OAP (one this node does not define locally) by supplying its `{valueColumn, valueType}`. The real MQE engine runs over a request-scoped `InspectQueryContext` overlay (provide-if-absent — the local catalog always wins) that makes the foreign metric look registered to every read path: `ValueColumnMetadata` resolves its value column / type / scope, and the storage location registries resolve where it lives (`MetadataRegistry` synthesizes a BanyanDB measure schema, `IndexController` resolves the ES `metrics-all` index, `TableHelper` probes the JDBC function tables), so the read returns the native MQE `ExpressionResult` with no per-DAO special-casing. Admin-only (a forced read this OAP cannot validate); not mirrored onto the public REST / GraphQL surface. See the [Inspect API](../setup/backend/admin-api/inspect.md). * Remove the always-on alarm-to-event conversion (`EventHookCallback`). A triggered alarm is no longer synthesized into the events pipeline as an `Alarm`/`AlarmRecovery` event; events now originate only from real event sources (agents, SkyWalking CLI, Kubernetes Event Exporter). Alarms remain available through the alarm store (`getAlarm`/`queryAlarms`) and the configured alarm hooks. This drops a documented "Known Event" and removes 1-2 synthetic event records per alarm fire. @@ -256,7 +257,7 @@ #### OAP Server * Fix LAL's `segmentId` and `spanId` extractor statements, which the grammar accepted and the parser never implemented. `LALParser.g4` declares `traceIdStatement`, `segmentIdStatement` and `spanIdStatement`, and the codegen already carried `setSegmentId`/`setSpanId` in its setter table, but `LALScriptParser.visitExtractorStatement` had a branch for only the first of the three. The remaining alternatives fell through to a line that assumed whatever was left had to be an `ifStatement`, so a rule writing `segmentId ...` failed at boot with a `NullPointerException` naming `IfStatementContext` — for a rule line containing no `if`. Both statements now work, and an unhandled extractor statement reports its own rule line instead of throwing. Existing log records are unaffected: `LogBuilder` copies trace id, segment id and span id straight from the log's metadata, and only skips that copy when a rule has set them — which no shipped rule did, which is why the gap went unnoticed. Dedicated execution tests now cover reading all three fields from `log.traceContext.*` and writing all three from an extractor. -* Remove dead code from the DSL subsystem and correct the shared kernel's own documentation. Deleted `DslContentHash` (a byte-identical, zero-caller twin of the live `ContentHash`), the unused `oal-rt` metrics-function registry, `LogAnalyzerFactory`, `LALCodegenHelper.METADATA_GETTER_ALIASES` (a permanently empty map whose reader branch could never execute — the DSL-name-to-getter mismatch it existed for no longer exists, since `LogMetadata.TraceContext` names the field `traceSegmentId` directly), and three unreferenced members. Three kernel classes carried javadoc asserting consumers that do not exist — `DSLClassLoaderManager` claimed the MAL and LAL compile paths reach for its singleton, `LogDataDebugDump` claimed core renders through it, and `DslContentHash` instructed the reader to consolidate toward the dead copy; a false rationale in a shared kernel is an instruction to the next contributor, so those are now what the call sites actually support. `OALDebug`, `OALDebugRecorder` and `DebugHolderProvider` now record why they sit in core while MAL's and LAL's equivalents do not: `dsl-debugging` declares no `oal-rt` dependency, so they cannot move. `dsl-debugging` also now declares its `server-core` dependency directly instead of inheriting it transitively. +* Remove dead code from the DSL subsystem and correct the shared kernel's own documentation. Deleted `DslContentHash` (a byte-identical, zero-caller twin of the live `ContentHash`), the unused `oal-rt` metrics-function registry, `LogAnalyzerFactory`, `LALCodegenHelper.METADATA_GETTER_ALIASES` (a permanently empty map whose reader branch could never execute — the DSL-name-to-getter mismatch it existed for no longer exists, since `LogMetadata.TraceContext` names the field `traceSegmentId` directly), and three unreferenced members. Three kernel classes carried javadoc asserting consumers that do not exist — `DSLClassLoaderManager` claimed the MAL and LAL compile paths reach for its singleton, `LogDataDebugDump` claimed core renders through it, and `DslContentHash` instructed the reader to consolidate toward the dead copy; a false rationale in a shared kernel is an instruction to the next contributor, so those are now what the call sites actually support. `OALDebug`, `OALDebugRecorder` and `DebugHolderProvider` now record why they sit in core while MAL's and LAL's equivalents do not: `dsl-debugging` declares no `oal-rt` dependency, so they cannot move. * Unify source attribution for every generated DSL class, so a stack frame from OAL, MAL, LAL or Hierarchy code leads back to the rule that produced it. - `SourceFile` now names the RULE and its line, then the generated class file: `(otel-rules/activemq/activemq-broker.yaml:32)otel_rules_activemq_activemq_broker_L32_service_meter.java`. The `.java` generated source file is written only under `SW_DYNAMIC_CLASS_ENGINE_DEBUG`, so in a default deployment naming it named nothing; the class name cannot substitute because sanitising maps `/`, `-` and `.` all to `_` and drops the extension. - The `_L_` segment was the rules-list index rather than a line, so every file's first rule reported as `L0`. It now carries the rule's real line, resolved by the loaders themselves — including Zabbix and Hierarchy, which supplied no coordinate at all, and the runtime-rule hot-update paths for MAL and LAL, which disagreed with their own boot loaders. diff --git a/oap-server/analyzer/hierarchy/src/main/java/org/apache/skywalking/oap/server/core/config/v2/compiler/HierarchyRuleClassGenerator.java b/oap-server/analyzer/hierarchy/src/main/java/org/apache/skywalking/oap/server/core/config/v2/compiler/HierarchyRuleClassGenerator.java index af8b16f94cd6..71d054887d75 100644 --- a/oap-server/analyzer/hierarchy/src/main/java/org/apache/skywalking/oap/server/core/config/v2/compiler/HierarchyRuleClassGenerator.java +++ b/oap-server/analyzer/hierarchy/src/main/java/org/apache/skywalking/oap/server/core/config/v2/compiler/HierarchyRuleClassGenerator.java @@ -30,9 +30,7 @@ import javassist.CtNewConstructor; import javassist.CtNewMethod; import lombok.extern.slf4j.Slf4j; -import org.apache.skywalking.oap.server.core.WorkPath; import org.apache.skywalking.oap.server.core.config.v2.compiler.hierarchy.rule.rt.HierarchyRulePackageHolder; -import org.apache.skywalking.oap.server.library.util.StringUtil; import org.apache.skywalking.oap.server.core.query.type.Service; import org.apache.skywalking.oap.server.core.dsl.DslJavaSourceText; @@ -79,9 +77,7 @@ public final class HierarchyRuleClassGenerator { public HierarchyRuleClassGenerator() { this(ClassPool.getDefault()); - if (StringUtil.isNotEmpty(System.getenv("SW_DYNAMIC_CLASS_ENGINE_DEBUG"))) { - classOutputDir = new File(WorkPath.getPath().getParentFile(), "hierarchy-rt"); - } + classOutputDir = DslGeneratedFileWriter.resolveClassDumpDir("hierarchy"); } public HierarchyRuleClassGenerator(final ClassPool classPool) { diff --git a/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/v2/compiler/LALClassGenerator.java b/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/v2/compiler/LALClassGenerator.java index b004cd6bc8a0..9c50bbea9371 100644 --- a/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/v2/compiler/LALClassGenerator.java +++ b/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/v2/compiler/LALClassGenerator.java @@ -19,12 +19,12 @@ import org.apache.skywalking.oap.server.core.dsl.DslGeneratedFileWriter; import java.io.File; -import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; +import javassist.CannotCompileException; import javassist.ClassPool; import javassist.CtClass; import javassist.CtNewConstructor; @@ -35,12 +35,10 @@ import org.apache.skywalking.oap.log.analyzer.v2.provider.LALConfigs; import org.apache.skywalking.oap.server.core.dsl.DslClassNaming; import org.apache.skywalking.oap.server.core.dsl.DslSourceRef; -import org.apache.skywalking.oap.server.core.classloader.BytecodeClassDefiner; +import org.apache.skywalking.oap.server.core.dsl.classloader.BytecodeClassDefiner; import org.apache.skywalking.oap.server.core.dsl.debug.DSLDebugCodegenSwitch; import org.apache.skywalking.oap.server.core.source.LogBuilder; import org.apache.skywalking.oap.log.analyzer.v2.dsl.LalExpression; -import org.apache.skywalking.oap.server.core.WorkPath; -import org.apache.skywalking.oap.server.library.util.StringUtil; import org.apache.skywalking.oap.server.core.dsl.DslJavaSourceText; /** @@ -219,9 +217,7 @@ void restoreProtoVarState(final Object[] state) { public LALClassGenerator() { this(ClassPool.getDefault(), null); - if (StringUtil.isNotEmpty(System.getenv("SW_DYNAMIC_CLASS_ENGINE_DEBUG"))) { - classOutputDir = new File(WorkPath.getPath().getParentFile(), "lal-rt"); - } + classOutputDir = DslGeneratedFileWriter.resolveClassDumpDir("lal"); } public LALClassGenerator(final ClassPool classPool) { @@ -508,26 +504,12 @@ private String buildSourceText(final CtClass ctClass, * (startup path: class lands in the OAP app loader alongside * {@link LalExpressionPackageHolder}). * - *

{@link BytecodeClassDefiner} loaders (the runtime-rule {@code RuleClassLoader}) - * receive the {@code CtClass.toBytecode()} bytes via their public {@code defineClass} - * — bypasses Javassist's deprecated {@code toClass(loader, ProtectionDomain)} reflection - * path so we don't need {@code --add-opens java.base/java.lang} on the OAP container. - * Same shape as {@code MALClassGenerator}; both DSLs share the contract. + *

Which of the two definition paths applies, and why the + * {@link BytecodeClassDefiner} one exists at all, is documented on + * {@link BytecodeClassDefiner#define}. */ - private Class defineClass(final CtClass ctClass) throws javassist.CannotCompileException { - if (targetClassLoader != null) { - if (targetClassLoader instanceof BytecodeClassDefiner) { - try { - return ((BytecodeClassDefiner) targetClassLoader) - .defineClass(ctClass.getName(), ctClass.toBytecode()); - } catch (final IOException e) { - throw new javassist.CannotCompileException( - "failed to serialise " + ctClass.getName() + " bytes", e); - } - } - return ctClass.toClass(targetClassLoader, null); - } - return ctClass.toClass(LalExpressionPackageHolder.class); + private Class defineClass(final CtClass ctClass) throws CannotCompileException { + return BytecodeClassDefiner.define(ctClass, targetClassLoader, LalExpressionPackageHolder.class); } private static boolean hasParsedAccess( diff --git a/oap-server/analyzer/meter-analyzer/src/main/java/org/apache/skywalking/oap/meter/analyzer/v2/compiler/MALClassGenerator.java b/oap-server/analyzer/meter-analyzer/src/main/java/org/apache/skywalking/oap/meter/analyzer/v2/compiler/MALClassGenerator.java index abbee709e216..5d4e98c63677 100644 --- a/oap-server/analyzer/meter-analyzer/src/main/java/org/apache/skywalking/oap/meter/analyzer/v2/compiler/MALClassGenerator.java +++ b/oap-server/analyzer/meter-analyzer/src/main/java/org/apache/skywalking/oap/meter/analyzer/v2/compiler/MALClassGenerator.java @@ -20,23 +20,21 @@ import org.apache.skywalking.oap.server.core.dsl.DslGeneratedFileWriter; import org.apache.skywalking.oap.server.core.dsl.DslSourceRef; import java.io.File; -import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import javassist.CannotCompileException; import javassist.ClassPool; import javassist.CtClass; import javassist.CtNewConstructor; import javassist.CtNewMethod; import lombok.extern.slf4j.Slf4j; import org.apache.skywalking.oap.meter.analyzer.v2.compiler.rt.MalExpressionPackageHolder; -import org.apache.skywalking.oap.server.core.classloader.BytecodeClassDefiner; +import org.apache.skywalking.oap.server.core.dsl.classloader.BytecodeClassDefiner; import org.apache.skywalking.oap.meter.analyzer.v2.dsl.ExpressionMetadata; import org.apache.skywalking.oap.meter.analyzer.v2.dsl.MalExpression; import org.apache.skywalking.oap.meter.analyzer.v2.dsl.MalFilter; -import org.apache.skywalking.oap.server.core.WorkPath; -import org.apache.skywalking.oap.server.library.util.StringUtil; import org.apache.skywalking.oap.server.core.dsl.DslJavaSourceText; /** @@ -76,10 +74,7 @@ public final class MALClassGenerator { public MALClassGenerator() { this(createClassPool(), null); - if (StringUtil.isNotEmpty(System.getenv("SW_DYNAMIC_CLASS_ENGINE_DEBUG"))) { - bytecodeHelper.setClassOutputDir( - new File(WorkPath.getPath().getParentFile(), "mal-rt")); - } + bytecodeHelper.setClassOutputDir(DslGeneratedFileWriter.resolveClassDumpDir("mal")); } private static ClassPool createClassPool() { @@ -251,29 +246,12 @@ private static String wrapMalFilterSource(final CtClass ctClass, final String fi * (startup path: class lands in the OAP app loader alongside * {@link MalExpressionPackageHolder}). * - *

When {@code targetClassLoader} implements - * {@link org.apache.skywalking.oap.server.core.classloader.BytecodeClassDefiner - * BytecodeClassDefiner} (the runtime-rule {@code RuleClassLoader} does), we hand - * the loader the {@code CtClass.toBytecode()} bytes and let it invoke its public - * {@code defineClass} directly — no Javassist {@code toClass(loader, - * ProtectionDomain)} reflection, no {@code --add-opens java.base/java.lang} - * requirement on JDK 17+. Otherwise we fall back to the legacy 2-arg toClass for - * back-compat, but no shipped loader uses that path today. + *

Which of the two definition paths applies, and why the + * {@link BytecodeClassDefiner} one exists at all, is documented on + * {@link BytecodeClassDefiner#define}. */ - private Class defineClass(final CtClass ctClass) throws javassist.CannotCompileException { - if (targetClassLoader != null) { - if (targetClassLoader instanceof BytecodeClassDefiner) { - try { - return ((BytecodeClassDefiner) targetClassLoader) - .defineClass(ctClass.getName(), ctClass.toBytecode()); - } catch (final IOException e) { - throw new javassist.CannotCompileException( - "failed to serialise " + ctClass.getName() + " bytes", e); - } - } - return ctClass.toClass(targetClassLoader, null); - } - return ctClass.toClass(MalExpressionPackageHolder.class); + private Class defineClass(final CtClass ctClass) throws CannotCompileException { + return BytecodeClassDefiner.define(ctClass, targetClassLoader, MalExpressionPackageHolder.class); } /** diff --git a/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/cluster/DSLDebuggingClusterServiceImpl.java b/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/cluster/DSLDebuggingClusterServiceImpl.java index 5a6872d4ad1f..0c195f8c7bc2 100644 --- a/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/cluster/DSLDebuggingClusterServiceImpl.java +++ b/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/cluster/DSLDebuggingClusterServiceImpl.java @@ -42,7 +42,7 @@ import org.apache.skywalking.oap.server.admin.dsl.debugging.session.InstallOutcome; import org.apache.skywalking.oap.server.admin.dsl.debugging.session.Sample; import org.apache.skywalking.oap.server.admin.dsl.debugging.session.SessionLimits; -import org.apache.skywalking.oap.server.core.classloader.Catalog; +import org.apache.skywalking.oap.server.core.dsl.Catalog; import org.apache.skywalking.oap.server.core.dsl.debug.RuleKey; /** diff --git a/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/lal/LALDebugRecorderFactory.java b/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/lal/LALDebugRecorderFactory.java index 7e418ff8bd25..8c7b4448087e 100644 --- a/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/lal/LALDebugRecorderFactory.java +++ b/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/lal/LALDebugRecorderFactory.java @@ -22,7 +22,7 @@ import org.apache.skywalking.oap.server.admin.dsl.debugging.session.DebugRecorderFactory; import org.apache.skywalking.oap.server.admin.dsl.debugging.session.Granularity; import org.apache.skywalking.oap.server.admin.dsl.debugging.session.SessionLimits; -import org.apache.skywalking.oap.server.core.classloader.Catalog; +import org.apache.skywalking.oap.server.core.dsl.Catalog; import org.apache.skywalking.oap.server.core.dsl.debug.GateHolder; import org.apache.skywalking.oap.server.core.dsl.debug.RuleKey; diff --git a/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/lal/LALHolderRegistry.java b/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/lal/LALHolderRegistry.java index caa022833501..1523e76e8cc2 100644 --- a/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/lal/LALHolderRegistry.java +++ b/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/lal/LALHolderRegistry.java @@ -21,7 +21,7 @@ import java.util.concurrent.ConcurrentHashMap; import lombok.extern.slf4j.Slf4j; import org.apache.skywalking.oap.server.admin.dsl.debugging.session.DebugHolderLookup; -import org.apache.skywalking.oap.server.core.classloader.Catalog; +import org.apache.skywalking.oap.server.core.dsl.Catalog; import org.apache.skywalking.oap.server.core.dsl.debug.GateHolder; import org.apache.skywalking.oap.server.core.dsl.debug.RuleKey; import org.apache.skywalking.oap.server.library.module.Service; diff --git a/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/mal/MALDebugRecorderFactory.java b/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/mal/MALDebugRecorderFactory.java index ef26df26ff74..0036ccdc1121 100644 --- a/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/mal/MALDebugRecorderFactory.java +++ b/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/mal/MALDebugRecorderFactory.java @@ -21,7 +21,7 @@ import org.apache.skywalking.oap.server.admin.dsl.debugging.session.AbstractDebugRecorder; import org.apache.skywalking.oap.server.admin.dsl.debugging.session.DebugRecorderFactory; import org.apache.skywalking.oap.server.admin.dsl.debugging.session.SessionLimits; -import org.apache.skywalking.oap.server.core.classloader.Catalog; +import org.apache.skywalking.oap.server.core.dsl.Catalog; import org.apache.skywalking.oap.server.core.dsl.debug.GateHolder; import org.apache.skywalking.oap.server.core.dsl.debug.RuleKey; diff --git a/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/mal/MALHolderRegistry.java b/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/mal/MALHolderRegistry.java index 5f3cfea27442..627a21baa9ec 100644 --- a/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/mal/MALHolderRegistry.java +++ b/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/mal/MALHolderRegistry.java @@ -21,7 +21,7 @@ import java.util.concurrent.ConcurrentHashMap; import lombok.extern.slf4j.Slf4j; import org.apache.skywalking.oap.server.admin.dsl.debugging.session.DebugHolderLookup; -import org.apache.skywalking.oap.server.core.classloader.Catalog; +import org.apache.skywalking.oap.server.core.dsl.Catalog; import org.apache.skywalking.oap.server.core.dsl.debug.GateHolder; import org.apache.skywalking.oap.server.core.dsl.debug.RuleKey; import org.apache.skywalking.oap.server.library.module.Service; diff --git a/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/module/DSLDebuggingModuleProvider.java b/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/module/DSLDebuggingModuleProvider.java index 12477d4a0ed8..fb57c2e84023 100644 --- a/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/module/DSLDebuggingModuleProvider.java +++ b/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/module/DSLDebuggingModuleProvider.java @@ -40,7 +40,7 @@ import org.apache.skywalking.oap.server.admin.server.cluster.AdminClusterChannelManager; import org.apache.skywalking.oap.server.admin.server.module.AdminServerModule; import org.apache.skywalking.oap.server.core.analysis.DispatcherManager; -import org.apache.skywalking.oap.server.core.classloader.Catalog; +import org.apache.skywalking.oap.server.core.dsl.Catalog; import org.apache.skywalking.oap.server.core.server.GRPCHandlerRegister; import org.apache.skywalking.oap.server.core.source.SourceReceiver; import org.apache.skywalking.oap.server.core.source.SourceReceiverImpl; diff --git a/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/oal/OALDebugRecorderFactory.java b/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/oal/OALDebugRecorderFactory.java index 152429e9ce0e..0fbcbf59ce68 100644 --- a/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/oal/OALDebugRecorderFactory.java +++ b/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/oal/OALDebugRecorderFactory.java @@ -21,7 +21,7 @@ import org.apache.skywalking.oap.server.admin.dsl.debugging.session.AbstractDebugRecorder; import org.apache.skywalking.oap.server.admin.dsl.debugging.session.DebugRecorderFactory; import org.apache.skywalking.oap.server.admin.dsl.debugging.session.SessionLimits; -import org.apache.skywalking.oap.server.core.classloader.Catalog; +import org.apache.skywalking.oap.server.core.dsl.Catalog; import org.apache.skywalking.oap.server.core.dsl.debug.GateHolder; import org.apache.skywalking.oap.server.core.dsl.debug.RuleKey; diff --git a/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/oal/OALHolderLookup.java b/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/oal/OALHolderLookup.java index 12329521517c..70a8f9a1f88c 100644 --- a/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/oal/OALHolderLookup.java +++ b/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/oal/OALHolderLookup.java @@ -21,7 +21,7 @@ import lombok.RequiredArgsConstructor; import org.apache.skywalking.oap.server.admin.dsl.debugging.session.DebugHolderLookup; import org.apache.skywalking.oap.server.core.analysis.DispatcherManager; -import org.apache.skywalking.oap.server.core.classloader.Catalog; +import org.apache.skywalking.oap.server.core.dsl.Catalog; import org.apache.skywalking.oap.server.core.dsl.debug.DebugHolderProvider; import org.apache.skywalking.oap.server.core.dsl.debug.GateHolder; import org.apache.skywalking.oap.server.core.dsl.debug.RuleKey; diff --git a/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/rest/DSLDebuggingRestHandler.java b/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/rest/DSLDebuggingRestHandler.java index 655c2833e32d..65e1805ceab9 100644 --- a/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/rest/DSLDebuggingRestHandler.java +++ b/oap-server/server-admin/dsl-debugging/src/main/java/org/apache/skywalking/oap/server/admin/dsl/debugging/rest/DSLDebuggingRestHandler.java @@ -52,7 +52,7 @@ import org.apache.skywalking.oap.server.admin.dsl.debugging.session.Granularity; import org.apache.skywalking.oap.server.admin.dsl.debugging.session.Sample; import org.apache.skywalking.oap.server.admin.dsl.debugging.session.SessionLimits; -import org.apache.skywalking.oap.server.core.classloader.Catalog; +import org.apache.skywalking.oap.server.core.dsl.Catalog; import org.apache.skywalking.oap.server.core.dsl.debug.RuleKey; /** diff --git a/oap-server/server-admin/dsl-debugging/src/test/java/org/apache/skywalking/oap/server/admin/dsl/debugging/cluster/DSLDebuggingClusterServiceImplTest.java b/oap-server/server-admin/dsl-debugging/src/test/java/org/apache/skywalking/oap/server/admin/dsl/debugging/cluster/DSLDebuggingClusterServiceImplTest.java index 907fdc99046c..6ca14b3bdce4 100644 --- a/oap-server/server-admin/dsl-debugging/src/test/java/org/apache/skywalking/oap/server/admin/dsl/debugging/cluster/DSLDebuggingClusterServiceImplTest.java +++ b/oap-server/server-admin/dsl-debugging/src/test/java/org/apache/skywalking/oap/server/admin/dsl/debugging/cluster/DSLDebuggingClusterServiceImplTest.java @@ -39,7 +39,7 @@ import org.apache.skywalking.oap.server.admin.dsl.debugging.session.DebugRecorderFactory; import org.apache.skywalking.oap.server.admin.dsl.debugging.session.DebugSessionRegistry; import org.apache.skywalking.oap.server.admin.dsl.debugging.session.SessionLimits; -import org.apache.skywalking.oap.server.core.classloader.Catalog; +import org.apache.skywalking.oap.server.core.dsl.Catalog; import org.apache.skywalking.oap.server.core.dsl.debug.GateHolder; import org.apache.skywalking.oap.server.core.dsl.debug.RuleKey; import org.junit.jupiter.api.AfterEach; diff --git a/oap-server/server-admin/dsl-debugging/src/test/java/org/apache/skywalking/oap/server/admin/dsl/debugging/session/DebugSessionRegistryTest.java b/oap-server/server-admin/dsl-debugging/src/test/java/org/apache/skywalking/oap/server/admin/dsl/debugging/session/DebugSessionRegistryTest.java index dc9b3c6d655c..058efa0beda3 100644 --- a/oap-server/server-admin/dsl-debugging/src/test/java/org/apache/skywalking/oap/server/admin/dsl/debugging/session/DebugSessionRegistryTest.java +++ b/oap-server/server-admin/dsl-debugging/src/test/java/org/apache/skywalking/oap/server/admin/dsl/debugging/session/DebugSessionRegistryTest.java @@ -24,7 +24,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.skywalking.oap.server.core.classloader.Catalog; +import org.apache.skywalking.oap.server.core.dsl.Catalog; import org.apache.skywalking.oap.server.core.dsl.debug.GateHolder; import org.apache.skywalking.oap.server.core.dsl.debug.RuleKey; import org.junit.jupiter.api.Test; diff --git a/oap-server/server-admin/dsl-debugging/src/test/java/org/apache/skywalking/oap/server/admin/dsl/debugging/session/RecorderCapTest.java b/oap-server/server-admin/dsl-debugging/src/test/java/org/apache/skywalking/oap/server/admin/dsl/debugging/session/RecorderCapTest.java index 784a9c9cfce7..7c2605c6e13e 100644 --- a/oap-server/server-admin/dsl-debugging/src/test/java/org/apache/skywalking/oap/server/admin/dsl/debugging/session/RecorderCapTest.java +++ b/oap-server/server-admin/dsl-debugging/src/test/java/org/apache/skywalking/oap/server/admin/dsl/debugging/session/RecorderCapTest.java @@ -18,7 +18,7 @@ package org.apache.skywalking.oap.server.admin.dsl.debugging.session; -import org.apache.skywalking.oap.server.core.classloader.Catalog; +import org.apache.skywalking.oap.server.core.dsl.Catalog; import org.apache.skywalking.oap.server.core.dsl.debug.GateHolder; import org.apache.skywalking.oap.server.core.dsl.debug.RuleKey; import org.junit.jupiter.api.Test; diff --git a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/apply/LalFileApplier.java b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/apply/LalFileApplier.java index b3b32544ee43..ab7d68cf9e3a 100644 --- a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/apply/LalFileApplier.java +++ b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/apply/LalFileApplier.java @@ -35,9 +35,9 @@ import org.apache.skywalking.oap.log.analyzer.v2.provider.LALConfigs; import org.apache.skywalking.oap.server.core.dsl.DslYamlLineIndex; import org.apache.skywalking.oap.log.analyzer.v2.provider.log.listener.LogFilterListener; -import org.apache.skywalking.oap.server.core.classloader.Catalog; -import org.apache.skywalking.oap.server.core.classloader.DSLClassLoaderManager; -import org.apache.skywalking.oap.server.core.classloader.RuleClassLoader; +import org.apache.skywalking.oap.server.core.dsl.Catalog; +import org.apache.skywalking.oap.server.core.dsl.classloader.DSLClassLoaderManager; +import org.apache.skywalking.oap.server.core.dsl.classloader.RuleClassLoader; import org.apache.skywalking.oap.server.library.module.ModuleManager; import org.apache.skywalking.oap.server.receiver.runtimerule.layer.AppliedClaims; import org.apache.skywalking.oap.server.receiver.runtimerule.layer.LayerClaim; diff --git a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/apply/MalFileApplier.java b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/apply/MalFileApplier.java index e0b969b3fa29..15335c3d1f35 100644 --- a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/apply/MalFileApplier.java +++ b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/apply/MalFileApplier.java @@ -37,9 +37,9 @@ import org.apache.skywalking.oap.server.core.CoreModule; import org.apache.skywalking.oap.server.core.analysis.LayerDefinition; import org.apache.skywalking.oap.server.core.analysis.meter.MeterSystem; -import org.apache.skywalking.oap.server.core.classloader.Catalog; -import org.apache.skywalking.oap.server.core.classloader.DSLClassLoaderManager; -import org.apache.skywalking.oap.server.core.classloader.RuleClassLoader; +import org.apache.skywalking.oap.server.core.dsl.Catalog; +import org.apache.skywalking.oap.server.core.dsl.classloader.DSLClassLoaderManager; +import org.apache.skywalking.oap.server.core.dsl.classloader.RuleClassLoader; import org.apache.skywalking.oap.server.core.storage.StorageException; import org.apache.skywalking.oap.server.core.storage.model.StorageManipulationOpt; import org.apache.skywalking.oap.server.library.module.ModuleManager; diff --git a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/engine/ApplyContext.java b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/engine/ApplyContext.java index 2f9b49575008..10d83787206e 100644 --- a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/engine/ApplyContext.java +++ b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/engine/ApplyContext.java @@ -40,7 +40,7 @@ * method takes one as a parameter and uses it transactionally. * *

Classloader retire / install is NOT exposed on the context. Engines reach the - * {@link org.apache.skywalking.oap.server.core.classloader.DSLClassLoaderManager#INSTANCE} + * {@link org.apache.skywalking.oap.server.core.dsl.classloader.DSLClassLoaderManager#INSTANCE} * singleton directly when they need to mint or drop a per-file loader; threading the manager * through every context would add coupling without value (lifetime is process-wide, not * per-call). diff --git a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/engine/RuleEngine.java b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/engine/RuleEngine.java index b6000636c2ec..15b5d6f309f0 100644 --- a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/engine/RuleEngine.java +++ b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/engine/RuleEngine.java @@ -21,7 +21,7 @@ import java.util.Map; import java.util.Set; import java.util.function.Consumer; -import org.apache.skywalking.oap.server.core.classloader.DSLClassLoaderManager; +import org.apache.skywalking.oap.server.core.dsl.classloader.DSLClassLoaderManager; import org.apache.skywalking.oap.server.core.storage.management.RuntimeRuleManagementDAO; import org.apache.skywalking.oap.server.core.storage.model.StorageManipulationOpt; import org.apache.skywalking.oap.server.library.module.ModuleManager; @@ -265,7 +265,7 @@ public interface RuleEngine { * scheduler stamps {@code applyError} on the snapshot and surfaces to the caller. * *

{@code kind} controls how the per-file classloader is tagged in {@link - * org.apache.skywalking.oap.server.core.classloader.DSLClassLoaderManager}: + * org.apache.skywalking.oap.server.core.dsl.classloader.DSLClassLoaderManager}: * {@link DSLClassLoaderManager.Kind#RUNTIME} for {@code /addOrUpdate} and tick paths, * {@link DSLClassLoaderManager.Kind#BUNDLED} for the {@code /delete?mode=revertToBundled} * path that re-installs the bundled YAML through the standard apply pipeline. The kind @@ -296,7 +296,7 @@ CompiledDSL compile(RuntimeRuleManagementDAO.RuntimeRuleFile file, /** * Phase: commit. Swap the in-memory cache (engine-owned applied state + appliedContent * for this key), promote the freshly-built classloader via {@link - * org.apache.skywalking.oap.server.core.classloader.DSLClassLoaderManager#commit} and + * org.apache.skywalking.oap.server.core.dsl.classloader.DSLClassLoaderManager#commit} and * retire any displaced prior loader through the manager, fire alarm-reset for the * affected metric name set via the context's alarmResetter callback. From this call * onward the bundle is live; up to this call all phases can be rolled back cleanly. @@ -345,7 +345,7 @@ CompiledDSL compile(RuntimeRuleManagementDAO.RuntimeRuleFile file, * bundled rule from {@link * org.apache.skywalking.oap.server.core.rule.ext.StaticRuleRegistry} (if any) and bring * it back into service via a fresh {@code bundled:} loader from - * {@link org.apache.skywalking.oap.server.core.classloader.DSLClassLoaderManager}. + * {@link org.apache.skywalking.oap.server.core.dsl.classloader.DSLClassLoaderManager}. * *

Returns {@code true} when a bundled rule was found and reinstalled; {@code false} * when no bundled rule exists for this key (the rule is genuinely gone) or the engine diff --git a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/engine/lal/LalRuleEngine.java b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/engine/lal/LalRuleEngine.java index 408c54c1cfd9..e7c071db6441 100644 --- a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/engine/lal/LalRuleEngine.java +++ b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/engine/lal/LalRuleEngine.java @@ -33,8 +33,8 @@ import org.apache.skywalking.oap.log.analyzer.v2.provider.log.listener.LogFilterListener; import org.apache.skywalking.oap.server.admin.dsl.debugging.lal.LALHolderRegistry; import org.apache.skywalking.oap.server.admin.dsl.debugging.module.DSLDebuggingModule; -import org.apache.skywalking.oap.server.core.classloader.Catalog; -import org.apache.skywalking.oap.server.core.classloader.DSLClassLoaderManager; +import org.apache.skywalking.oap.server.core.dsl.Catalog; +import org.apache.skywalking.oap.server.core.dsl.classloader.DSLClassLoaderManager; import org.apache.skywalking.oap.server.core.dsl.debug.RuleKey; import org.apache.skywalking.oap.server.core.rule.ext.StaticRuleRegistry; import org.apache.skywalking.oap.server.core.storage.management.RuntimeRuleManagementDAO; diff --git a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/engine/mal/MalRuleEngine.java b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/engine/mal/MalRuleEngine.java index b9a5de00b476..aeac8c660b0b 100644 --- a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/engine/mal/MalRuleEngine.java +++ b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/engine/mal/MalRuleEngine.java @@ -37,10 +37,10 @@ import org.apache.skywalking.oap.server.admin.dsl.debugging.module.DSLDebuggingModule; import org.apache.skywalking.oap.server.core.CoreModule; import org.apache.skywalking.oap.server.core.analysis.meter.MeterSystem; -import org.apache.skywalking.oap.server.core.classloader.Catalog; -import org.apache.skywalking.oap.server.core.classloader.DSLClassLoaderManager; +import org.apache.skywalking.oap.server.core.dsl.Catalog; +import org.apache.skywalking.oap.server.core.dsl.classloader.DSLClassLoaderManager; import org.apache.skywalking.oap.server.core.dsl.debug.RuleKey; -import org.apache.skywalking.oap.server.core.classloader.RuleClassLoader; +import org.apache.skywalking.oap.server.core.dsl.classloader.RuleClassLoader; import org.apache.skywalking.oap.server.core.rule.ext.StaticRuleRegistry; import org.apache.skywalking.oap.server.core.storage.StorageModule; import org.apache.skywalking.oap.server.core.storage.management.RuntimeRuleManagementDAO; diff --git a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/reconcile/DSLManager.java b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/reconcile/DSLManager.java index c9d2ece6fb6f..12bd0837a40e 100644 --- a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/reconcile/DSLManager.java +++ b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/reconcile/DSLManager.java @@ -32,7 +32,7 @@ import org.apache.skywalking.oap.server.receiver.runtimerule.metrics.LockMetrics; import org.apache.skywalking.oap.server.core.alarm.AlarmKernelService; import org.apache.skywalking.oap.server.core.alarm.AlarmModule; -import org.apache.skywalking.oap.server.core.classloader.DSLClassLoaderManager; +import org.apache.skywalking.oap.server.core.dsl.classloader.DSLClassLoaderManager; import org.apache.skywalking.oap.server.core.storage.StorageModule; import org.apache.skywalking.oap.server.core.management.runtimerule.RuntimeRule; import org.apache.skywalking.oap.server.core.storage.management.RuntimeRuleManagementDAO; diff --git a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/reconcile/DSLRuntimeApply.java b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/reconcile/DSLRuntimeApply.java index 3d924d37f6c1..280cf1be2a4e 100644 --- a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/reconcile/DSLRuntimeApply.java +++ b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/reconcile/DSLRuntimeApply.java @@ -19,7 +19,7 @@ package org.apache.skywalking.oap.server.receiver.runtimerule.reconcile; import lombok.extern.slf4j.Slf4j; -import org.apache.skywalking.oap.server.core.classloader.DSLClassLoaderManager; +import org.apache.skywalking.oap.server.core.dsl.classloader.DSLClassLoaderManager; import org.apache.skywalking.oap.server.core.storage.management.RuntimeRuleManagementDAO; import org.apache.skywalking.oap.server.receiver.runtimerule.engine.ApplyContext; import org.apache.skywalking.oap.server.receiver.runtimerule.engine.ApplyInputs; diff --git a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/reconcile/DSLRuntimeDelete.java b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/reconcile/DSLRuntimeDelete.java index 0579e9771576..c9798ac771e4 100644 --- a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/reconcile/DSLRuntimeDelete.java +++ b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/reconcile/DSLRuntimeDelete.java @@ -26,7 +26,7 @@ import java.util.concurrent.locks.ReentrantLock; import java.util.function.Consumer; import lombok.extern.slf4j.Slf4j; -import org.apache.skywalking.oap.server.core.classloader.DSLClassLoaderManager; +import org.apache.skywalking.oap.server.core.dsl.classloader.DSLClassLoaderManager; import org.apache.skywalking.oap.server.core.rule.ext.StaticRuleRegistry; import org.apache.skywalking.oap.server.core.storage.management.RuntimeRuleManagementDAO; import org.apache.skywalking.oap.server.core.storage.model.StorageManipulationOpt; diff --git a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/reconcile/DSLRuntimeUnregister.java b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/reconcile/DSLRuntimeUnregister.java index 89de25653449..239af4517e43 100644 --- a/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/reconcile/DSLRuntimeUnregister.java +++ b/oap-server/server-admin/runtime-rule/src/main/java/org/apache/skywalking/oap/server/receiver/runtimerule/reconcile/DSLRuntimeUnregister.java @@ -46,7 +46,7 @@ *

After a successful teardown, the engine's {@code installBundled} hook is invoked so any * bundled rule that the now-removed runtime override was masking gets brought back into * service via a fresh {@code bundled:} loader from - * {@link org.apache.skywalking.oap.server.core.classloader.DSLClassLoaderManager}. + * {@link org.apache.skywalking.oap.server.core.dsl.classloader.DSLClassLoaderManager}. * *

{@code invokeAlarmOnRemove}. Two legitimate call modes: *