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/09/23 10:48:28 UTC

[skywalking] branch master updated: Fixed some bugs with browser-recevier (#5543)

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 7135414  Fixed some bugs with browser-recevier (#5543)
7135414 is described below

commit 7135414c3cc0abd0ce96ef8cb8cc35a362889585
Author: zhang-wei <pk...@outlook.com>
AuthorDate: Wed Sep 23 18:48:06 2020 +0800

    Fixed some bugs with browser-recevier (#5543)
---
 apm-dist-es7/src/main/assembly/binary-es7.xml                |  1 +
 apm-dist/src/main/assembly/binary.xml                        |  1 +
 docs/en/protocols/Browser-HTTP-API-Protocol.md               | 12 ++++++------
 docs/en/setup/backend/backend-receivers.md                   |  1 +
 docs/en/setup/backend/configuration-vocabulary.md            |  2 ++
 oap-server/server-bootstrap/pom.xml                          |  1 +
 .../server-bootstrap/src/main/resources/application.yml      |  2 ++
 .../oap/server/core/analysis/metrics/RateMetrics.java        |  3 +++
 .../browser/provider/BrowserServiceModuleConfig.java         |  4 ++--
 .../provider/handler/grpc/BrowserPerfServiceHandler.java     |  2 +-
 .../rest/BrowserErrorLogReportBaseServletHandler.java        |  4 ++++
 .../handler/rest/BrowserPerfDataReportServletHandler.java    |  5 ++++-
 .../parser/errorlog/listener/ErrorLogRecordListener.java     |  9 +++++----
 13 files changed, 33 insertions(+), 14 deletions(-)

diff --git a/apm-dist-es7/src/main/assembly/binary-es7.xml b/apm-dist-es7/src/main/assembly/binary-es7.xml
index d810ea0..abb059f 100644
--- a/apm-dist-es7/src/main/assembly/binary-es7.xml
+++ b/apm-dist-es7/src/main/assembly/binary-es7.xml
@@ -52,6 +52,7 @@
                 <include>service-apdex-threshold.yml</include>
                 <include>endpoint-name-grouping.yml</include>
                 <include>ui-initialized-templates.yml</include>
+                <include>oal/browser.oal</include>
                 <include>oal/core.oal</include>
                 <include>oal/java-agent.oal</include>
                 <include>oal/dotnet-agent.oal</include>
diff --git a/apm-dist/src/main/assembly/binary.xml b/apm-dist/src/main/assembly/binary.xml
index e01fd82..dbc0ab4 100644
--- a/apm-dist/src/main/assembly/binary.xml
+++ b/apm-dist/src/main/assembly/binary.xml
@@ -52,6 +52,7 @@
                 <include>service-apdex-threshold.yml</include>
                 <include>ui-initialized-templates.yml</include>
                 <include>endpoint-name-grouping.yml</include>
+                <include>oal/browser.oal</include>
                 <include>oal/core.oal</include>
                 <include>oal/java-agent.oal</include>
                 <include>oal/dotnet-agent.oal</include>
diff --git a/docs/en/protocols/Browser-HTTP-API-Protocol.md b/docs/en/protocols/Browser-HTTP-API-Protocol.md
index 25d2e16..f33b99b 100644
--- a/docs/en/protocols/Browser-HTTP-API-Protocol.md
+++ b/docs/en/protocols/Browser-HTTP-API-Protocol.md
@@ -37,9 +37,7 @@ Input:
 
 OutPut:
 
-```json
-
-```
+Http Status: 204
 
 ## Error Log Report
 
@@ -80,6 +78,10 @@ Input:
 ]
 ```
 
+OutPut:
+
+Http Status: 204
+
 ### POST http://localhost:12800/browser/errorLog
 
 Send a single error log object with JSON format.
@@ -103,6 +105,4 @@ Input:
 
 OutPut:
 
-```json
-
-```
+Http Status: 204
diff --git a/docs/en/setup/backend/backend-receivers.md b/docs/en/setup/backend/backend-receivers.md
index 88aa26d..ad9e67b 100644
--- a/docs/en/setup/backend/backend-receivers.md
+++ b/docs/en/setup/backend/backend-receivers.md
@@ -65,6 +65,7 @@ receiver-profile:
 receiver-browser:
   selector: ${SW_RECEIVER_BROWSER:default}
   default:
+    sampleRate: ${SW_RECEIVER_BROWSER_SAMPLE_RATE:10000}
 ```
 
 ## gRPC/HTTP server for receiver
diff --git a/docs/en/setup/backend/configuration-vocabulary.md b/docs/en/setup/backend/configuration-vocabulary.md
index b56366b..09a7c73 100644
--- a/docs/en/setup/backend/configuration-vocabulary.md
+++ b/docs/en/setup/backend/configuration-vocabulary.md
@@ -198,6 +198,8 @@ core|default|role|Option values, `Mixed/Receiver/Aggregator`. **Receiver** mode
 | - | - | topicNameOfProfiling | Specifying Kafka topic name for Profiling data. | - | skywalking-profilings |
 | - | - | topicNameOfTracingSegments | Specifying Kafka topic name for Tracing data. | - | skywalking-segments |
 | - | - | topicNameOfManagements | Specifying Kafka topic name for service instance reporting and registering. | - | skywalking-managements |
+| receiver-browser | default | Read [receiver doc](backend-receivers.md) for more details | - | - | - |
+| - | - | sampleRate | Sampling rate for receiving trace. The precision is 1/10000. 10000 means 100% sample in default. | SW_RECEIVER_BROWSER_SAMPLE_RATE | 10000 |
 | query | graphql | - | GraphQL query implementation | - |
 | - | - | path | Root path of GraphQL query and mutation. | SW_QUERY_GRAPHQL_PATH | /graphql|
 | alarm | default | - | Read [alarm doc](backend-alarm.md) for more details. | - |
diff --git a/oap-server/server-bootstrap/pom.xml b/oap-server/server-bootstrap/pom.xml
index d3a369b..47f233c 100644
--- a/oap-server/server-bootstrap/pom.xml
+++ b/oap-server/server-bootstrap/pom.xml
@@ -258,6 +258,7 @@
                         <exclude>service-apdex-threshold.yml</exclude>
                         <exclude>endpoint-name-grouping.yml</exclude>
                         <exclude>ui-initialized-templates.yml</exclude>
+                        <exclude>oal/browser.oal</exclude>
                         <exclude>oal/core.oal</exclude>
                         <exclude>oal/java-agent.oal</exclude>
                         <exclude>oal/dotnet-agent.oal</exclude>
diff --git a/oap-server/server-bootstrap/src/main/resources/application.yml b/oap-server/server-bootstrap/src/main/resources/application.yml
index e48e487..ddec44c 100755
--- a/oap-server/server-bootstrap/src/main/resources/application.yml
+++ b/oap-server/server-bootstrap/src/main/resources/application.yml
@@ -284,6 +284,8 @@ receiver_jaeger:
 receiver-browser:
   selector: ${SW_RECEIVER_BROWSER:default}
   default:
+    # The sample rate precision is 1/10000. 10000 means 100% sample in default.
+    sampleRate: ${SW_RECEIVER_BROWSER_SAMPLE_RATE:10000}
 
 query:
   selector: ${SW_QUERY:graphql}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/RateMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/RateMetrics.java
index d4cedb6..df77f3b 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/RateMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/RateMetrics.java
@@ -62,6 +62,9 @@ public abstract class RateMetrics extends Metrics implements IntValueHolder {
 
     @Override
     public void calculate() {
+        if (denominator == 0) {
+            return;
+        }
         percentage = (int) (numerator * 10000 / denominator);
     }
 
diff --git a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/BrowserServiceModuleConfig.java b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/BrowserServiceModuleConfig.java
index 7d9974f..6b3233a 100644
--- a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/BrowserServiceModuleConfig.java
+++ b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/BrowserServiceModuleConfig.java
@@ -21,11 +21,11 @@ import lombok.Getter;
 import lombok.Setter;
 import org.apache.skywalking.oap.server.library.module.ModuleConfig;
 
+@Setter
+@Getter
 public class BrowserServiceModuleConfig extends ModuleConfig {
     /**
      * The sample rate precision is 1/10000. 10000 means 100% sample in default.
      */
-    @Setter
-    @Getter
     private int sampleRate = 10000;
 }
diff --git a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/grpc/BrowserPerfServiceHandler.java b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/grpc/BrowserPerfServiceHandler.java
index 7be6438..8368a45 100644
--- a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/grpc/BrowserPerfServiceHandler.java
+++ b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/grpc/BrowserPerfServiceHandler.java
@@ -37,7 +37,7 @@ import org.apache.skywalking.oap.server.telemetry.api.MetricsCreator;
 import org.apache.skywalking.oap.server.telemetry.api.MetricsTag;
 
 /**
- * Collect and process the performance and error log.
+ * Collect and process the performance data and error log.
  */
 @Slf4j
 public class BrowserPerfServiceHandler extends BrowserPerfServiceGrpc.BrowserPerfServiceImplBase implements GRPCHandler {
diff --git a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/rest/BrowserErrorLogReportBaseServletHandler.java b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/rest/BrowserErrorLogReportBaseServletHandler.java
index ccf7c80..ce7d7a6 100644
--- a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/rest/BrowserErrorLogReportBaseServletHandler.java
+++ b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/rest/BrowserErrorLogReportBaseServletHandler.java
@@ -35,6 +35,9 @@ import org.apache.skywalking.oap.server.telemetry.api.HistogramMetrics;
 import org.apache.skywalking.oap.server.telemetry.api.MetricsCreator;
 import org.apache.skywalking.oap.server.telemetry.api.MetricsTag;
 
+/**
+ * Collect and process the error log
+ */
 @Slf4j
 public abstract class BrowserErrorLogReportBaseServletHandler extends JettyHandler {
     private final ModuleManager moduleManager;
@@ -84,6 +87,7 @@ public abstract class BrowserErrorLogReportBaseServletHandler extends JettyHandl
                 ErrorLogAnalyzer analyzer = new ErrorLogAnalyzer(moduleManager, errorLogListenerManager, config);
                 analyzer.doAnalysis(browserErrorLog);
             }
+            resp.setStatus(HttpServletResponse.SC_NO_CONTENT);
         } catch (Throwable e) {
             log.error(e.getMessage(), e);
             logErrorCounter.inc();
diff --git a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/rest/BrowserPerfDataReportServletHandler.java b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/rest/BrowserPerfDataReportServletHandler.java
index e0bec01..2a67706 100644
--- a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/rest/BrowserPerfDataReportServletHandler.java
+++ b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/handler/rest/BrowserPerfDataReportServletHandler.java
@@ -36,6 +36,9 @@ import org.apache.skywalking.oap.server.telemetry.api.HistogramMetrics;
 import org.apache.skywalking.oap.server.telemetry.api.MetricsCreator;
 import org.apache.skywalking.oap.server.telemetry.api.MetricsTag;
 
+/**
+ * Collect and process the performance data
+ */
 @Slf4j
 public class BrowserPerfDataReportServletHandler extends JettyHandler {
     private final ModuleManager moduleManager;
@@ -55,7 +58,6 @@ public class BrowserPerfDataReportServletHandler extends JettyHandler {
         MetricsCreator metricsCreator = moduleManager.find(TelemetryModule.NAME)
                                                      .provider()
                                                      .getService(MetricsCreator.class);
-
         perfHistogram = metricsCreator.createHistogramMetric(
             "browser_perf_data_in_latency", "The process latency of browser performance data",
             new MetricsTag.Keys("protocol"), new MetricsTag.Values("http")
@@ -84,6 +86,7 @@ public class BrowserPerfDataReportServletHandler extends JettyHandler {
             BrowserPerfData browserPerfData = parseBrowserPerfData(req);
             PerfDataAnalyzer analyzer = new PerfDataAnalyzer(moduleManager, perfDataListenerManager, config);
             analyzer.doAnalysis(browserPerfData);
+            resp.setStatus(HttpServletResponse.SC_NO_CONTENT);
         } catch (Throwable e) {
             log.error(e.getMessage(), e);
             perfErrorCounter.inc();
diff --git a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/parser/errorlog/listener/ErrorLogRecordListener.java b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/parser/errorlog/listener/ErrorLogRecordListener.java
index 216875d..793a076 100644
--- a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/parser/errorlog/listener/ErrorLogRecordListener.java
+++ b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/parser/errorlog/listener/ErrorLogRecordListener.java
@@ -78,16 +78,17 @@ public class ErrorLogRecordListener implements ErrorLogAnalysisListener {
 
         // service
         String serviceName = namingControl.formatServiceName(decorator.getService());
-        errorLog.setServiceId(IDManager.ServiceID.buildId(serviceName, NodeType.Browser));
+        String serviceId = IDManager.ServiceID.buildId(serviceName, NodeType.Browser);
+        errorLog.setServiceId(serviceId);
 
         // service version
-        String serviceVersionName = namingControl.formatInstanceName(decorator.getServiceVersion());
-        errorLog.setServiceVersionId(IDManager.ServiceInstanceID.buildId(serviceName, serviceVersionName));
+        errorLog.setServiceVersionId(IDManager.ServiceInstanceID.buildId(serviceId, namingControl.formatInstanceName(
+            decorator.getServiceVersion())));
 
         // page
         String pagePath = namingControl.formatEndpointName(serviceName, decorator.getPagePath());
         errorLog.setPagePath(pagePath);
-        errorLog.setPagePathId(IDManager.EndpointID.buildId(serviceName, pagePath));
+        errorLog.setPagePathId(IDManager.EndpointID.buildId(serviceId, pagePath));
 
         // raw data
         errorLog.setErrorCategory(BrowserErrorCategory.fromErrorCategory(decorator.getCategory()));