This is an automated email from the ASF dual-hosted git repository. gomm pushed a commit to branch edge-extensions in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git
commit 77edacb7c53ce6dd2e9384e1b4193293af8d4e2b Merge: bf01f58 c84435e Author: Daniel Gomm <[email protected]> AuthorDate: Wed Apr 28 21:26:39 2021 +0200 Merge branch 'edge-extensions' of https://github.com/apache/incubator-streampipes into edge-extensions Conflicts: streampipes-node-controller/src/main/java/org/apache/streampipes/node/controller/management/resource/ResourceManager.java .idea/runConfigurations/node_controller_cloud.xml | 2 +- .../runConfigurations/node_controller_edge_01.xml | 4 +- .../node_controller_edge_01__kafka_.xml | 2 +- .../runConfigurations/node_controller_edge_02.xml | 2 +- .idea/runConfigurations/node_controller_fog.xml | 2 +- .../streampipes/model/pipeline/Pipeline.java | 40 ++ .../streampipes/model/resource/Hardware.java | 42 ++ .../model/resource/NodeResourceRequirement.java | 2 +- streampipes-node-controller/pom.xml | 5 + .../node/controller/api/AbstractResource.java | 2 + .../node/controller/api/HealthCheckResource.java | 4 +- .../api/NodeInfoDescriptionResource.java | 3 +- .../node/controller/config/ConfigKeys.java | 51 --- .../node/controller/config/EnvConfigParam.java | 84 ++++ .../node/controller/config/NodeConfiguration.java | 496 +++++++++++++++++++++ .../controller/config/NodeControllerConfig.java | 290 ------------ .../node/controller/config/utils/ConfigUtils.java | 69 +++ .../container/DockerExtensionsContainer.java | 6 +- .../controller/container/DockerKafkaContainer.java | 4 +- .../management/NodeControllerSubmitter.java | 17 +- .../management/connect/ConnectManager.java | 11 +- .../management/janitor/JanitorManager.java | 4 +- .../controller/management/node/NodeConstants.java | 29 +- .../controller/management/node/NodeManager.java | 11 +- .../orchestrator/DockerOrchestratorManager.java | 2 - .../docker/AbstractStreamPipesDockerContainer.java | 20 +- .../docker/DockerContainerDeclarerSingleton.java | 4 +- .../orchestrator/docker/utils/DockerUtils.java | 1 - .../management/pe/InvocableElementManager.java | 12 +- .../relay/bridges/MultiBrokerBridge.java | 4 +- .../management/resource/ResourceManager.java | 15 +- .../pipeline/AbstractPipelineExecutor.java | 31 +- .../manager/matching/InvocationGraphBuilder.java | 30 +- .../management/cluster/AbstractClusterManager.java | 8 +- .../streampipes/rest/impl/PipelineResource.java | 5 + .../builder/AbstractProcessingElementBuilder.java | 2 +- .../sdk/builder/ResourceRequirementsBuilder.java | 109 +++++ .../sdk/helpers/NodeResourceRequirements.java | 9 + .../apache/streampipes/vocabulary/StreamPipes.java | 3 + ui/src/app/core-model/gen/streampipes-model.ts | 16 +- .../pipeline-assembly.component.ts | 12 + .../node-tag-selector.component.ts | 15 + .../save-pipeline/save-pipeline.component.html | 43 +- .../save-pipeline/save-pipeline.component.ts | 97 +++- 44 files changed, 1148 insertions(+), 472 deletions(-) diff --cc streampipes-node-controller/src/main/java/org/apache/streampipes/node/controller/management/resource/ResourceManager.java index a57acba,e0d185b..1e3db98 --- a/streampipes-node-controller/src/main/java/org/apache/streampipes/node/controller/management/resource/ResourceManager.java +++ b/streampipes-node-controller/src/main/java/org/apache/streampipes/node/controller/management/resource/ResourceManager.java @@@ -19,13 -19,11 +19,11 @@@ package org.apache.streampipes.node.con import com.fasterxml.jackson.core.JsonProcessingException; import org.apache.streampipes.commons.exceptions.SpRuntimeException; -import org.apache.streampipes.node.controller.config.NodeConfiguration; +import org.apache.streampipes.node.controller.config.NodeControllerConfig; - import org.apache.streampipes.node.controller.management.offloading.model.OffloadingStrategy; - import org.apache.streampipes.node.controller.management.offloading.OffloadingPolicyManager; - import org.apache.streampipes.node.controller.management.offloading.model.policies.Comparator; - import org.apache.streampipes.node.controller.management.offloading.model.policies.ThresholdViolationOffloadingPolicy; - import org.apache.streampipes.node.controller.management.offloading.model.property.CPULoadResourceProperty; - import org.apache.streampipes.node.controller.management.offloading.model.selection.RandomSelectionStrategy; + import org.apache.streampipes.node.controller.management.offloading.AutoOffloadingManager; + import org.apache.streampipes.node.controller.management.offloading.policies.Comparator; + import org.apache.streampipes.node.controller.management.offloading.policies.MultiOccurrenceThresholdViolationPolicy; + import org.apache.streampipes.node.controller.management.offloading.policies.OffloadingPolicy; import org.apache.streampipes.node.controller.management.resource.model.ResourceMetrics; import org.apache.streampipes.node.controller.management.resource.utils.DiskSpace; import org.apache.streampipes.node.controller.management.resource.utils.ResourceUtils; @@@ -50,13 -48,11 +48,16 @@@ public class ResourceManager private final OperatingSystem os = si.getOperatingSystem(); private final Calendar cal = Calendar.getInstance(); private final ResourceMetrics resourceMetrics = new ResourceMetrics(); + // Offloading policy + private final OffloadingPolicy<Float> multiStepThresholdPolicy = new MultiOccurrenceThresholdViolationPolicy<>(5, + Comparator.GREATER,99f, 5); - private ResourceManager() {} + private ResourceManager() { + //Offloading Policy + OffloadingPolicyManager.getInstance().addOffloadingStrategy(new OffloadingStrategy<Float>(new + ThresholdViolationOffloadingPolicy<>(5, Comparator.GREATER,0.6f, 5), + new CPULoadResourceProperty(), new RandomSelectionStrategy())); + } public static ResourceManager getInstance() { if (instance == null) {
