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 2020/02/14 07:30:59 UTC

[skywalking] branch comments updated: Fill more comments.

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

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


The following commit(s) were added to refs/heads/comments by this push:
     new 16ee166  Fill more comments.
16ee166 is described below

commit 16ee166c5dd0ba4d7bade24c70750def8eece4e2
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Fri Feb 14 15:30:39 2020 +0800

    Fill more comments.
---
 .../apm/agent/core/boot/AgentPackagePath.java      | 15 +++++---
 .../oap/server/core/CoreModuleConfig.java          | 20 ++++++++++-
 .../oap/server/core/CoreModuleProvider.java        |  8 ++---
 .../oap/server/library/buffer/DataStream.java      |  5 +++
 .../server/library/buffer/DataStreamReader.java    | 42 ++++++++++++++--------
 .../server/library/buffer/DataStreamWriter.java    |  6 ++++
 .../oap/server/library/buffer/Offset.java          | 14 +++++++-
 .../oap/server/library/buffer/OffsetStream.java    | 11 ++++--
 .../oap/server/library/util/GRPCStreamStatus.java  |  4 +++
 .../sharing/server/SharingServerConfig.java        |  6 ++++
 .../sharing/server/SharingServerModule.java        | 10 ++++++
 .../provider/parser/ISegmentParserService.java     |  3 ++
 .../trace/provider/parser/SegmentParseV2.java      |  2 +-
 .../provider/parser/SegmentParserServiceImpl.java  |  3 ++
 .../listener/endpoint/MultiScopesSpanListener.java |  2 +-
 .../parser/standardization/IdExchanger.java        |  2 +-
 16 files changed, 123 insertions(+), 30 deletions(-)

diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/boot/AgentPackagePath.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/boot/AgentPackagePath.java
index b4bafe5..105cfde 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/boot/AgentPackagePath.java
+++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/boot/AgentPackagePath.java
@@ -18,14 +18,18 @@
 
 package org.apache.skywalking.apm.agent.core.boot;
 
-import java.net.URISyntaxException;
-import org.apache.skywalking.apm.agent.core.logging.api.ILog;
-import org.apache.skywalking.apm.agent.core.logging.api.LogManager;
-
 import java.io.File;
 import java.net.MalformedURLException;
+import java.net.URISyntaxException;
 import java.net.URL;
+import org.apache.skywalking.apm.agent.core.logging.api.ILog;
+import org.apache.skywalking.apm.agent.core.logging.api.LogManager;
 
+/**
+ * AgentPackagePath is a flag and finder to locate the SkyWalking agent.jar. It gets the absolute path of the agent jar.
+ * The path is the required metadata for agent core looking up the plugins and toolkit activations. If the lookup
+ * mechanism fails, the agent will exit directly.
+ */
 public class AgentPackagePath {
     private static final ILog logger = LogManager.getLogger(AgentPackagePath.class);
 
@@ -67,7 +71,8 @@ public class AgentPackagePath {
                 }
             } else {
                 int prefixLength = "file:".length();
-                String classLocation = urlString.substring(prefixLength, urlString.length() - classResourcePath.length());
+                String classLocation = urlString.substring(
+                    prefixLength, urlString.length() - classResourcePath.length());
                 return new File(classLocation);
             }
         }
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 00acefb..c9ceccb 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
@@ -117,7 +117,25 @@ public class CoreModuleConfig extends ModuleConfig {
         return dataTTLConfig;
     }
 
