This is an automated email from the ASF dual-hosted git repository. wusheng pushed a commit to branch name-field in repository https://gitbox.apache.org/repos/asf/skywalking.git
commit 15d9b7dd902850b8b05ceada80de6a0de75cb79d Author: Wu Sheng <wu.sh...@foxmail.com> AuthorDate: Wed Mar 4 10:25:07 2020 +0800 Support dynamic column in the source. --- .../oap/server/core/CoreModuleConfig.java | 11 +++++++++++ .../oap/server/core/CoreModuleProvider.java | 4 ++++ .../oap/server/core/source/DatabaseAccess.java | 1 + .../oap/server/core/source/DefaultScopeDefine.java | 22 ++++++++++++++++------ .../oap/server/core/source/Endpoint.java | 2 ++ .../server/core/source/EnvoyInstanceMetric.java | 1 + .../oap/server/core/source/ScopeDefaultColumn.java | 7 +++++++ .../skywalking/oap/server/core/source/Service.java | 1 + .../oap/server/core/source/ServiceInstance.java | 2 ++ .../server/core/source/ServiceInstanceCLRCPU.java | 2 ++ .../server/core/source/ServiceInstanceCLRGC.java | 2 ++ .../core/source/ServiceInstanceCLRThread.java | 2 ++ .../server/core/source/ServiceInstanceJVMCPU.java | 2 ++ .../server/core/source/ServiceInstanceJVMGC.java | 2 ++ .../core/source/ServiceInstanceJVMMemory.java | 2 ++ .../core/source/ServiceInstanceJVMMemoryPool.java | 2 ++ 16 files changed, 59 insertions(+), 6 deletions(-) diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java index c9ceccb..034650e 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.List; import lombok.Getter; import lombok.Setter; +import org.apache.skywalking.oap.server.core.source.ScopeDefaultColumn; import org.apache.skywalking.oap.server.library.module.ModuleConfig; @Getter @@ -103,6 +104,16 @@ public class CoreModuleConfig extends ModuleConfig { */ private int maxSizeOfAnalyzeProfileSnapshot = 12000; + /** + * Extra model column are the column defined by {@link ScopeDefaultColumn.DefinedByField#requireDynamicActive()} == + * true. This model is not required logically in aggregation or further query, and it will cause more load for + * memory, network of OAP and storage. + * + * But, being activated, user could see the name in the storage entities, which make users easier to use 3rd party + * tool, such as Kibana->ES, to query the data by themselves. + */ + private boolean activeExtraModelColumns = false; + CoreModuleConfig() { this.downsampling = new ArrayList<>(); } diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java index 2034a72..4175877 100755 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java @@ -138,6 +138,10 @@ public class CoreModuleProvider extends ModuleProvider { @Override public void prepare() throws ServiceNotProvidedException, ModuleStartException { + if (moduleConfig.isActiveExtraModelColumns()) { + DefaultScopeDefine.activeExtraModelColumns(); + } + StreamAnnotationListener streamAnnotationListener = new StreamAnnotationListener(getManager()); AnnotationScan scopeScan = new AnnotationScan(); diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DatabaseAccess.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DatabaseAccess.java index 4c10689..1a382e7a 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DatabaseAccess.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DatabaseAccess.java @@ -42,6 +42,7 @@ public class DatabaseAccess extends Source { private long id; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "name", requireDynamicActive = true) private String name; @Getter @Setter diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DefaultScopeDefine.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DefaultScopeDefine.java index cab4cc6..f6314b2 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DefaultScopeDefine.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DefaultScopeDefine.java @@ -24,6 +24,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import lombok.Setter; import org.apache.skywalking.oap.server.core.UnexpectedException; import org.apache.skywalking.oap.server.core.annotation.AnnotationListener; @@ -78,6 +79,13 @@ public class DefaultScopeDefine { private static final Map<Integer, Boolean> SERVICE_INSTANCE_CATALOG = new HashMap<>(); private static final Map<Integer, Boolean> ENDPOINT_CATALOG = new HashMap<>(); + @Setter + private static boolean ACTIVE_EXTRA_MODEL_COLUMNS = false; + + public static void activeExtraModelColumns() { + ACTIVE_EXTRA_MODEL_COLUMNS = true; + } + /** * Annotation scan listener */ @@ -99,7 +107,7 @@ public class DefaultScopeDefine { /** * Add a new scope based on the scan result * - * @param declaration includes the definition. + * @param declaration includes the definition. * @param originalClass represents the class having the {@link ScopeDeclaration} annotation */ private static final void addNewScope(ScopeDeclaration declaration, Class originalClass) { @@ -133,11 +141,13 @@ public class DefaultScopeDefine { ScopeDefaultColumn.DefinedByField definedByField = field.getAnnotation( ScopeDefaultColumn.DefinedByField.class); if (definedByField != null) { - scopeDefaultColumns.add( - new ScopeDefaultColumn(field.getName(), definedByField.columnName(), field.getType(), - definedByField - .isID() - )); + if (!definedByField.requireDynamicActive() || ACTIVE_EXTRA_MODEL_COLUMNS) { + scopeDefaultColumns.add( + new ScopeDefaultColumn(field.getName(), definedByField.columnName(), field.getType(), + definedByField + .isID() + )); + } } } } diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Endpoint.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Endpoint.java index e2611d7..370907b 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Endpoint.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Endpoint.java @@ -42,6 +42,7 @@ public class Endpoint extends Source { private int id; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "name", requireDynamicActive = true) private String name; @Getter @Setter @@ -49,6 +50,7 @@ public class Endpoint extends Source { private int serviceId; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "service_name", requireDynamicActive = true) private String serviceName; @Getter @Setter diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/EnvoyInstanceMetric.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/EnvoyInstanceMetric.java index f00f8e0..60269db 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/EnvoyInstanceMetric.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/EnvoyInstanceMetric.java @@ -54,6 +54,7 @@ public class EnvoyInstanceMetric extends Source { private int serviceId; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "name", requireDynamicActive = true) private String name; @Getter @Setter diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ScopeDefaultColumn.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ScopeDefaultColumn.java index dfc770d..45d5d74 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ScopeDefaultColumn.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ScopeDefaultColumn.java @@ -51,6 +51,13 @@ public class ScopeDefaultColumn { String columnName(); boolean isID() default false; + + /** + * Dynamic active means this column is only activated through core setting explicitly. + * + * @return + */ + boolean requireDynamicActive() default false; } @Target({ElementType.TYPE}) diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Service.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Service.java index e997df6..5dc390e 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Service.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Service.java @@ -42,6 +42,7 @@ public class Service extends Source { private int id; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "name", requireDynamicActive = true) private String name; @Getter @Setter diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstance.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstance.java index 8bb0c65..851d30c 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstance.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstance.java @@ -46,9 +46,11 @@ public class ServiceInstance extends Source { private int serviceId; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "name", requireDynamicActive = true) private String name; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "service_name", requireDynamicActive = true) private String serviceName; @Getter @Setter diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRCPU.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRCPU.java index c73c7c0..fe71000 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRCPU.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRCPU.java @@ -45,9 +45,11 @@ public class ServiceInstanceCLRCPU extends Source { private int id; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "name", requireDynamicActive = true) private String name; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "service_name", requireDynamicActive = true) private String serviceName; @Getter @Setter diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRGC.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRGC.java index 6ee0728..3038086 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRGC.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRGC.java @@ -45,9 +45,11 @@ public class ServiceInstanceCLRGC extends Source { private int id; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "name", requireDynamicActive = true) private String name; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "service_name", requireDynamicActive = true) private String serviceName; @Getter @Setter diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRThread.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRThread.java index fbe04ec..e3cdeaf 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRThread.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceCLRThread.java @@ -45,9 +45,11 @@ public class ServiceInstanceCLRThread extends Source { private int id; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "name", requireDynamicActive = true) private String name; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "service_name", requireDynamicActive = true) private String serviceName; @Getter @Setter diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMCPU.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMCPU.java index 44fc411..2ca1dd9 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMCPU.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMCPU.java @@ -42,9 +42,11 @@ public class ServiceInstanceJVMCPU extends Source { private int id; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "name", requireDynamicActive = true) private String name; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "service_name", requireDynamicActive = true) private String serviceName; @Getter @Setter diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMGC.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMGC.java index 65e5136..3cacd86 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMGC.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMGC.java @@ -42,9 +42,11 @@ public class ServiceInstanceJVMGC extends Source { private int id; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "name", requireDynamicActive = true) private String name; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "service_name", requireDynamicActive = true) private String serviceName; @Getter @Setter diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemory.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemory.java index 80f8b79..4582629 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemory.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemory.java @@ -42,9 +42,11 @@ public class ServiceInstanceJVMMemory extends Source { private int id; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "name", requireDynamicActive = true) private String name; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "service_name", requireDynamicActive = true) private String serviceName; @Getter @Setter diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemoryPool.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemoryPool.java index b149871..dd20db9 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemoryPool.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemoryPool.java @@ -42,9 +42,11 @@ public class ServiceInstanceJVMMemoryPool extends Source { private int id; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "name", requireDynamicActive = true) private String name; @Getter @Setter + @ScopeDefaultColumn.DefinedByField(columnName = "service_name", requireDynamicActive = true) private String serviceName; @Getter @Setter