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();