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