diff --git a/CHANGES.md b/CHANGES.md index 9d53966c8..1ccf845e8 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -28,11 +28,14 @@ Release Notes. * Fix deadlock problem when using elasticsearch-client-7.0.0. * Fix storage-jdbc isExists not set dbname. * Fix `searchService` bug in the InfluxDB storage implementation. +* Fix CVE in the alarm module, when activating the dynamic configuration feature. +* Make the codes and doc consistent in sharding server and core server. #### UI #### Documentation * Add VNode FAQ doc. +* Adjust configuration names and system environment names of the sharing server module All issues and pull requests are [here](https://github.com/apache/skywalking/milestone/62?closed=1) diff --git a/docs/en/setup/backend/configuration-vocabulary.md b/docs/en/setup/backend/configuration-vocabulary.md index e5104e267..24004e23b 100644 --- a/docs/en/setup/backend/configuration-vocabulary.md +++ b/docs/en/setup/backend/configuration-vocabulary.md @@ -148,9 +148,14 @@ core|default|role|Option values, `Mixed/Receiver/Aggregator`. **Receiver** mode | - | - |slowTraceSegmentThreshold|Setting this threshold about the latency would make the slow trace segments sampled if they cost more time, even the sampling mechanism activated. The default value is `-1`, which means would not sample slow traces. Unit, millisecond. |SW_SLOW_TRACE_SEGMENT_THRESHOLD|-1| | - | - |meterAnalyzerActiveFiles|Which files could be meter analyzed, files split by ","|SW_METER_ANALYZER_ACTIVE_FILES|| | receiver-sharing-server|default| Sharing server provides new gRPC and restful servers for data collection. Ana make the servers in the core module working for internal communication only.| - | - | -| - | - | restHost| Binding IP of restful service. Services include GraphQL query and HTTP data report| - | - | -| - | - | restPort | Binding port of restful service | - | - | -| - | - | restContextPath| Web context path of restful service| - | - | +| - | - | restHost| Binding IP of restful service. Services include GraphQL query and HTTP data report| SW_RECEIVER_SHARING_REST_HOST | - | +| - | - | restPort | Binding port of restful service | SW_RECEIVER_SHARING_REST_PORT | - | +| - | - | restContextPath| Web context path of restful service| SW_RECEIVER_SHARING_REST_CONTEXT_PATH | - | +| - | - | restMinThreads| Min threads number of restful service| SW_RECEIVER_SHARING_JETTY_MIN_THREADS|1| +| - | - | restMaxThreads| Max threads number of restful service| SW_RECEIVER_SHARING_JETTY_MAX_THREADS|200| +| - | - | restIdleTimeOut| Connector idle timeout in milliseconds of restful service| SW_RECEIVER_SHARING_JETTY_IDLE_TIMEOUT|30000| +| - | - | restAcceptorPriorityDelta| Thread priority delta to give to acceptor threads of restful service| SW_RECEIVER_SHARING_JETTY_DELTA|0| +| - | - | restAcceptQueueSize| ServerSocketChannel backlog of restful service| SW_RECEIVER_SHARING_JETTY_QUEUE_SIZE|0| | - | - | gRPCHost|Binding IP of gRPC service. Services include gRPC data report and internal communication among OAP nodes| SW_RECEIVER_GRPC_HOST | 0.0.0.0. Not Activated | | - | - | gRPCPort| Binding port of gRPC service | SW_RECEIVER_GRPC_PORT | Not Activated | | - | - | gRPCThreadPoolSize|Pool size of gRPC server| SW_RECEIVER_GRPC_THREAD_POOL_SIZE | CPU core * 4| diff --git a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/RulesReader.java b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/RulesReader.java index 350254e61..196e7f722 100644 --- a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/RulesReader.java +++ b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/RulesReader.java @@ -18,18 +18,18 @@ package org.apache.skywalking.oap.server.core.alarm.provider; -import org.apache.skywalking.oap.server.core.alarm.provider.dingtalk.DingtalkSettings; -import org.apache.skywalking.oap.server.core.alarm.provider.grpc.GRPCAlarmSetting; -import org.apache.skywalking.oap.server.core.alarm.provider.slack.SlackSettings; -import org.apache.skywalking.oap.server.core.alarm.provider.wechat.WechatSettings; -import org.yaml.snakeyaml.Yaml; - import java.io.InputStream; import java.io.Reader; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; +import org.apache.skywalking.oap.server.core.alarm.provider.dingtalk.DingtalkSettings; +import org.apache.skywalking.oap.server.core.alarm.provider.grpc.GRPCAlarmSetting; +import org.apache.skywalking.oap.server.core.alarm.provider.slack.SlackSettings; +import org.apache.skywalking.oap.server.core.alarm.provider.wechat.WechatSettings; +import org.yaml.snakeyaml.Yaml; +import org.yaml.snakeyaml.constructor.SafeConstructor; /** * Rule Reader parses the given `alarm-settings.yml` config file, to the target {@link Rules}. @@ -38,13 +38,13 @@ public class RulesReader { private Map yamlData; public RulesReader(InputStream inputStream) { - Yaml yaml = new Yaml(); - yamlData = yaml.loadAs(inputStream, Map.class); + Yaml yaml = new Yaml(new SafeConstructor()); + yamlData = (Map) yaml.load(inputStream); } public RulesReader(Reader io) { - Yaml yaml = new Yaml(); - yamlData = yaml.loadAs(io, Map.class); + Yaml yaml = new Yaml(new SafeConstructor()); + yamlData = (Map) yaml.load(io); } /** @@ -65,7 +65,6 @@ public class RulesReader { return rules; } - /** * Read rule config into {@link AlarmRule} */ @@ -91,9 +90,9 @@ public class RulesReader { alarmRule.setIncludeNamesRegex((String) settings.getOrDefault("include-names-regex", "")); alarmRule.setExcludeNamesRegex((String) settings.getOrDefault("exclude-names-regex", "")); alarmRule.setIncludeLabels( - (ArrayList) settings.getOrDefault("include-labels", new ArrayList(0))); + (ArrayList) settings.getOrDefault("include-labels", new ArrayList(0))); alarmRule.setExcludeLabels( - (ArrayList) settings.getOrDefault("exclude-labels", new ArrayList(0))); + (ArrayList) settings.getOrDefault("exclude-labels", new ArrayList(0))); alarmRule.setIncludeLabelsRegex((String) settings.getOrDefault("include-labels-regex", "")); alarmRule.setExcludeLabelsRegex((String) settings.getOrDefault("exclude-labels-regex", "")); alarmRule.setThreshold(settings.get("threshold").toString()); @@ -104,8 +103,8 @@ public class RulesReader { alarmRule.setSilencePeriod((Integer) settings.getOrDefault("silence-period", alarmRule.getPeriod())); alarmRule.setOnlyAsCondition((Boolean) settings.getOrDefault("only-as-condition", false)); alarmRule.setMessage( - (String) settings.getOrDefault("message", "Alarm caused by Rule " + alarmRule - .getAlarmRuleName())); + (String) settings.getOrDefault("message", "Alarm caused by Rule " + alarmRule + .getAlarmRuleName())); rules.getRules().add(alarmRule); } @@ -201,7 +200,7 @@ public class RulesReader { } compositeAlarmRule.setExpression(expression); compositeAlarmRule.setMessage( - (String) settings.getOrDefault("message", "Alarm caused by Rule " + ruleName)); + (String) settings.getOrDefault("message", "Alarm caused by Rule " + ruleName)); rules.getCompositeRules().add(compositeAlarmRule); } }); diff --git a/oap-server/server-bootstrap/src/main/resources/application.yml b/oap-server/server-bootstrap/src/main/resources/application.yml index bdcf67ae6..5cc427ea2 100755 --- a/oap-server/server-bootstrap/src/main/resources/application.yml +++ b/oap-server/server-bootstrap/src/main/resources/application.yml @@ -198,13 +198,14 @@ receiver-sharing-server: selector: ${SW_RECEIVER_SHARING_SERVER:default} default: # For Jetty server - host: ${SW_RECEIVER_JETTY_HOST:0.0.0.0} - contextPath: ${SW_RECEIVER_JETTY_CONTEXT_PATH:/} - jettyMinThreads: ${SW_RECEIVER_SHARING_JETTY_MIN_THREADS:1} - jettyMaxThreads: ${SW_RECEIVER_SHARING_JETTY_MAX_THREADS:200} - jettyIdleTimeOut: ${SW_RECEIVER_SHARING_JETTY_IDLE_TIMEOUT:30000} - jettyAcceptorPriorityDelta: ${SW_RECEIVER_SHARING_JETTY_DELTA:0} - jettyAcceptQueueSize: ${SW_RECEIVER_SHARING_JETTY_QUEUE_SIZE:0} + restHost: ${SW_RECEIVER_SHARING_REST_HOST:0.0.0.0} + restPort: ${SW_RECEIVER_SHARING_REST_PORT:0} + contextPath: ${SW_RECEIVER_SHARING_REST_CONTEXT_PATH:/} + restMinThreads: ${SW_RECEIVER_SHARING_JETTY_MIN_THREADS:1} + restMaxThreads: ${SW_RECEIVER_SHARING_JETTY_MAX_THREADS:200} + restIdleTimeOut: ${SW_RECEIVER_SHARING_JETTY_IDLE_TIMEOUT:30000} + restAcceptorPriorityDelta: ${SW_RECEIVER_SHARING_JETTY_DELTA:0} + restAcceptQueueSize: ${SW_RECEIVER_SHARING_JETTY_QUEUE_SIZE:0} # For gRPC server gRPCHost: ${SW_RECEIVER_GRPC_HOST:0.0.0.0} gRPCPort: ${SW_RECEIVER_GRPC_PORT:0} 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 252c4d107..c3866dfb5 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 @@ -25,17 +25,17 @@ import org.apache.skywalking.oap.server.library.module.ModuleConfig; @Getter @Setter public class SharingServerConfig extends ModuleConfig { - private String host; + private String restHost; /** * Only setting the real port(not 0) makes the jetty server online. */ - private int port; - private String contextPath; - private int jettyMinThreads = 1; - private int jettyMaxThreads = 200; - private long jettyIdleTimeOut = 30000; - private int jettyAcceptorPriorityDelta = 0; - private int jettyAcceptQueueSize = 0; + private int restPort; + private String restContextPath; + private int restMinThreads = 1; + private int restMaxThreads = 200; + private long restIdleTimeOut = 30000; + private int restAcceptorPriorityDelta = 0; + private int restAcceptQueueSize = 0; private String gRPCHost; /** diff --git a/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerModuleProvider.java b/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerModuleProvider.java index 21c3cb480..9984d4284 100644 --- a/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerModuleProvider.java +++ b/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerModuleProvider.java @@ -68,20 +68,20 @@ public class SharingServerModuleProvider extends ModuleProvider { @Override public void prepare() { - JettyServerConfig jettyServerConfig = JettyServerConfig.builder() - .host(config.getHost()).port(config.getPort()) - .contextPath(config.getContextPath()) - .jettyMinThreads(config.getJettyMinThreads()) - .jettyMaxThreads(config.getJettyMaxThreads()) - .jettyAcceptQueueSize(config.getJettyAcceptQueueSize()) - .jettyAcceptorPriorityDelta( - config.getJettyAcceptorPriorityDelta()) - .jettyIdleTimeOut(config.getJettyIdleTimeOut()).build(); - - if (config.getPort() != 0) { - jettyServerConfig.setHost(Strings.isBlank(config.getHost()) ? "0.0.0.0" : config.getHost()); - jettyServerConfig.setPort(config.getPort()); - jettyServerConfig.setContextPath(config.getContextPath()); + if (config.getRestPort() > 0) { + JettyServerConfig jettyServerConfig = + JettyServerConfig.builder() + .host(config.getRestHost()).port(config.getRestPort()) + .contextPath(config.getRestContextPath()) + .jettyMinThreads(config.getRestMinThreads()) + .jettyMaxThreads(config.getRestMaxThreads()) + .jettyAcceptQueueSize(config.getRestAcceptQueueSize()) + .jettyAcceptorPriorityDelta( + config.getRestAcceptorPriorityDelta()) + .jettyIdleTimeOut(config.getRestIdleTimeOut()).build(); + jettyServerConfig.setHost(Strings.isBlank(config.getRestHost()) ? "0.0.0.0" : config.getRestHost()); + jettyServerConfig.setPort(config.getRestPort()); + jettyServerConfig.setContextPath(config.getRestContextPath()); jettyServer = new JettyServer(jettyServerConfig); jettyServer.initialize();