You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ke...@apache.org on 2022/05/27 11:30:54 UTC

[skywalking] branch master updated: Remove oal for events (#9139)

This is an automated email from the ASF dual-hosted git repository.

kezhenxu94 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 9786ed838c Remove oal for events (#9139)
9786ed838c is described below

commit 9786ed838c271a35745e7f576a6c5c64399b4416
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Fri May 27 19:30:37 2022 +0800

    Remove oal for events (#9139)
---
 docs/en/changes/changes.md                         |  1 +
 docs/en/concepts-and-designs/event.md              | 11 ++---
 .../event/EventAnalyzerModuleProvider.java         |  6 ---
 .../oap/server/analyzer/event/EventOALDefine.java  | 34 -------------
 .../listener/EventRecordAnalyzerListener.java      | 12 +----
 .../skywalking/oap/server/core/source/Event.java   | 57 +++-------------------
 .../src/main/resources/oal/event.oal               | 25 ----------
 7 files changed, 14 insertions(+), 132 deletions(-)

diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 57f69d9421..3018532720 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -73,6 +73,7 @@
 * Fix scroll query failure exception.
 * Add `profileDataQueryBatchSize` config in Elasticsearch Storage.
 * Add APIs to query Pod log on demand.
+* Remove OAL for events.
 
 #### UI
 
diff --git a/docs/en/concepts-and-designs/event.md b/docs/en/concepts-and-designs/event.md
index 52327ef959..2d4375a982 100644
--- a/docs/en/concepts-and-designs/event.md
+++ b/docs/en/concepts-and-designs/event.md
@@ -20,7 +20,7 @@ An event contains the following fields. The definitions of event can be found at
 
 ### UUID
 
-Unique ID of the event. Since an event may span a long period of time, the UUID is necessary to associate the start time with the end time of the same event. 
+Unique ID of the event. Since an event may span a long period of time, the UUID is necessary to associate the start time with the end time of the same event.
 
 ### Source
 
@@ -42,7 +42,7 @@ It's NOT recommended to include the detailed logs of this event, such as the exc
 
 ### Parameters
 
-The parameters in the `message` field. This is a simple `<string,string>` map. 
+The parameters in the `message` field. This is a simple `<string,string>` map.
 
 ### Start Time
 
@@ -106,11 +106,6 @@ however, you can use the methods in [How to Report Events](#how-to-report-events
 SkyWalking UI visualizes the events in the dashboard when the event service / instance / endpoint matches the displayed
 service / instance / endpoint.
 
-By default, SkyWalking also generates some metrics for events by using [OAL](oal.md). The default metrics list of event
-may change over time, you can find the complete list
-in [event.oal](../../../oap-server/server-starter/src/main/resources/oal/event.oal). If you want to generate you
-custom metrics from events, please refer to [OAL](oal.md) about how to write OAL rules.
-
 ## Known Events
 
 | Name | Type | When | Where |
@@ -121,7 +116,7 @@ custom metrics from events, please refer to [OAL](oal.md) about how to write OAL
 
 The following events are all reported
 by [Kubernetes Event Exporter](http://github.com/apache/skywalking-kubernetes-event-exporter), in order to see these
-events, please make sure you have deployed the exporter. 
+events, please make sure you have deployed the exporter.
 
 | Name | Type | When | Where |
 | :----: | :----: | :-----| :---- |
diff --git a/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventAnalyzerModuleProvider.java b/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventAnalyzerModuleProvider.java
index 16b7a27651..222f93a0a8 100644
--- a/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventAnalyzerModuleProvider.java
+++ b/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventAnalyzerModuleProvider.java
@@ -20,7 +20,6 @@ package org.apache.skywalking.oap.server.analyzer.event;
 
 import org.apache.skywalking.oap.server.analyzer.event.listener.EventRecordAnalyzerListener;
 import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.oal.rt.OALEngineLoaderService;
 import org.apache.skywalking.oap.server.library.module.ModuleConfig;
 import org.apache.skywalking.oap.server.library.module.ModuleDefine;
 import org.apache.skywalking.oap.server.library.module.ModuleProvider;
@@ -54,11 +53,6 @@ public class EventAnalyzerModuleProvider extends ModuleProvider {
 
     @Override
     public void start() throws ModuleStartException {
-        getManager().find(CoreModule.NAME)
-                    .provider()
-                    .getService(OALEngineLoaderService.class)
-                    .load(EventOALDefine.INSTANCE);
-
         analysisService.add(new EventRecordAnalyzerListener.Factory(getManager()));
     }
 
diff --git a/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventOALDefine.java b/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventOALDefine.java
deleted file mode 100644
index 8aa2ef7885..0000000000
--- a/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventOALDefine.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.skywalking.oap.server.analyzer.event;
-
-import org.apache.skywalking.oap.server.core.oal.rt.OALDefine;
-
-/**
- * OAL rules to calculate Event-specific metrics.
- */
-public class EventOALDefine extends OALDefine {
-    public static final EventOALDefine INSTANCE = new EventOALDefine();
-
-    private EventOALDefine() {
-        super(
-            "oal/event.oal",
-            "org.apache.skywalking.oap.server.core.source"
-        );
-    }
-}
diff --git a/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/listener/EventRecordAnalyzerListener.java b/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/listener/EventRecordAnalyzerListener.java
index b63501e350..edf08f197e 100644
--- a/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/listener/EventRecordAnalyzerListener.java
+++ b/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/listener/EventRecordAnalyzerListener.java
@@ -19,7 +19,6 @@
 package org.apache.skywalking.oap.server.analyzer.event.listener;
 
 import com.google.gson.Gson;
-import lombok.RequiredArgsConstructor;
 import org.apache.skywalking.apm.network.event.v3.Source;
 import org.apache.skywalking.oap.server.core.CoreModule;
 import org.apache.skywalking.oap.server.core.analysis.Layer;
@@ -27,8 +26,8 @@ import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
 import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProcessor;
 import org.apache.skywalking.oap.server.core.config.NamingControl;
 import org.apache.skywalking.oap.server.core.source.Event;
-import org.apache.skywalking.oap.server.core.source.SourceReceiver;
 import org.apache.skywalking.oap.server.library.module.ModuleManager;
+import lombok.RequiredArgsConstructor;
 
 /**
  * EventRecordAnalyzerListener forwards the event data to the persistence layer with the query required conditions.
@@ -39,14 +38,11 @@ public class EventRecordAnalyzerListener implements EventAnalyzerListener {
 
     private final NamingControl namingControl;
 
-    private final SourceReceiver sourceReceiver;
-
     private final Event event = new Event();
 
     @Override
     public void build() {
         MetricsStreamProcessor.getInstance().in(event);
-        sourceReceiver.receive(event);
     }
 
     @Override
@@ -79,20 +75,16 @@ public class EventRecordAnalyzerListener implements EventAnalyzerListener {
 
     public static class Factory implements EventAnalyzerListener.Factory {
         private final NamingControl namingControl;
-        private final SourceReceiver sourceReceiver;
 
         public Factory(final ModuleManager moduleManager) {
             this.namingControl = moduleManager.find(CoreModule.NAME)
                                               .provider()
                                               .getService(NamingControl.class);
-            this.sourceReceiver = moduleManager.find(CoreModule.NAME)
-                                               .provider()
-                                               .getService(SourceReceiver.class);
         }
 
         @Override
         public EventAnalyzerListener create(final ModuleManager moduleManager) {
-            return new EventRecordAnalyzerListener(namingControl, sourceReceiver);
+            return new EventRecordAnalyzerListener(namingControl);
         }
     }
 }
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Event.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Event.java
index 32342bcb9d..b86fdd3795 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Event.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Event.java
@@ -18,41 +18,34 @@
 
 package org.apache.skywalking.oap.server.core.source;
 
+import static org.apache.skywalking.oap.server.core.source.DefaultScopeDefine.EVENT;
+import static org.apache.skywalking.oap.server.library.util.StringUtil.isNotBlank;
 import com.google.common.base.Strings;
-import lombok.EqualsAndHashCode;
-import lombok.Getter;
-import lombok.Setter;
-import org.apache.skywalking.oap.server.core.analysis.IDManager;
 import org.apache.skywalking.oap.server.core.analysis.Layer;
 import org.apache.skywalking.oap.server.core.analysis.MetricsExtension;
 import org.apache.skywalking.oap.server.core.analysis.Stream;
 import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
-import org.apache.skywalking.oap.server.core.analysis.metrics.LongValueHolder;
 import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
-import org.apache.skywalking.oap.server.core.analysis.metrics.MetricsMetaInfo;
-import org.apache.skywalking.oap.server.core.analysis.metrics.WithMetadata;
 import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProcessor;
 import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
 import org.apache.skywalking.oap.server.core.storage.annotation.Column;
 import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
 import org.apache.skywalking.oap.server.core.storage.type.Convert2Storage;
 import org.apache.skywalking.oap.server.core.storage.type.StorageBuilder;
-
-import static org.apache.skywalking.oap.server.core.source.DefaultScopeDefine.EVENT;
-import static org.apache.skywalking.oap.server.core.source.DefaultScopeDefine.SERVICE_CATALOG_NAME;
-import static org.apache.skywalking.oap.server.library.util.StringUtil.isNotBlank;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.Setter;
 
 @Getter
 @Setter
-@ScopeDeclaration(id = EVENT, name = "Event", catalog = SERVICE_CATALOG_NAME)
-@ScopeDefaultColumn.VirtualColumnDefinition(fieldName = "entityId", columnName = "entity_id", isID = true, type = String.class)
+@ScopeDeclaration(id = EVENT, name = "Event")
 @Stream(name = Event.INDEX_NAME, scopeId = EVENT, builder = Event.Builder.class, processor = MetricsStreamProcessor.class)
+@MetricsExtension(supportDownSampling = false, supportUpdate = true)
 @EqualsAndHashCode(
     callSuper = false,
     of = "uuid"
 )
-@MetricsExtension(supportDownSampling = false, supportUpdate = true)
-public class Event extends Metrics implements ISource, WithMetadata, LongValueHolder {
+public class Event extends Metrics {
 
     public static final String INDEX_NAME = "events";
 
@@ -118,14 +111,10 @@ public class Event extends Metrics implements ISource, WithMetadata, LongValueHo
     @Column(columnName = LAYER)
     private Layer layer;
 
-    private transient long value = 1;
-
     @Override
     public boolean combine(final Metrics metrics) {
         final Event event = (Event) metrics;
 
-        value++;
-
         // Set time bucket only when it's never set.
         if (getTimeBucket() <= 0) {
             if (event.getStartTime() > 0) {
@@ -223,36 +212,6 @@ public class Event extends Metrics implements ISource, WithMetadata, LongValueHo
         return hashCode();
     }
 
-    @Override
-    public MetricsMetaInfo getMeta() {
-        int scope = DefaultScopeDefine.SERVICE;
-        if (isNotBlank(getServiceInstance())) {
-            scope = DefaultScopeDefine.SERVICE_INSTANCE;
-        } else if (isNotBlank(getEndpoint())) {
-            scope = DefaultScopeDefine.ENDPOINT;
-        }
-
-        String id = getEntityId();
-        return new MetricsMetaInfo(getName(), scope, id);
-    }
-
-    @Override
-    public int scope() {
-        return EVENT;
-    }
-
-    @Override
-    public String getEntityId() {
-        final String serviceId = IDManager.ServiceID.buildId(getService(), true);
-        String id = serviceId;
-        if (isNotBlank(getServiceInstance())) {
-            id = IDManager.ServiceInstanceID.buildId(serviceId, getServiceInstance());
-        } else if (isNotBlank(getEndpoint())) {
-            id = IDManager.EndpointID.buildId(serviceId, getEndpoint());
-        }
-        return id;
-    }
-
     public static class Builder implements StorageBuilder<Event> {
         @Override
         public Event storage2Entity(final Convert2Entity converter) {
diff --git a/oap-server/server-starter/src/main/resources/oal/event.oal b/oap-server/server-starter/src/main/resources/oal/event.oal
deleted file mode 100755
index 0eb067b695..0000000000
--- a/oap-server/server-starter/src/main/resources/oal/event.oal
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-event_total = from(Event.*).count();
-
-event_normal_count = from(Event.*).filter(type == "Normal").count();
-event_error_count = from(Event.*).filter(type == "Error").count();
-
-event_start_count = from(Event.*).filter(name == "Start").count();
-event_shutdown_count = from(Event.*).filter(name == "Shutdown").count();