You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2022/04/14 06:27:34 UTC

[skywalking] branch master updated: Fix event can't split service ID into 2 parts (#8874)

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

wusheng 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 38a9d47017 Fix event can't split service ID into 2 parts (#8874)
38a9d47017 is described below

commit 38a9d4701730e674c9646173dbffc1173623cf24
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Thu Apr 14 14:27:23 2022 +0800

    Fix event can't split service ID into 2 parts (#8874)
---
 docs/en/changes/changes.md                                |  2 +-
 .../server/analyzer/event/EventAnalyzerServiceImpl.java   | 15 ++++++++++++++-
 .../apache/skywalking/oap/server/core/source/Event.java   |  1 +
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index a16e14829b..b78f77b71e 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -15,6 +15,7 @@
 * Simplify the Kafka Fetch configuration in cluster mode.
 * [Breaking Change] Update the eBPF Profiling task to the service level,
   please delete index/table: `ebpf_profiling_task`, `process_traffic`.
+* Fix event can't split service ID into 2 parts.
 
 #### UI
 
@@ -24,4 +25,3 @@
 #### Documentation
 
 All issues and pull requests are [here](https://github.com/apache/skywalking/milestone/128?closed=1)
-
diff --git a/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventAnalyzerServiceImpl.java b/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventAnalyzerServiceImpl.java
index aa341d3568..b76299126d 100644
--- a/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventAnalyzerServiceImpl.java
+++ b/oap-server/analyzer/event-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/event/EventAnalyzerServiceImpl.java
@@ -21,11 +21,13 @@ package org.apache.skywalking.oap.server.analyzer.event;
 import java.util.ArrayList;
 import java.util.List;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.skywalking.apm.network.event.v3.Event;
 import org.apache.skywalking.oap.server.analyzer.event.listener.EventAnalyzerListener;
 import org.apache.skywalking.oap.server.library.module.ModuleManager;
 import org.apache.skywalking.oap.server.analyzer.event.listener.EventAnalyzerListenerFactoryManager;
 
+@Slf4j
 @RequiredArgsConstructor
 public class EventAnalyzerServiceImpl implements EventAnalyzerService, EventAnalyzerListenerFactoryManager {
     private final ModuleManager moduleManager;
@@ -34,8 +36,19 @@ public class EventAnalyzerServiceImpl implements EventAnalyzerService, EventAnal
 
     @Override
     public void analyze(final Event event) {
+        final Event.Builder eb = event.toBuilder();
+        if (event.getStartTime() <= 0 && event.getEndTime() <= 0) {
+            log.warn(
+                "Event start time {} and end time {} are both invalid, they will be set to current time, eventId: {}",
+                event.getStartTime(),
+                event.getEndTime(),
+                event.getUuid());
+            eb.setStartTime(System.currentTimeMillis());
+            eb.setEndTime(System.currentTimeMillis());
+        }
+
         final EventAnalyzer analyzer = new EventAnalyzer(moduleManager, this);
-        analyzer.analyze(event);
+        analyzer.analyze(eb.build());
     }
 
     @Override
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 b2eb20f2e3..67dcf159b3 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
@@ -44,6 +44,7 @@ import static org.apache.skywalking.oap.server.library.util.StringUtil.isNotBlan
 @Getter
 @Setter
 @ScopeDeclaration(id = EVENT, name = "Event", catalog = SERVICE_CATALOG_NAME)
+@ScopeDefaultColumn.VirtualColumnDefinition(fieldName = "entityId", columnName = "entity_id", isID = true, type = String.class)
 @Stream(name = Event.INDEX_NAME, scopeId = EVENT, builder = Event.Builder.class, processor = MetricsStreamProcessor.class)
 @EqualsAndHashCode(
     callSuper = false,