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,