+    /**
+     * OAP server could work in different roles.
+     */
     public enum Role {
-        Mixed, Receiver, Aggregator
+        /**
+         * Default role. OAP works as the {@link #Receiver} and {@link #Aggregator}
+         */
+        Mixed,
+        /**
+         * Receiver mode OAP open the service to the agents, analysis and aggregate the results and forward the results
+         * to {@link #Mixed} and {@link #Aggregator} roles OAP. The only exception is for {@link
+         * org.apache.skywalking.oap.server.core.analysis.record.Record}, they don't require 2nd round distributed
+         * aggregation, is being pushed into the storage from the receiver OAP directly.
+         */
+        Receiver,
+        /**
+         * Aggregator mode OAP receives data from {@link #Mixed} and {@link #Aggregator} OAP nodes, and do 2nd round
+         * aggregation. Then save the final result to the storage.
+         */
+        Aggregator
     }
 }
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 8f8d2b9..2034a72 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
@@ -268,10 +268,10 @@ public class CoreModuleProvider extends ModuleProvider {
 
         if (CoreModuleConfig.Role.Mixed.name()
                                        .equalsIgnoreCase(
-                                           moduleConfig.getRole()) || CoreModuleConfig.Role.Aggregator.name()
-                                                                                                      .equalsIgnoreCase(
-                                                                                                          moduleConfig
-                                                                                                              .getRole())) {
+                                           moduleConfig.getRole())
+            || CoreModuleConfig.Role.Aggregator.name()
+                                               .equalsIgnoreCase(
+                                                   moduleConfig.getRole())) {
             RemoteInstance gRPCServerInstance = new RemoteInstance(
                 new Address(moduleConfig.getGRPCHost(), moduleConfig.getGRPCPort(), true));
             this.getManager()
diff --git a/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/DataStream.java b/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/DataStream.java
index d2ac97d..6621a42 100644
--- a/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/DataStream.java
+++ b/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/DataStream.java
@@ -28,6 +28,11 @@ import org.apache.commons.io.filefilter.PrefixFileFilter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+/**
+ * DataStream provides the open APIs for the local file based cache system.
+ *
+ * @param <MESSAGE_TYPE> type of data in the cache file.
+ */
 class DataStream<MESSAGE_TYPE extends GeneratedMessageV3> {
 
     private static final Logger logger = LoggerFactory.getLogger(DataStream.class);
diff --git a/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/DataStreamReader.java b/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/DataStreamReader.java
index bb9e142..1aca90a 100644
--- a/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/DataStreamReader.java
+++ b/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/DataStreamReader.java
@@ -29,6 +29,7 @@ import java.util.List;
 import java.util.Objects;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.filefilter.PrefixFileFilter;
 import org.apache.skywalking.apm.util.RunnableWithExceptionProtection;
@@ -36,10 +37,17 @@ import org.apache.skywalking.apm.util.StringUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+/**
+ * DataStreamReader represents the reader of the local file based cache provided by {@link DataStream}. It reads the
+ * data in the local cached file, and triggers the registered callback to process, also, provide the retry if the
+ * callback responses the process status is unsuccessful.
+ *
+ * This callback/retry mechanism is used in inventory register for multiple receivers.
+ *
+ * @param <MESSAGE_TYPE> type of data in the cache file.
+ */
+@Slf4j
 public class DataStreamReader<MESSAGE_TYPE extends GeneratedMessageV3> {
-
-    private static final Logger logger = LoggerFactory.getLogger(DataStreamReader.class);
-
     private final File directory;
     private final Offset.ReadOffset readOffset;
     private final Parser<MESSAGE_TYPE> parser;
@@ -50,7 +58,7 @@ public class DataStreamReader<MESSAGE_TYPE extends GeneratedMessageV3> {
     private InputStream inputStream;
 
     DataStreamReader(File directory, Offset.ReadOffset readOffset, Parser<MESSAGE_TYPE> parser,
-        CallBack<MESSAGE_TYPE> callBack) {
+                     CallBack<MESSAGE_TYPE> callBack) {
         this.directory = directory;
         this.readOffset = readOffset;
         this.parser = parser;
@@ -62,7 +70,8 @@ public class DataStreamReader<MESSAGE_TYPE extends GeneratedMessageV3> {
         preRead();
 
         Executors.newSingleThreadScheduledExecutor()
-                 .scheduleWithFixedDelay(new RunnableWithExceptionProtection(this::read, t -> logger.error("Buffer data pre read failure.", t)), 3, 1, TimeUnit.SECONDS);
+                 .scheduleWithFixedDelay(new RunnableWithExceptionProtection(this::read, t -> log.error(
+                     "Buffer data pre read failure.", t)), 3, 1, TimeUnit.SECONDS);
     }
 
     private void preRead() {
@@ -76,7 +85,7 @@ public class DataStreamReader<MESSAGE_TYPE extends GeneratedMessageV3> {
                 try {
                     inputStream.skip(readOffset.getOffset());
                 } catch (IOException e) {
-                    logger.error(e.getMessage(), e);
+                    log.error(e.getMessage(), e);
                 }
             } else {
                 openInputStream(readEarliestDataFile());
@@ -93,7 +102,7 @@ public class DataStreamReader<MESSAGE_TYPE extends GeneratedMessageV3> {
 
             inputStream = new FileInputStream(readingFile);
         } catch (IOException e) {
-            logger.error(e.getMessage(), e);
+            log.error(e.getMessage(), e);
         }
     }
 
@@ -111,8 +120,8 @@ public class DataStreamReader<MESSAGE_TYPE extends GeneratedMessageV3> {
     }
 
     private void read() {
-        if (logger.isDebugEnabled()) {
-            logger.debug("Read buffer data");
+        if (log.isDebugEnabled()) {
+            log.debug("Read buffer data");
         }
 
         try {
@@ -137,8 +146,8 @@ public class DataStreamReader<MESSAGE_TYPE extends GeneratedMessageV3> {
                         bufferDataCollection.add(bufferData);
                     }
 
-                    if (logger.isDebugEnabled()) {
-                        logger.debug("collection size: {}, max size: {}", bufferDataCollection.size(), collectionSize);
+                    if (log.isDebugEnabled()) {
+                        log.debug("collection size: {}, max size: {}", bufferDataCollection.size(), collectionSize);
                     }
                 } else if (bufferDataCollection.size() > 0) {
                     reCall();
@@ -146,7 +155,7 @@ public class DataStreamReader<MESSAGE_TYPE extends GeneratedMessageV3> {
                     try {
                         TimeUnit.SECONDS.sleep(5);
                     } catch (InterruptedException e) {
-                        logger.error(e.getMessage(), e);
+                        log.error(e.getMessage(), e);
                     }
                 }
             }
@@ -155,7 +164,7 @@ public class DataStreamReader<MESSAGE_TYPE extends GeneratedMessageV3> {
                 reCall();
             }
         } catch (IOException e) {
-            logger.error(e.getMessage(), e);
+            log.error(e.getMessage(), e);
         }
     }
 
@@ -175,7 +184,7 @@ public class DataStreamReader<MESSAGE_TYPE extends GeneratedMessageV3> {
                 try {
                     TimeUnit.MILLISECONDS.sleep(500);
                 } catch (InterruptedException e) {
-                    logger.error(e.getMessage(), e);
+                    log.error(e.getMessage(), e);
                 }
             } else {
                 break;
@@ -183,6 +192,11 @@ public class DataStreamReader<MESSAGE_TYPE extends GeneratedMessageV3> {
         }
     }
 
+    /**
+     * Callback when reader fetched data from the local file.
+     *
+     * @param <MESSAGE_TYPE> type of data in the cache file.
+     */
     public interface CallBack<MESSAGE_TYPE extends GeneratedMessageV3> {
         boolean call(BufferData<MESSAGE_TYPE> bufferData);
     }
diff --git a/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/DataStreamWriter.java b/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/DataStreamWriter.java
index 021ed6c..435ef84 100644
--- a/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/DataStreamWriter.java
+++ b/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/DataStreamWriter.java
@@ -28,6 +28,12 @@ import org.apache.skywalking.apm.util.StringUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+/**
+ * DataStreamReader represents the writer of the local file based cache provided by {@link DataStream}. It writes the
+ * given messages into the local files, and create new if necessary or file max size reached.
+ *
+ * @param <MESSAGE_TYPE> type of data in the cache file.
+ */
 class DataStreamWriter<MESSAGE_TYPE extends GeneratedMessageV3> {
 
     private static final Logger logger = LoggerFactory.getLogger(DataStreamWriter.class);
diff --git a/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/Offset.java b/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/Offset.java
index 488783a..54f17dd 100644
--- a/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/Offset.java
+++ b/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/Offset.java
@@ -22,6 +22,9 @@ import lombok.Getter;
 import lombok.Setter;
 import org.apache.skywalking.apm.util.StringUtil;
 
+/**
+ * File content offset definition. Offset is the pointer when read/write the local file.
+ */
 class Offset {
 
     private static final String SPLIT_CHARACTER = ",";
@@ -35,11 +38,20 @@ class Offset {
         readOffset = new ReadOffset(writeOffset);
     }
 
+    /**
+     * @return the offset data into a single literal string for the persistence.
+     */
     String serialize() {
-        return readOffset.getFileName() + SPLIT_CHARACTER + String.valueOf(readOffset.getOffset()) + SPLIT_CHARACTER + writeOffset
+        return readOffset.getFileName() + SPLIT_CHARACTER + String.valueOf(
+            readOffset.getOffset()) + SPLIT_CHARACTER + writeOffset
             .getFileName() + SPLIT_CHARACTER + String.valueOf(writeOffset.getOffset());
     }
 
+    /**
+     * Initialize the Offset object by given value.
+     *
+     * @param value serialized Offset
+     */
     void deserialize(String value) {
         if (!StringUtil.isEmpty(value)) {
             String[] values = value.split(SPLIT_CHARACTER);
diff --git a/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/OffsetStream.java b/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/OffsetStream.java
index c2fb63e..237b337 100644
--- a/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/OffsetStream.java
+++ b/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/OffsetStream.java
@@ -34,6 +34,10 @@ import org.apache.skywalking.apm.util.RunnableWithExceptionProtection;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+/**
+ * OffsetStream is driven by the internal timer. Flush the hold read and write offset into the file. And restore the
+ * data from the same file in the initialization process.o
+ */
 class OffsetStream {
 
     private static final Logger logger = LoggerFactory.getLogger(OffsetStream.class);
@@ -79,7 +83,9 @@ class OffsetStream {
             initialized = true;
 
             Executors.newSingleThreadScheduledExecutor()
-                     .scheduleAtFixedRate(new RunnableWithExceptionProtection(this::flush, t -> logger.error("Flush offset file in background failure.", t)), 2, 1, TimeUnit.SECONDS);
+                     .scheduleAtFixedRate(
+                         new RunnableWithExceptionProtection(this::flush, t -> logger.error(
+                             "Flush offset file in background failure.", t)), 2, 1, TimeUnit.SECONDS);
         }
     }
 
@@ -122,7 +128,8 @@ class OffsetStream {
     }
 
     private String readLastLine() throws IOException {
-        ReversedLinesFileReader reader = new ReversedLinesFileReader(offsetFile, Charset.forName(BufferFileUtils.CHARSET));
+        ReversedLinesFileReader reader = new ReversedLinesFileReader(
+            offsetFile, Charset.forName(BufferFileUtils.CHARSET));
         return reader.readLine();
     }
 }
diff --git a/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/GRPCStreamStatus.java b/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/GRPCStreamStatus.java
index 06852f6..cd39896 100644
--- a/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/GRPCStreamStatus.java
+++ b/oap-server/server-library/library-util/src/main/java/org/apache/skywalking/oap/server/library/util/GRPCStreamStatus.java
@@ -20,6 +20,10 @@ package org.apache.skywalking.oap.server.library.util;
 
 import lombok.Getter;
 
+/**
+ * GRPCStreamStatus is used for gRPC streaming client. It helps to make sure the gRPC client to wait the last streaming
+ * has the onCompleted or onError confirmation.
+ */
 @Getter
 public class GRPCStreamStatus {
 
diff --git a/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerConfig.java b/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerConfig.java
index 375576e..084e098 100644
--- a/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerConfig.java
+++ b/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerConfig.java
@@ -26,9 +26,15 @@ import org.apache.skywalking.oap.server.library.module.ModuleConfig;
 @Setter
 public class SharingServerConfig extends ModuleConfig {
     private String restHost;
+    /**
+     * Only setting the real port(not 0) makes the jetty server online.
+     */
     private int restPort;
     private String restContextPath;
     private String gRPCHost;
+    /**
+     * Only setting the real port(not 0) makes the gRPC server online.
+     */
     private int gRPCPort;
     private int maxConcurrentCallsPerConnection;
     private int maxMessageSize;
diff --git a/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerModule.java b/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerModule.java
index b3f3f28..076bae3 100644
--- a/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerModule.java
+++ b/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerModule.java
@@ -22,6 +22,16 @@ import org.apache.skywalking.oap.server.core.server.GRPCHandlerRegister;
 import org.apache.skywalking.oap.server.core.server.JettyHandlerRegister;
 import org.apache.skywalking.oap.server.library.module.ModuleDefine;
 
+/**
+ * Sharing server is an independent gRPC and Jetty servers provided for all receiver modules. In default, this module
+ * would not be activated unless the user active explicitly. It only delegates the core gRPC and Jetty servers.
+ *
+ * Once it is activated, provides separated servers, then all receivers use these to accept outside requests. Typical,
+ * this is activated to avoid the ip, port and thread pool sharing between receiver and internal traffics. For security
+ * consideration, receiver should open TLS and token check, and internal(remote module) traffic should base on trusted
+ * network, no TLS and token check. Even some companies may require TLS internally, it still use different TLS keys. In
+ * this specific case, we recommend users to consider use {@link org.apache.skywalking.oap.server.core.CoreModuleConfig.Role}.
+ */
 public class SharingServerModule extends ModuleDefine {
 
     public static final String NAME = "receiver-sharing-server";
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/ISegmentParserService.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/ISegmentParserService.java
index 4e199d5..66cf9a1 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/ISegmentParserService.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/ISegmentParserService.java
@@ -21,6 +21,9 @@ package org.apache.skywalking.oap.server.receiver.trace.provider.parser;
 import org.apache.skywalking.apm.network.language.agent.UpstreamSegment;
 import org.apache.skywalking.oap.server.library.module.Service;
 
+/**
+ * Service of trace segment parser.
+ */
 public interface ISegmentParserService extends Service {
     void send(UpstreamSegment segment);
 }
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParseV2.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParseV2.java
index 9ccefe4..7fcfe36 100755
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParseV2.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParseV2.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  * SegmentParseV2 replaced the SegmentParse(V1 is before 6.0.0) to drive the segment analysis. It includes the following
  * steps
  *
- * 1. Register data, name->ID register
+ * 1. Register data, name to ID register
  *
  * 2. If register unfinished, cache in the local buffer file. And back to (1).
  *
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParserServiceImpl.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParserServiceImpl.java
index 35a54dd..f22fc49 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParserServiceImpl.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParserServiceImpl.java
@@ -20,6 +20,9 @@ package org.apache.skywalking.oap.server.receiver.trace.provider.parser;
 
 import org.apache.skywalking.apm.network.language.agent.UpstreamSegment;
 
+/**
+ * The open service to the receivers. Segment parser for v2 trace protocol.
+ */
 public class SegmentParserServiceImpl implements ISegmentParserService {
     private final SegmentParseV2.Producer segmentProducer;
 
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/endpoint/MultiScopesSpanListener.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/endpoint/MultiScopesSpanListener.java
index 97f7fc9..9151fc4 100755
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/endpoint/MultiScopesSpanListener.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/endpoint/MultiScopesSpanListener.java
@@ -54,7 +54,7 @@ import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.
 import static java.util.Objects.nonNull;
 
 /**
- * MultiScopesSpanListener includes the most segment->source(s) logic.
+ * MultiScopesSpanListener includes the most segment to source(s) logic.
  *
  * This listener traverses the whole segment.
  */
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/IdExchanger.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/IdExchanger.java
index 9d5be9d..8a8420a 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/IdExchanger.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/IdExchanger.java
@@ -21,7 +21,7 @@ package org.apache.skywalking.oap.server.receiver.trace.provider.parser.standard
 import org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator.StandardBuilder;
 
 /**
- * The implementation has details to do String->ID(integer) transformation.
+ * The implementation has details to do String to ID(integer) transformation.
  */
 public interface IdExchanger<T extends StandardBuilder> {
     /**