From 82b75c8e3a616bcc302a819e23b82d812145a0b1 Mon Sep 17 00:00:00 2001 From: Stefano Cattaneo Date: Wed, 7 Feb 2024 17:03:47 +0100 Subject: [PATCH 01/25] Add Ansible playbook, update README, update used faasd version --- README.md | 45 +++++++---- docker/dfaas-node.dockerfile | 2 +- docker/files/faasd/hack/install.sh | 2 +- setup_playbook.yaml | 117 +++++++++++++++++++++++++++++ 4 files changed, 151 insertions(+), 15 deletions(-) create mode 100644 setup_playbook.yaml diff --git a/README.md b/README.md index a882300..55c0016 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ The edge node can receive functions' execution _requests_, in the form of HTTP r ## Prototype This prototype relies on [HAProxy](https://www.haproxy.org/) to implement the proxy component, -and on [faasd 0.16.0](https://github.com/openfaas/faasd) (a lightweight version of OpenFaaS) to implement the FaaS platform. +and on [faasd 0.18.6](https://github.com/openfaas/faasd) (a lightweight version of OpenFaaS) to implement the FaaS platform. Also, we exploit [Sysbox](https://github.com/nestybox/sysbox), an open-source and free container runtime (a specialized "runc") that enhances containers in two key ways: @@ -43,31 +43,50 @@ This way, we can run several emulated edge nodes by simply executing multiple Do ### Requirements -- Ubuntu 20.04 LTS -- containerd 1.6.4 -- Docker CE 20.10.16 -- Sysbox CE 0.5.2 +- Ubuntu 22.04 LTS +- containerd 1.6.27 +- Docker CE 25.0.1 +- Sysbox CE 0.6.3 -#### Setup environment using the convenience script +#### Setup environment using the Ansible playbook -The script has 3 arguments: +Install [Ansible](https://www.ansible.com/), an agentless automation tool that you install on a single host, referred to as the control node. +Then, using the [setup_playbook.yaml](setup_playbook.yaml) file, your Ansible control node can setup the environment to execute DFaaS on the managed node(s) specified in an inventory file. + +Here is an example of an inventory.yaml file to setup the environment on a host via SSH connection: + +```yaml +ungrouped: + hosts: + : + ansible_port: + ansible_connection: ssh + ansible_user: + ansible_password: +``` -- 1st arg: Sysbox CE version -- 2nd arg: shiftfs branch +Run the `ansible-playbook` command on the control node to execute the tasks specified in the playbook with the following options: -> This scripts assumes you are using Ubuntu 20.04 LTS with kernel version 5.4. +`-i` : path to an inventory file +`--extra-vars` : to specify the Sysbox version and shiftfs branch to be installed + +> The following command assumes you are using Ubuntu 22.04 LTS with kernel version 5.15 or 5.16. ```shell -./setup-environment 0.5.2 k5.4 +ansible-playbook -i inventory.yaml setup_playbook.yaml --extra-vars "sysbox_ver=0.6.3 shiftfs_ver=k5.16" ``` #### Manual -_Docker CE v20.10.16_ +_Ansible_ + +You can follow the [official user guide](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html). + +_Docker CE v25.0.1_ You can follow the [official user guide](https://docs.docker.com/engine/install/). -_Sysbox CE 0.5.2_ +_Sysbox CE 0.6.3_ You can follow the [official user guide](https://github.com/nestybox/sysbox/blob/master/docs/user-guide/install-package.md). diff --git a/docker/dfaas-node.dockerfile b/docker/dfaas-node.dockerfile index 48c725d..a501d33 100644 --- a/docker/dfaas-node.dockerfile +++ b/docker/dfaas-node.dockerfile @@ -22,7 +22,7 @@ RUN apt-get update && apt-get install -y \ iproute2 && \ apt-get clean && rm -rf /var/lib/apt/lists/* -RUN git clone --branch 0.16.0 https://github.com/openfaas/faasd /faasd +RUN git clone --branch 0.18.6 https://github.com/openfaas/faasd /faasd WORKDIR /faasd diff --git a/docker/files/faasd/hack/install.sh b/docker/files/faasd/hack/install.sh index dee8f42..2c8e43e 100644 --- a/docker/files/faasd/hack/install.sh +++ b/docker/files/faasd/hack/install.sh @@ -7,7 +7,7 @@ set -x export OWNER="openfaas" export REPO="faasd" -version="0.16.0" +version="0.18.6" #echo "Finding latest version from GitHub" #version=$(curl -sI https://github.com/$OWNER/$REPO/releases/latest | grep -i "location:" | awk -F"/" '{ printf "%s", $NF }' | tr -d '\r') diff --git a/setup_playbook.yaml b/setup_playbook.yaml new file mode 100644 index 0000000..5b3b445 --- /dev/null +++ b/setup_playbook.yaml @@ -0,0 +1,117 @@ +--- +- name: Setup Environment + hosts: all + become: true + vars: + arch_mapping: + x86_64: amd64 + aarch64: arm64 + + tasks: + - name: Update apt packages + apt: + update_cache: true + + - name: Install required system packages + apt: + name: "{{ item }}" + state: latest + update_cache: true + loop: + - jq + - ca-certificates + - curl + - wget + - gnupg + - make + - dkms + - lsb-release + - apt-transport-https + - software-properties-common + - git + + - name: Create directory for Docker's GPG key + file: + path: /etc/apt/keyrings + state: directory + mode: '0755' + + - name: Add Docker's official GPG key + apt_key: + url: https://download.docker.com/linux/ubuntu/gpg + keyring: /etc/apt/keyrings/docker.gpg + state: present + + - name: Change GPG key permissions + file: + path: /etc/apt/keyrings/docker.gpg + state: file + mode: 'a+r' + + - name: Set up the stable repository + apt_repository: + repo: deb [arch={{ arch_mapping[ansible_architecture] | default(ansible_architecture) }} signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu {{ ansible_lsb.codename }} stable + filename: docker + state: present + update_cache: true + + - name: Install Docker and related packages + apt: + name: "{{ item }}" + state: present + update_cache: true + loop: + - docker-ce=5:25.0.1-1~ubuntu.{{ ansible_lsb.release }}~{{ ansible_lsb.codename }} + - docker-ce-cli=5:25.0.1-1~ubuntu.{{ ansible_lsb.release }}~{{ ansible_lsb.codename }} + - containerd.io + - docker-buildx-plugin + - docker-compose-plugin + + - name: Add Docker group + group: + name: docker + state: present + + - name: Add user to docker group + user: + name: "{{ ansible_user_id }}" + groups: "docker" + append: true + + - name: Enable and start Docker services + systemd: + name: "{{ item }}" + enabled: true + state: started + loop: + - docker.service + - containerd.service + + - name: Create sysbox directory + file: + path: ./sysbox + state: directory + + - name: Download sysbox package + get_url: + url: + https://downloads.nestybox.com/sysbox/releases/v{{ sysbox_ver }}/sysbox-ce_{{ sysbox_ver }}-0.linux_{{ arch_mapping[ansible_architecture] | default(ansible_architecture) }}.deb + dest: ./sysbox/sysbox-ce.deb + + - name: Install sysbox package + apt: deb=./sysbox/sysbox-ce.deb + + - name: Git clone shiftfs repository + git: + repo: https://github.com/toby63/shiftfs-dkms.git + dest: ./shiftfs-{{ shiftfs_ver }} + single_branch: yes + version: '{{ shiftfs_ver }}' + + - name: Update kernel + shell: ./shiftfs-{{ shiftfs_ver }}/update1 + + - name: Build Makefile + make: + chdir: ./shiftfs-{{ shiftfs_ver }} + file: Makefile.dkms From dfc24bfd5b3b52492b0e5f0aa5089f327d1402d6 Mon Sep 17 00:00:00 2001 From: Stefano Cattaneo Date: Thu, 8 Feb 2024 10:30:21 +0100 Subject: [PATCH 02/25] Fix syntax error in HAproxy cfg --- dfaasagent/haproxycfg.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dfaasagent/haproxycfg.tmpl b/dfaasagent/haproxycfg.tmpl index 9ac6930..3e2cd9c 100644 --- a/dfaasagent/haproxycfg.tmpl +++ b/dfaasagent/haproxycfg.tmpl @@ -116,7 +116,7 @@ frontend fe_main - acl is_node_{{$nodeID}} check that the http request came from {nodeID} node. */ -}} {{if not $.Nodes}} - acl is_hdr_nodeID_known false + acl is_hdr_nodeID_known always_false {{end}} {{range $nodeID, $_ := $.Nodes}} acl is_hdr_nodeID_known req.hdr(DFaaS-Node-ID) -m str {{$nodeID}} {{/* Conditions with same name, called multiple times are joined with OR */}} From f6ba676b5d979b604285fef90ea1fa33794da541 Mon Sep 17 00:00:00 2001 From: Stefano Cattaneo Date: Thu, 8 Feb 2024 16:10:14 +0100 Subject: [PATCH 03/25] Delete old setup environment script --- setup-environment.sh | 45 -------------------------------------------- 1 file changed, 45 deletions(-) delete mode 100755 setup-environment.sh diff --git a/setup-environment.sh b/setup-environment.sh deleted file mode 100755 index ac60f4e..0000000 --- a/setup-environment.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -set -e - -SYSBOX_VERSION=$1 -SHIFTFS_BRANCH=$2 - -sudo apt-get update -sudo apt-get install -yy \ - jq \ - ca-certificates \ - curl \ - wget \ - gnupg \ - make \ - dkms \ - lsb-release - -curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg -echo \ - "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ - $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null -sudo apt-get update -sudo apt-get install -y docker-ce=5:20.10.16~3-0~ubuntu-focal docker-ce-cli=5:20.10.16~3-0~ubuntu-focal containerd.io=1.6.4-1 - -sudo usermod -aG docker "$USER" - -systemctl enable docker -systemctl start docker - -DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker} -mkdir -p $DOCKER_CONFIG/cli-plugins -curl -SL https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose -sudo chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose -docker compose version - -curl -SL https://downloads.nestybox.com/sysbox/releases/v"$SYSBOX_VERSION"/sysbox-ce_"$SYSBOX_VERSION"-0.linux_amd64.deb -o sysbox-ce.deb -sudo apt-get install -yy ./sysbox-ce.deb -docker info | grep -i runtime - -git clone -b "$SHIFTFS_BRANCH" https://github.com/toby63/shiftfs-dkms.git shiftfs-"$SHIFTFS_BRANCH" -cd shiftfs-"$SHIFTFS_BRANCH" -./update1 -sudo make -f Makefile.dkms -modinfo shiftfs \ No newline at end of file From b02144cb73c4c7226e71407f7d75f0f04ea1ec2d Mon Sep 17 00:00:00 2001 From: Stefano Cattaneo Date: Sat, 20 Apr 2024 12:03:31 +0200 Subject: [PATCH 04/25] Add DFaaS Forecaster and healthcheck endpoint for agent --- dfaasagent.env | 10 +++ dfaasagent/agent/agent.go | 8 ++ dfaasagent/agent/config/config.go | 10 +++ dfaasagent/agent/httpserver/httpserver.go | 85 ++++++++++++++++++ .../agent/infogath/forecaster/forecaster.go | 77 ++++++++++++++++ .../infogath/forecaster/forecasterutils.go | 56 ++++++++++++ dfaasagent/agent/logic/haupd.go | 8 ++ dfaasagent/agent/logic/logic.go | 7 ++ dfaasagent/agent/logic/recalc.go | 50 +++++++++++ dfaasagent/group_list.json | 1 + dfaasagent/haproxycfg.tmpl | 13 ++- docker/dfaas-node.dockerfile | 13 ++- docker/files/forecaster/forecaster.service | 11 +++ docker/forecaster/.env | 3 + docker/forecaster/main.py | 59 ++++++++++++ docker/forecaster/model/__init__.py | 0 docker/forecaster/model/config_constants.py | 7 ++ docker/forecaster/model/model.py | 37 ++++++++ docker/forecaster/model/model_proxy.py | 50 +++++++++++ .../cpu_usage_node/quantile005/model.joblib | Bin 0 -> 304787 bytes .../cpu_usage_node/quantile095/model.joblib | Bin 0 -> 304242 bytes .../cpu_usage_node/regression/model.joblib | Bin 0 -> 308164 bytes .../power_usage_node/quantile005/model.joblib | Bin 0 -> 303912 bytes .../power_usage_node/quantile095/model.joblib | Bin 0 -> 305075 bytes .../power_usage_node/regression/model.joblib | Bin 0 -> 307534 bytes .../ram_usage_node/quantile005/model.joblib | Bin 0 -> 303667 bytes .../ram_usage_node/quantile095/model.joblib | Bin 0 -> 303194 bytes .../ram_usage_node/regression/model.joblib | Bin 0 -> 309002 bytes .../scalers/scaler_x/features.joblib | Bin 0 -> 1223 bytes .../scalers/scaler_y/cpu_usage_node.joblib | Bin 0 -> 1039 bytes .../scalers/scaler_y/power_usage_node.joblib | Bin 0 -> 1039 bytes .../scalers/scaler_y/ram_usage_node.joblib | Bin 0 -> 1039 bytes 32 files changed, 501 insertions(+), 4 deletions(-) create mode 100644 dfaasagent/agent/httpserver/httpserver.go create mode 100644 dfaasagent/agent/infogath/forecaster/forecaster.go create mode 100644 dfaasagent/agent/infogath/forecaster/forecasterutils.go create mode 100644 dfaasagent/group_list.json create mode 100644 docker/files/forecaster/forecaster.service create mode 100644 docker/forecaster/.env create mode 100644 docker/forecaster/main.py create mode 100644 docker/forecaster/model/__init__.py create mode 100644 docker/forecaster/model/config_constants.py create mode 100644 docker/forecaster/model/model.py create mode 100644 docker/forecaster/model/model_proxy.py create mode 100644 docker/forecaster/models/cpu_usage_node/quantile005/model.joblib create mode 100644 docker/forecaster/models/cpu_usage_node/quantile095/model.joblib create mode 100644 docker/forecaster/models/cpu_usage_node/regression/model.joblib create mode 100644 docker/forecaster/models/power_usage_node/quantile005/model.joblib create mode 100644 docker/forecaster/models/power_usage_node/quantile095/model.joblib create mode 100644 docker/forecaster/models/power_usage_node/regression/model.joblib create mode 100644 docker/forecaster/models/ram_usage_node/quantile005/model.joblib create mode 100644 docker/forecaster/models/ram_usage_node/quantile095/model.joblib create mode 100644 docker/forecaster/models/ram_usage_node/regression/model.joblib create mode 100644 docker/forecaster/scalers/scaler_x/features.joblib create mode 100644 docker/forecaster/scalers/scaler_y/cpu_usage_node.joblib create mode 100644 docker/forecaster/scalers/scaler_y/power_usage_node.joblib create mode 100644 docker/forecaster/scalers/scaler_y/ram_usage_node.joblib diff --git a/dfaasagent.env b/dfaasagent.env index a5e1329..4d8a6bc 100644 --- a/dfaasagent.env +++ b/dfaasagent.env @@ -31,3 +31,13 @@ AGENT_OPENFAAS_PASS=admin AGENT_PROMETHEUS_HOST=127.0.0.1 AGENT_PROMETHEUS_PORT=9090 + +AGENT_HTTPSERVER_HOST=127.0.0.1 +AGENT_HTTPSERVER_PORT=8008 + +AGENT_FORECASTER_HOST=127.0.0.1 +AGENT_FORECASTER_PORT=8000 + +AGENT_GROUP_LIST_FILE_PATH="/agent/group_list.json" + +AGENT_NODE_TYPE=1 # heavy=0 mid=1 light=2 \ No newline at end of file diff --git a/dfaasagent/agent/agent.go b/dfaasagent/agent/agent.go index a288251..ba785eb 100644 --- a/dfaasagent/agent/agent.go +++ b/dfaasagent/agent/agent.go @@ -23,6 +23,7 @@ import ( "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/logging" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/logic" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/utils/maddrhelp" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/httpserver" ) //////////////////// PRIVATE VARIABLES //////////////////// @@ -169,6 +170,11 @@ func runAgent(config config.Configuration) error { return err } + ////////// HTTP SERVER INITIALIZATION ////////// + + httpserver.Initialize(config) + + ////////// GOROUTINES ////////// chanStop := make(chan os.Signal, 1) @@ -186,6 +192,8 @@ func runAgent(config config.Configuration) error { go func() { chanErr <- logic.RunRecalc() }() + go func() { chanErr <- httpserver.RunHttpServer() }() + select { case sig := <-chanStop: logger.Warn("Caught " + sig.String() + " signal. Stopping.") diff --git a/dfaasagent/agent/config/config.go b/dfaasagent/agent/config/config.go index 3d04185..d2bbc2b 100644 --- a/dfaasagent/agent/config/config.go +++ b/dfaasagent/agent/config/config.go @@ -44,6 +44,16 @@ type Configuration struct { PrometheusHost string `mapstructure:"AGENT_PROMETHEUS_HOST"` PrometheusPort uint `mapstructure:"AGENT_PROMETHEUS_PORT"` + + HttpServerHost string `mapstructure:"AGENT_HTTPSERVER_HOST"` + HttpServerPort uint `mapstructure:"AGENT_HTTPSERVER_PORT"` + + ForecasterHost string `mapstructure:"AGENT_FORECASTER_HOST"` + ForecasterPort uint `mapstructure:"AGENT_FORECASTER_PORT"` + + GroupListFilePath string `mapstructure:"AGENT_GROUP_LIST_FILE_PATH"` + + NodeType int `mapstructure:"AGENT_NODE_TYPE"` } func LoadConfig(path string) (config Configuration, err error) { diff --git a/dfaasagent/agent/httpserver/httpserver.go b/dfaasagent/agent/httpserver/httpserver.go new file mode 100644 index 0000000..1822bc3 --- /dev/null +++ b/dfaasagent/agent/httpserver/httpserver.go @@ -0,0 +1,85 @@ +package httpserver + +import ( + "io" + "net/http" + "strconv" + "fmt" + + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/config" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/forecaster" +) + +// This package handles a web server to expose endpoints on the agent (e.g. endpoint for DFaaS node healthcheck) + +//////////////////// MAIN PRIVATE VARS AND INIT FUNCTION //////////////////// + +var _config config.Configuration +var _forecasterClient forecaster.Client + +// Initialize initializes this package (sets some vars, etc...) +func Initialize(config config.Configuration) { + _config = config + + _forecasterClient = forecaster.Client{ + Hostname: _config.ForecasterHost, + Port: _config.ForecasterPort, + } +} + +//////////////////// PUBLIC FUNCTIONS //////////////////// + +// Function to run the http server +func RunHttpServer() error { + http.HandleFunc("/healthz", healthzHandler) + + ip := _config.HttpServerHost + port := strconv.FormatUint(uint64(_config.HttpServerPort), 10) + err := http.ListenAndServe(ip + ":" + port, nil) + + return err +} + +//////////////////// PRIVATE REQUEST HANDLERS FUNCTIONS //////////////////// + +// Function to handle requests to "/healthz" endpoint. +// This endpoint is useful to check if the DFaaS agent is healthy, and also if other main components (Forecaster and OpenFaaS cluster) are healthy. +func healthzHandler(w http.ResponseWriter, r *http.Request) { + io.WriteString(w, "DFaaS Node running.\n") + io.WriteString(w, "Components status:\n") + + // Check Forecaster status + _, err := _forecasterClient.HealthCheck() + if err != nil { + w.WriteHeader(http.StatusServiceUnavailable) + io.WriteString(w, "- DFaaS Forecaster not ready.\n") + } else { + io.WriteString(w, "- DFaaS Forecaster ready.\n") + } + + // Check OpenFaaS status + respStatusOpenFaaS, err := healthCheckOpenFaaS() + if err != nil || respStatusOpenFaaS != "200 OK" { + w.WriteHeader(http.StatusServiceUnavailable) + io.WriteString(w, "- OpenFaaS cluster not ready.\n") + } else { + io.WriteString(w, "- OpenFaaS cluster ready.\n") + } +} + +// Function used by the "healthzHandler" to send a request to the "/healthz" endpoint of OpenFaaS. +func healthCheckOpenFaaS() (string, error) { + strURL := fmt.Sprintf("http://%s:%d/healthz", _config.OpenFaaSHost, _config.OpenFaaSPort) + httpClient := &http.Client{} + req, err := http.NewRequest("GET", strURL, nil) + if err != nil { + return "", err + } + resp, err := httpClient.Do(req) + if err != nil { + return "", err + } + defer resp.Body.Close() + + return resp.Status, nil +} \ No newline at end of file diff --git a/dfaasagent/agent/infogath/forecaster/forecaster.go b/dfaasagent/agent/infogath/forecaster/forecaster.go new file mode 100644 index 0000000..f203e31 --- /dev/null +++ b/dfaasagent/agent/infogath/forecaster/forecaster.go @@ -0,0 +1,77 @@ +package forecaster + +import ( + "fmt" + "io/ioutil" + "net/http" + "strings" + "github.com/pkg/errors" +) + +// Package for sending requests to Forecaster to get predictions about the usage of the node. + +// Client for gathering information from the Forecaster +type Client struct { + Hostname string + Port uint +} + +// Send a GET request to the specified endpoint of the Forecaster, with a request body (if necessary) correspondent to the string parameter "payload", +// and return a json response containing the predictions. +func (client *Client) doRequest(payload string, endpoint string) (string, error) { + strURL := fmt.Sprintf("http://%s:%d/%s", client.Hostname, client.Port, endpoint) + + httpClient := &http.Client{} + + var req *http.Request + var err error + + if payload != "" { + body := strings.NewReader(payload) + req, err = http.NewRequest("GET", strURL, body) + } else { + req, err = http.NewRequest("GET", strURL, nil) + } + if err != nil { + return "", errors.Wrap(err, "Error while building an HTTP request for the Forecaster endpoint") + } + + resp, err := httpClient.Do(req) + if err != nil { + return "", errors.Wrap(err, "Error while performing an HTTP request to the Forecaster endpoint") + } + defer resp.Body.Close() + respBody, err := ioutil.ReadAll(resp.Body) + if err != nil { + return "", errors.Wrap(err, "Error while reading the content of an HTTP response from the Forecaster endpoint") + } + + return string(respBody), nil +} + +///////////////// PUBLIC INTERFACE ///////////////////// + +// Function to retrieve all the node usage predictions (RAM usage, power usage, CPU usage) +func (client *Client) GetNodeUsagePredictions(funcsGroupsLoadInfo string) (string, error) { + return client.doRequest(funcsGroupsLoadInfo, node_usage_endpoint) +} + +// Function to retrieve the CPU usage prediction of the node +func (client *Client) GetCPUUsageNodePredictions(funcsGroupsLoadInfo string) (string, error) { + return client.doRequest(funcsGroupsLoadInfo, cpu_usage_endpoint) +} + +// Function to retrieve the RAM usage prediction of the node +func (client *Client) GetRAMUsageNodePredictions(funcsGroupsLoadInfo string) (string, error) { + return client.doRequest(funcsGroupsLoadInfo, ram_usage_endpoint) +} + +// Function to retrieve the power usage prediction of the node +func (client *Client) GetPowerUsageNodePredictions(funcsGroupsLoadInfo string) (string, error) { + return client.doRequest(funcsGroupsLoadInfo, power_usage_endpoint) +} + +// Function to check if server is healthy +func (client *Client) HealthCheck() (string, error) { + return client.doRequest("", root_endpoint) +} \ No newline at end of file diff --git a/dfaasagent/agent/infogath/forecaster/forecasterutils.go b/dfaasagent/agent/infogath/forecaster/forecasterutils.go new file mode 100644 index 0000000..0eea685 --- /dev/null +++ b/dfaasagent/agent/infogath/forecaster/forecasterutils.go @@ -0,0 +1,56 @@ +package forecaster + +import ( + "strings" +) + +// Available endpoints on Forecaster +const root_endpoint = "" +const node_usage_endpoint = "node_usage" +const cpu_usage_endpoint = "cpu_usage_node" +const ram_usage_endpoint = "ram_usage_node" +const power_usage_endpoint = "power_usage_node" + +// Struct to read functions groups from group_list.json +type Groups struct { + HighUsage []string `json:"HIGH_USAGE"` + MediumUsage []string `json:"MEDIUM_USAGE"` + LowUsage []string `json:"LOW_USAGE"` +} + +// Struct for a request to Forecaster +type PredictionRequest struct { + Rate_group_HIGH_USAGE float64 `json:"rate_group_HIGH_USAGE"` + Rate_group_LOW_USAGE float64 `json:"rate_group_LOW_USAGE"` + Rate_group_MEDIUM_USAGE float64 `json:"rate_group_MEDIUM_USAGE"` + Node_type int `json:"node_type"` +} + +// Utility function used to check if a certain function is contained in a functions group +func contains(s []string, str string) bool { + for _, v := range s { + if v == str { + return true + } + } + + return false +} + +// Transform functions rates in functions groups rates +func SetRequestGroupsRates(funcRates map[string]float64, funcGroups Groups, req *PredictionRequest) { + req.Rate_group_HIGH_USAGE = 0 + req.Rate_group_LOW_USAGE = 0 + req.Rate_group_MEDIUM_USAGE = 0 + + for funcName, rate := range funcRates { + clearFuncName := strings.ReplaceAll(funcName, ".openfaas-fn", "") + if contains(funcGroups.HighUsage, clearFuncName) { + req.Rate_group_HIGH_USAGE += rate + } else if contains(funcGroups.MediumUsage, clearFuncName) { + req.Rate_group_MEDIUM_USAGE += rate + } else if contains(funcGroups.LowUsage, clearFuncName) { + req.Rate_group_LOW_USAGE += rate + } + } +} diff --git a/dfaasagent/agent/logic/haupd.go b/dfaasagent/agent/logic/haupd.go index 00b3d7c..6cb26b7 100644 --- a/dfaasagent/agent/logic/haupd.go +++ b/dfaasagent/agent/logic/haupd.go @@ -40,6 +40,9 @@ type HACfg struct { OpenFaaSHost string OpenFaaSPort uint + HttpServerHost string + HttpServerPort uint + // String representation of RecalPeriod (e.g. "5s") StrRecalc string // Number of seconds of RecalPeriod @@ -58,6 +61,8 @@ func createHACfgObject( myNodeID string, openFaaSHost string, openFaaSPort uint, + httpServerHost string, + httpServerPort uint, recalcPeriod time.Duration, entries map[string]*nodestbl.Entry, funcLimits map[string]uint, @@ -67,6 +72,9 @@ func createHACfgObject( OpenFaaSHost: openFaaSHost, OpenFaaSPort: openFaaSPort, + HttpServerHost: httpServerHost, + HttpServerPort: httpServerPort, + StrRecalc: recalcPeriod.String(), SecsRecalc: uint(recalcPeriod / time.Second), diff --git a/dfaasagent/agent/logic/logic.go b/dfaasagent/agent/logic/logic.go index b8b0ab1..f790405 100644 --- a/dfaasagent/agent/logic/logic.go +++ b/dfaasagent/agent/logic/logic.go @@ -8,6 +8,7 @@ import ( "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/offuncs" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/ofpromq" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/nodestbl" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/forecaster" ) // This package handles the main operational logic of the DFaaSAgent application @@ -23,6 +24,7 @@ var _hacfgupdater hacfgupd.Updater var _hasockClient haproxy.HAProxyClient var _ofpromqClient ofpromq.Client var _offuncsClient offuncs.Client +var _forecasterClient forecaster.Client // Initialize initializes this package (sets some vars, etc...) func Initialize(p2pHost host.Host, config config.Configuration) error { @@ -60,5 +62,10 @@ func Initialize(p2pHost host.Host, config config.Configuration) error { Password: _config.OpenFaaSPass, } + _forecasterClient = forecaster.Client{ + Hostname: _config.ForecasterHost, + Port: _config.ForecasterPort, + } + return nil } diff --git a/dfaasagent/agent/logic/recalc.go b/dfaasagent/agent/logic/recalc.go index c05633a..d2f1fa0 100644 --- a/dfaasagent/agent/logic/recalc.go +++ b/dfaasagent/agent/logic/recalc.go @@ -3,6 +3,9 @@ package logic import ( "fmt" "time" + "encoding/json" + "os" + "io/ioutil" "github.com/bcicen/go-haproxy" "github.com/libp2p/go-libp2p-core/peer" @@ -13,6 +16,7 @@ import ( "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/logging" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/nodestbl" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/utils/p2phostutils" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/forecaster" ) //////////////////// PRIVATE VARS FOR RECALC //////////////////// @@ -221,6 +225,50 @@ func recalcStep1() error { debugPromRAMusagePerFunction(_config.RecalcPeriod, _recalc.perFuncRamUsage) } + ///////// GET NODE USAGE PREDICTIONS FROM FORECASTER /////////////// + var functionRates = make(map[string]float64) + for funcName, item := range _recalc.invoc { + functionRates[funcName] = 0 + for _, rate := range item { + functionRates[funcName] += rate + } + } + + // Read functions groups from group_list.json + _groupListFilePath := _config.GroupListFilePath + jsonGroupsFile, err := os.Open(_groupListFilePath) + if err != nil { + return errors.Wrap(err, "Error while reading group list json file") + } + jsonGroups, err := ioutil.ReadAll(jsonGroupsFile) + if err != nil { + return errors.Wrap(err, "Error while converting group list json file into byte array") + } + defer jsonGroupsFile.Close() + + // Convert functions rates in groups rates and prepare json request + var functionGroups forecaster.Groups + json.Unmarshal(jsonGroups, &functionGroups) + + var request forecaster.PredictionRequest + request.Node_type = _config.NodeType + + forecaster.SetRequestGroupsRates(functionRates, functionGroups, &request) + jsonBody, err := json.Marshal(request) + if err != nil { + return errors.Wrap(err, "Error while constructing json request to Forecaster") + } + jsonBodyStr := string(jsonBody) + logger.Debugf("Json request to Forecaster: %s", jsonBody) + + // send request to Forecaster + var jsonResp string + jsonResp, err = _forecasterClient.GetNodeUsagePredictions(jsonBodyStr) + if err != nil { + return errors.Wrap(err, "Error while executing request to Forecaster") + } + logger.Debugf("Forecaster Json response: %s", jsonResp) + //////////////////// OVERLOAD / UNDERLOAD MODE DECISION //////////////////// _recalc.overloads = map[string]bool{} @@ -436,6 +484,8 @@ func recalcStep2() error { strMyself, _config.OpenFaaSHost, _config.OpenFaaSPort, + _config.HttpServerHost, + _config.HttpServerPort, _config.RecalcPeriod, entries, _recalc.funcs, diff --git a/dfaasagent/group_list.json b/dfaasagent/group_list.json new file mode 100644 index 0000000..ea9515a --- /dev/null +++ b/dfaasagent/group_list.json @@ -0,0 +1 @@ +{"HIGH_USAGE": ["eat-memory", "nmap"], "LOW_USAGE": ["env", "figlet", "shasum"], "MEDIUM_USAGE": ["curl", "ocr"]} \ No newline at end of file diff --git a/dfaasagent/haproxycfg.tmpl b/dfaasagent/haproxycfg.tmpl index 3e2cd9c..a5b211e 100644 --- a/dfaasagent/haproxycfg.tmpl +++ b/dfaasagent/haproxycfg.tmpl @@ -60,13 +60,14 @@ frontend fe_main {{/* Path ACLs */ -}} acl is_path_root path / + acl is_path_healthz path /healthz acl is_path_haproxy path_beg /haproxy acl is_path_function path_beg /function/ {{/* Deny requests which are not directed to a function or / (root) or the stats page (note: the root path is needed for health checks by - other nodes) */ -}} - http-request deny unless is_path_root or is_path_haproxy or is_path_function + other nodes) or to /healthz */ -}} + http-request deny unless is_path_root or is_path_healthz or is_path_haproxy or is_path_function {{/* Capture some request headers in log */ -}} http-request capture req.hdr(Host) len 50 @@ -153,6 +154,7 @@ frontend fe_main {{/* ########## BACKEND SELECTION ########## */ -}} use_backend be_ok if is_path_root + use_backend be_healthz if is_path_healthz {{range $funcName, $func := .Functions -}} {{/* [NEW] Select backend for request that exeeds limitsIn */ -}} @@ -173,6 +175,13 @@ frontend fe_main backend be_ok http-request return status 200 content-type "text/plain" string "This is a DFaaS node. Call a function with /function/\n" +{{/* #################### BACKEND FOR HEALTHCHECK #################### */ -}} + +backend be_healthz + {{/* Perform HTTP health checks */ -}} + option httpchk GET /healthz + server healthz {{.HttpServerHost}}:{{.HttpServerPort}} check + {{/* #################### BACKEND FOR SELF OPENFAAS INSTANCE #################### */ -}} backend be_myself diff --git a/docker/dfaas-node.dockerfile b/docker/dfaas-node.dockerfile index a501d33..46f8842 100644 --- a/docker/dfaas-node.dockerfile +++ b/docker/dfaas-node.dockerfile @@ -2,7 +2,7 @@ FROM nestybox/ubuntu-jammy-systemd:latest@sha256:93b72540b784f16276396780418851c ### Proxy (HAProxy) -RUN apt-get update && apt-get install -y haproxy \ +RUN apt-get update && apt-get install -y haproxy python3.11 python3-pip \ && apt-get clean && rm -rf /var/lib/apt/lists/* RUN systemctl enable haproxy.service @@ -58,13 +58,22 @@ RUN chmod +x deploy_functions.sh COPY files/entrypoint.sh ./entrypoint.sh RUN chmod +x entrypoint.sh +### DFaaS Forecaster +WORKDIR /forecaster +COPY forecaster/ . +RUN pip install "fastapi[all]" scikit-learn lightgbm joblib pandas numpy +COPY files/forecaster/forecaster.service /etc/systemd/system/forecaster.service +RUN systemctl enable forecaster.service +### End DFaaS Forecaster + ### Agent WORKDIR /agent COPY files/dfaasagent/dfaasagent.service /etc/systemd/system/dfaasagent.service RUN systemctl enable dfaasagent.service COPY --from=dfaas-agent-builder:latest /go/src/dfaasagent/haproxycfg.tmpl ./haproxycfg.tmpl +COPY --from=dfaas-agent-builder:latest /go/src/dfaasagent/group_list.json . COPY --from=dfaas-agent-builder:latest /go/src/dfaasagent/dfaasagent ./dfaasagent ### End Agent WORKDIR / -ENTRYPOINT [ "./entrypoint.sh" ] \ No newline at end of file +ENTRYPOINT [ "./entrypoint.sh" ] diff --git a/docker/files/forecaster/forecaster.service b/docker/files/forecaster/forecaster.service new file mode 100644 index 0000000..f67e15c --- /dev/null +++ b/docker/files/forecaster/forecaster.service @@ -0,0 +1,11 @@ +[Unit] +Description=DFaaS Forecaster +After=multi-user.target + +[Service] +Type=simple +Restart=always +ExecStart=/usr/bin/python3 /forecaster/main.py + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/docker/forecaster/.env b/docker/forecaster/.env new file mode 100644 index 0000000..9b5679d --- /dev/null +++ b/docker/forecaster/.env @@ -0,0 +1,3 @@ +# variable which determines the type of loaded models at startup. +# Possible values are "regression", "quantile005" or "quantile095". +MODELS_TYPE=regression \ No newline at end of file diff --git a/docker/forecaster/main.py b/docker/forecaster/main.py new file mode 100644 index 0000000..586b776 --- /dev/null +++ b/docker/forecaster/main.py @@ -0,0 +1,59 @@ +import uvicorn +from fastapi import FastAPI, Request +from model.model_proxy import ModelProxy +from model import config_constants +from contextlib import asynccontextmanager +from dotenv import load_dotenv +import os + + +@asynccontextmanager +async def app_lifespan(app: FastAPI): + load_models() + yield + +load_dotenv() +app = FastAPI(lifespan=app_lifespan) +model_proxy = ModelProxy(os.getenv('MODELS_TYPE')) + + +@app.get("/") +async def root(): + return "DFaaS Forecaster ready." + + +@app.get("/cpu_usage_node") +async def cpu_usage_node_prediction(request: Request): + input_data_json = await request.json() + return model_proxy.get_predictions(input_data_json, + config_constants.CPU_USAGE_METRIC, True) + + +@app.get("/ram_usage_node") +async def ram_usage_node_prediction(request: Request): + input_data_json = await request.json() + return model_proxy.get_predictions(input_data_json, + config_constants.RAM_USAGE_METRIC, True) + + +@app.get("/power_usage_node") +async def power_usage_node_prediction(request: Request): + input_data_json = await request.json() + return model_proxy.get_predictions(input_data_json, + config_constants.POWER_USAGE_METRIC, True) + + +@app.get("/node_usage") +async def node_usage_prediction(request: Request): + input_data_json = await request.json() + return model_proxy.get_node_predictions(input_data_json) + + +def load_models(): + for metric in config_constants.METRICS: + model_proxy.create_model(metric) + + +if __name__ == "__main__": + uvicorn.run(app) + diff --git a/docker/forecaster/model/__init__.py b/docker/forecaster/model/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/docker/forecaster/model/config_constants.py b/docker/forecaster/model/config_constants.py new file mode 100644 index 0000000..d71fcc8 --- /dev/null +++ b/docker/forecaster/model/config_constants.py @@ -0,0 +1,7 @@ +MODELS_BASE_PATH = "forecaster/models/" +SCALERS_BASE_PATH = "forecaster/scalers/" +GROUPS_COLUMNS_NAMES = ["rate_group_HIGH_USAGE", "rate_group_LOW_USAGE", "rate_group_HIGH_USAGE"] +CPU_USAGE_METRIC = "cpu_usage_node" +RAM_USAGE_METRIC = "ram_usage_node" +POWER_USAGE_METRIC = "power_usage_node" +METRICS = [CPU_USAGE_METRIC, RAM_USAGE_METRIC, POWER_USAGE_METRIC] diff --git a/docker/forecaster/model/model.py b/docker/forecaster/model/model.py new file mode 100644 index 0000000..0922158 --- /dev/null +++ b/docker/forecaster/model/model.py @@ -0,0 +1,37 @@ +import os +import joblib +import pandas as pd +import numpy as np +from model import config_constants + + +class Model: + def __init__(self, metric, model_type): + self.metric = metric + self.model_type = model_type + + # Load model + self.model = joblib.load(os.path.join(config_constants.MODELS_BASE_PATH, + metric, model_type, "model.joblib")) + + # Load features and target scalers + self.features_scaler = joblib.load(os.path.join(config_constants.SCALERS_BASE_PATH, + "scaler_x", "features.joblib")) + self.target_scaler = joblib.load(os.path.join(config_constants.SCALERS_BASE_PATH, + "scaler_y", metric + ".joblib")) + + def predict(self, input_data): + # Scale input dataset + input_data_scaled = self.features_scaler.transform(input_data) + + # Transform input dataset to dataframe + input_data_scaled = pd.DataFrame(input_data_scaled, + columns=[*config_constants.GROUPS_COLUMNS_NAMES, "node_type"]) + scaled_predictions = self.model.predict(input_data_scaled) + original_predictions = self.target_scaler.inverse_transform(scaled_predictions.reshape(-1, 1)) + return np.round(original_predictions, 2) + + + + + diff --git a/docker/forecaster/model/model_proxy.py b/docker/forecaster/model/model_proxy.py new file mode 100644 index 0000000..0d558b3 --- /dev/null +++ b/docker/forecaster/model/model_proxy.py @@ -0,0 +1,50 @@ +from model.model import Model +from model import config_constants +import pandas as pd + + +class ModelProxy: + _models = [] + + def __init__(self, model_type): + self._model_type = model_type + + def set_model_type(self, model_type): + self._model_type = model_type + + def create_model(self, metric): + model = Model(metric, self._model_type) + self._models.append(model) + + def get_predictions(self, input_data, metric, to_json=False): + input_data_df = self._json_to_df_input_data(input_data) + model = self._get_model(metric) + predictions = pd.DataFrame(index=range(0, 1)) + if to_json is True: + predictions[metric] = model.predict(input_data_df) + predictions_json = self._df_to_json_predictions(predictions) + return predictions_json + else: + predictions = model.predict(input_data_df) + return predictions + + def get_node_predictions(self, input_data): + predictions = pd.DataFrame(index=range(0, 1)) + for metric in config_constants.METRICS: + predictions[metric] = self.get_predictions(input_data, metric) + predictions_json = self._df_to_json_predictions(predictions) + return predictions_json + + def _get_model(self, metric): + for model in self._models: + if model.metric == metric and model.model_type == self._model_type: + return model + raise Exception("Requested model not found.") + + def _json_to_df_input_data(self, input_data): + input_data_df = pd.json_normalize(input_data) + return input_data_df + + def _df_to_json_predictions(self, predictions): + predictions_json = predictions.to_dict(orient="records") + return predictions_json diff --git a/docker/forecaster/models/cpu_usage_node/quantile005/model.joblib b/docker/forecaster/models/cpu_usage_node/quantile005/model.joblib new file mode 100644 index 0000000000000000000000000000000000000000..fba8d513ae6d5296147b5c06b3033e3e6ed7d641 GIT binary patch literal 304787 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 literal 0 HcmV?d00001 diff --git a/docker/forecaster/models/cpu_usage_node/quantile095/model.joblib b/docker/forecaster/models/cpu_usage_node/quantile095/model.joblib new file mode 100644 index 0000000000000000000000000000000000000000..6144623b6b3fab08648b159b704e0b91e6450d58 GIT binary patch literal 304242 zcmd4aPp@QGy65$aXlSn0-E>RL$sr7!I{*J5S)gXnQa6ndVt|B@<*M?na<|LAZTnuj zk&s~S8N~nw%y|h6coVz@-T=&z;PZXfj&mY1_HkyqZdUr_$rBMfcC5Yj`uBXF-+I=H z|Nd|NPyg4y_Gk0+p zm*0Q??RS6pAOG<0{||ro@BZ-b{rGo(_3gLc|M1l}zy17&fAyDN{^7^J_1jYsi2>mR=QYlr@=fALpeeDlLsUwit=H-Gi}&!za+Uw;3GfAa7C_~*a>;$MFL zn=k+Jhu{6-AOC-Te*C+0wNm@;iyyxH!$0~D|M&m7pa12@zw^!KU%Jfizxd(X?|k$( zKmLR7|LRxYfARaj{QAq!|Ki*4KL6EM-~8bp|3`oKU;nco|K9Jv`sVZR|MKgve)#;i zUpV@Y);;~%pZ)mvd*|1``|9i8eE#2j*$qnnKl{}`{XhSo|Ly<%@gF?Dw^DVHf9J

DH~*jh_-}sm`9J&iSKoW~Z-4dszx?*Q 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

Z!J(4Y%%1!eI04u5SsW6G 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≫$g?KifPByXjy;nd4CI>i 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

A$>uRwf|V~^y+ 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 G{J#OXXGkUh literal 0 HcmV?d00001 diff --git a/docker/forecaster/models/power_usage_node/quantile005/model.joblib b/docker/forecaster/models/power_usage_node/quantile005/model.joblib new file mode 100644 index 0000000000000000000000000000000000000000..cc752810b5bab007110e218126e675263e81fd2e GIT binary patch literal 303912 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 literal 0 HcmV?d00001 diff --git a/docker/forecaster/models/power_usage_node/quantile095/model.joblib b/docker/forecaster/models/power_usage_node/quantile095/model.joblib new file mode 100644 index 0000000000000000000000000000000000000000..d3d3fdb193592e6da58d59e0b6b1784e154e35b2 GIT binary patch literal 305075 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

-x6$SN=FAC%5M%3%VTZGKfUrPu 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 V(TAqo{Q{t}BT)DMaC`RV{{kUp+ZX@< literal 0 HcmV?d00001 diff --git a/docker/forecaster/models/ram_usage_node/quantile095/model.joblib b/docker/forecaster/models/ram_usage_node/quantile095/model.joblib new file mode 100644 index 0000000000000000000000000000000000000000..bd4d92dcd9b3264fa8d5f338c27a89bb03e8cfd6 GIT binary patch literal 303194 zcmd4aP0wV>x}WufFqqTwF}B2<8p5DU&-)8f3uFeCY>W_MfP_%1_uh5(Zo7B)ad)4C zjf4dAp0OF=IRicdUxTl}7l1hu{H};t`D9kE+*Q>+b-Jp%Dl=EE6)RS}-Piq(J0kzb zzxBWTU;oCRj6Xm9y>Gt$?eBj4?XQ0S`iFn^&6}^j|Mm|*{n>x^5C6eG`7hu6_WL(K z{P5lPfB2vO@E`t9fA}B%@E`p2XTSRHyB~i1`rF@r`QyL*i#LDx>2Lk^SHJo34?q3s zcfb0lZ+`vb*MH^Ezw^)k@~dxu{Q4VjKl}DCfB&Tv|LV;TfB47${!f4U`>+1Rm%n-Q z7eD^)5C7=@^XI2O8+R+U@4x!-%^&{ZfBb*^ul@N~KmDC=zkK61zyIpT@4k2GZ+`mw zKm6sde)#J5fAP(mFaP|z@4x)j*Wdo(AN?nP_HX{lPk;CKUw`}M4}bB^*FS#w+piq` zhx3{KUd|1W;^PyWyU=YRiyfBO3`-_2Cri@k8=kFd4e);F$zxn5X_{UQI^>^Q_%>3$K{`mcya=xAZr{BN%?U!GD^B2GS>L@Fp zb?}?7e*dfA93TBV-+%S(Z@&Bemp}a2!~f?${oCJu`A@(5)eqkNyI=qQFTVT!$FIKq z^_x}B|JHa!h5O|{r~=-6|A(Lc?xEIx_0`}T{!x*L`A>uAVtM<>f6TbcG_iujq;y?ZF zo4@@1w_jepT5qnmH#ggx+rt%KfBWa({qV(qbM+rx|F^Hs{{3v^?}xAddx_pW-Q2&r zdA_;spYiV2yX&hyKKbXiV|RUf-?7KOeeBr%gMV)O=dpht`r_rE$F6wlyytPnvv-d- zeJs(ZhgY{(*B$fi?Uno9UR{;^b4iUWo*(<7Z*LzRlb(+^{&~3a&sE2s@BH&L-aR>X zeb*`Dif;bg%^ynTy8Awrjr-2KeeS$*qmlBsqC~I9Ez6&4ee8>?GWj$fW}MeQ*CV^- z<)&MDj*&_4%8mU5SozejK$m9;T-pkMPhb4|kt^_FrkA+ThEW^2P0JxWE4D zN5|(Nuo~YNisqFk@wfln@70z6de`yZ^(}>pkFV|@Uf(|`tGm0`PtI}P>%03N?&0;Ff_-&+`&xtX+38nW z)AiNU>n9cQeD(VAN&451Pp_|PruV+D?OgfVb=S|YpKm+=)_IEQ_VuU(A8&51?%n?N z?bE&6zka;CySnpwcYo*j{p+jiC+*?RRaaM@_)adni_3kydwuhGQ!YKzlTIY@2i5x7 zkH0hC|L(hQe)GkZGfw`v`Sokfy+7B|yzv>8Q$N?ii&#H1m*tmex5x4 z)vBB~zrMM78W%it?Bpy-ckJf+S>4~<-9KF4UESVG@4~Gw9CoLt<3G<=D(Yh9A0Llz zXVAEK>gglRyxt!__>E?K`SPpzI9E^G9iKew<7uL!?Dop(^tA4MF`GBH4^MYD*H`y9 z54YF%j|Q9?(`i9JR?JV&caKNsYGs!S=|k>*Qk=Kiyh^^ke|hS=dtLqN^<6DxYYO*w zcXyxt=FP9a&NdB`_l3UlbN~D7n>T;{<23zW+`jt!=2iXemFEBa>ht?opFh3ws!i!- zzO8jNCcXOH|BCf<z2=)*pDtQ6eb8AiHNcGvM*X642IPV@ce()qls89zTa*ukYg|MIWC z`sOcIgT zPj`3ows%)g_xBGESGRZ9caL)2wU4(?w-48kSI-ak8k$27Ppstq)2%E&Jm}t?<|#A- zX&Z^y%W+7Ct{xulA8wx>uly}@51R3V2Foly-rvp}T;E+AgM8M;AFf6|9-nSJ#`7K9 z<*x${&@$upD+Wl^CbzQ|Uj_KwG*Bcpnl$lXDE8Sl2Lbhst}!~MHn^JYE%2$SKE)kQL5ZvH-c;C*+^YZa zl?M1c(qk^cRO#IzuW`8+JifYmRMUNRuW@7&9`D)Nk&gB>^L6Vc>!wB^r(E3_SjHRU z$;i5=R2{yG07rTn+)U9mhKet`|sJzO|z(Eyu9nTcuEjuVwAk z9aDIJck`0P*_a-6Jr?4V%jFMWe)ILW-0|48qz__{$&|(_cSnjMopZpKkyn&}|4*r?2nt`~Fd* zG-_O5^?j!eH{;2@(XuR#ksCD|*&ckp&H8w~W+CriNmSo_>h;#xjDuM`R_#_|c{)Kh z1M{;v_<*d@P95oAi-J#>+Gs7k_a@^HLg2e24!eDN(0TqkK=7Q5FJR~%Fdq93%PZK$ z=YK6!zW9`E+=&OGneUVFg~JzIodx6@b`SG^isjeWACZC$hf#3Qs{ zZ?T+5>Re{QcyJF@A8v2%z;G7OxB{`cr2zPv?~Ni?5^$K!H{Q4i3XCKk9-mlk1{;w- zJOHk7Zsh&!w1;c>yAtpi0Po=%c{6=5JmYGp8^ny=NnW?eY(CqKlhH3w_v9?sJo@}} z#qX2&Gf9GV?Ro<$@>d9`^U*)!O!V(@p5dtR5p=Gyc~At-x*p7FsF|6SX=mJ}5M15j zmHA+(`bmLEi4@|YM{WsJPpr3c1;*D1drKJqU?6}1VSOK4c$*LL$e`an!y!$v5>t^L z`P#sl0C5BB=h6F|4xPm@)IDm=V?HoRXyW#s11WRs;W$M1d?F-fEF1SSxGNm>5YBUu zRyiuFd)|R;Kaj;x&`3b7-aRNkwZJjqiIiJZmR}{Gw^vVBe5+YFPY+Nluj~0y@sNPfO+Fed z4gMpbR~{;9N-rZd>9RMD>C3?870-(~j;+;4JUyX)ar7^pmjf*>uXYqQpQc_sS_A!R z)(S{ermL@MbEA3R6J-a?YV&o~aZs)EXvUdFg{Y#G^yY00$Ys=6s#R5_wXJ(SOm|7| ze&7f7{jE+gTvs(v-x$?vlp*@e2CsRf%8sNEHxF*Sf93|RUMVj`mf2vrv$wOSaGo9p z@N4-GhM94*fPUV#k*q@mrIi!S?}51FnB??=aT^|@f#QW{-+|oMLG(awT48O%qg_X3 z$H=XWHAe#k@9p{3gVsN3ySsZ7Vv3t{+*kx2G~Nr+G{Y#{n81^Bp4u6(eRGt#cf-e#FOm^wYy@=7<|} z^ZJh63#*^V6H5FwOQPiOUvq;D3eRXgJbutCUOis}U_-|fYBts~!%yBY%dZKneSA%u zPNu@oUY_Wu!!OeT^g|LjcM_wgJ)`JH6wPFMy`!=kXl~?z3pm(Za%lUZfz8cXhhF)P z#;pW%BR9X{=JDYZVeC`R8-DxE8Fyc%yknI)aq1E$k~=>NV{>9Ql{}ZDQRaOG%0Hio0fo}Z% zkUbPya7J^6S`9ISZ-LMa3;dh{>o4dWhf}S%??x;jM2VchcmI$moY;Bw1gs|Tg~Gs+ z&Al;fFxZQ-dHc+!V@4(#uCukzYhxUJ(i|3Rj_}4Y1{nKLimvXjOuDU{ksDzgv;7R7 z%>Yj$?LN?u0aL%ZpnW4Jb*{AFrF;EEyd1!056GwDBU4uUmGas#0q?| zJ6Gn8ysq40{pA^5aT{nVl>nN5j6qAm>=MY=6sYrQ{xexMX=)4mb8cL+j?()T)4jXp zmf*6H1vIV<18lY1Wc)a)zL+n5MP3L+eLnEjgU8{1pj{1UlAlu682K+AK?C9*TokL% zA$zgO0Bvo0Kz82HU~Gc@fwARo2-V4o8)HL0eU#FLxu3KZO?0sK;Ounlo5#Bo#y--` ze~GN@BQ~dFb{~(%N{`~F19Q%1rvd^SV&6@}qNQQ+VIuR45y1x5n=|x`2Ubd^S_+G( zy((9Icp^6OZH@(;V)IOWPvzHZd&imMl+K*!`evTS_1r2=ekP@|07t3vm7g0Pd;db% z8py42a2(8QpETZd(!9(AI=SyP&xe&2+MtviBUqXl8dn=kOoGe@O?ln2$X^7!`x>xs2cWX`8H^M`t`UL5@N?o4&3f2v58Sd9?1;LEQ z-OM89H<&*L&~zk09gGWqOo#|mQ;7S7hK;vzTslB=kU4*@_WpEG09UL{%{^vEN9|$b0H_` zvPc}*f+l*G!t}mOc9zDr;?E?=m-IS`lQYZ-PxljR$ zG~r>~O{68wiXi6vA*`)T@PO%Q{pVcVIS&glVORxtASVOY2uTQI{jWWekg4`hQ>6pn z%sne8Tt)PRL2o`CtIpmLmjx4uo|p+6P4R|a4q9Nc%=H{S6qF_Ql{YSNDd6g7Xn;BH zpG*u)1fb#?PEGuYpaCc|s>Ikr555KbiTl1@+@E@wFX3W^9(|6xaVF&dUMPg4IA=Yw zLN~jRGeKbV+>@H2G2u+V6v~I{XF(LyA$|i`@f*?tN4kL9g`AmNvSw=bIEuc9i-rDIaUW)#a@a&*TmnM*P8$AYQ zr^u4;(~i;-wKV6L^)=0)_psqgHQj_*~B=cpJ{RO)t=yb_*XAz4;X)F^nZNj;9Qc}tU*^=Y2-xJIa#3h!&) z$fFWl-G)QAk}nc#Hd!6Obt5TlpjVaIST!n`n>WHla<$j2j#;YZ6>u6f%Pz@To-<6^ zq;@)!5mPoBsvco6O+5P?-TL?#}4R4zV z6Nf4Q>=CtQ&F&rnjus(+`o-*wKq<#yzbq?_&#w4K}Vwta1l!1qQ zE?g*llo{bCl$8*hsK7ekyr$ha4GTG-kvMK9gKGY$1C=#1z+Nff1GTk$nZA3SJqxXy z#&y>a+gyjdVjZu>b)%Tjn2hhwCheoB-EgX2_1+OAXK~1T0KI?g1EQtR;qwA4UO2ob z2w!08Q=~QA8#uFCdp4Nh=)3m`cJsL!xtkaRK4^Wc?>r|vQJnLfV%+rpXqN{bGF!8gYq%DG76!KJm|}egpvf z$4y5H7%+weYt&cBI8LSHrftcZ*?XZ5D_zhXKLX)YaS%Q8AU*`9Lns0mz@Il`(abWCP-cP0%tAQAA0QG_vB?$dAt=Qdfb^0VAy#Kn4p24COqD0>#sCXi^8~p390;M! zddH+z;_(Pc#x>&Gw{u6mL02&u9@_b%bZCo(jw{OM*cYV_K^#bOLs%B|G|G%tUw9BF zBWYQSs>GTx@Nmvjy_}2LO2h%dX@*P9HlC(*nlua-;+K57ANyLP^KgJlz zO291yAP~%vRjs>o@0CGD?Ln=B{l^n!d(0?I$fjB`UHw(qLAF>Q9Ybfq*R@$e=DLsP z)`NHeiJPjf)kq8`W2?>T&R(-!}EH9$-EpG z@ffh_wwhN3%!k9;tI=ztI+E>He8Lef$CFM;gimwt=R44lC=0lkv z$VnMpiM!&@x{N0?+EC7)+qz6A(LPoNbc@**?h5kmYXGxmGt`lBX51-HY_vKx>5`6d z%bHm5E^m8!ZMyDsAXV}T2jRPMwL5LN!Q`{vn@3T--iR&>XT2+e>i+qKVc$jA56Fq$ zzu-DyKfs<*Bc_J{H&=InvUVtFOQSQx1+ofsQatecS*wEMDBFht=#Vj)Jev-BxON~y157t<3Gx#XXky3j2`hlV`X61F>J+;XtJtFfJo7T z=-GHaB0`#Xjj9=w=(%-A^lBmm8V~?t&`hAFB&cbDEha)^2Q3t)-4(oIm?C7GpBWJ% zSrZt|0@dVR8!Q=qm^}jS$mYfT{k7utDP<0k^qjWdcbVe9wvN4rvL6sRvWKGQB)k7K zI}-W@BlLuEgK;P&m4C-!H(=|J!Jayyj#om5Nl77E1~qt z1O#c_WJ~oLQ5Dp*z>ZjrsClMFPu^&$3fu&2yo#1eb-icj(#rYkoCgI-ew%slq*O!PF4h#rgZ7y<;e;j)l?~M$vd@R( zOmG#HZb3MSX5%T~a-NPu0(?}=%!E3Vd;Ss=0F{?+uKd)D@>NDkcrs2C5F>~O;}_AYZT&@+%e zgp42_<~yF|y*U{(xvHK`a|(qLzI+>pJ5wPZWA-PIn|;u(QbxghV01Za27-ijRg!hS z>ZrGty>hq4L9s<^szqHbQCm22@f@SR4FH>;3V`RlkWORC-?(0PFl*JB29&wx)wGhX zyDrjTw#5@gmc<*+Rd>2`??jHZjG|*k2m{$@P8!4J7Ebqg!)O_weXnji`(~?eCzqQR z({tBjw>+)%TdF+nWRC=1=kzK?twEmmA#M(ClO7v!2kp&=+`iJKETU|UfuYHqh>w(a zZAE+A;SL~svK9AYZ*5?m6@Q-ujyxBCt&nLIIGb-QGDJI}UTgbxV#^gr3BTr- z=NTpBW@+0d1i#x3Bvo4+wvijnlcyoFc(TyhCr(#x9rO#Ub`#8irb zBgk*`ytQhQxDdZ<-eaL7QGF0N;l>OH4$@>^kI9i!% zYFf%d&k=gT54%8?7Y=^_FJDaIyyPyNdg1VUdk19uVLK=&WV`SoW#4D*Vn=$t(RCn6>#vo23Y)sx} zJn*&z8wdjYczbx`QTU3~-e`LhwR7%$`5uuYjTVt27Ldq13Ug)|Lwx3{ zK(j2KQxPRWcp7P%DmhqN0$mj3Y2`r~3Ak7VA<$NCFWZR^#YC`$nKP?~gZd1|q7PtXRQG8p#EI!A+;)B4hgr&Z~$dXa+PSX+X zH9~%$xnMqsEu?J)q>yJ($h>&~%>)>C!;uRrJv|enY80Bs@+ZU{@WX^1Foi-$R@Pcs zS?G&W7N^o0`|-#zo0S6KgY^7-dn#KD$;K5hB4ers_VR*!>jD=R>ITXk^`<4pZoK>!sxT#S^M)A2nlU|*-zD_m~ zGTMOFT~yYnOwgcOx)-l>JCW11b<=8iCMqH<+0dzVXn5a62BLXp^J#S9zJ&sto0``d zVL6QNWqaI}%UW26gH4l8&gRoKci)M^u$r;()*Pxq?uBaiB)qJ!Ea4H#iT(Pl8CE1ZvE}j!l*IlU0S0 zD)7+TZ92l0R>s#(Q){9>c!NwW)-mdGFSc{s|(a- zyXmRrwiPMJ%pQM+ov2#8qWT2s#ynGPVoEeTpS8|WycsNFzTpms(v9b2QN*^I4G z7;<}_xLazt38U^#q7oerR<+#|>iz(#+7moa;FSWE9o^dz?wlR>$(f*a%;I#ci!k~A zTI&a_yWG*Lchu*LdD;Wdy+_|W?*oF;&o952qaEe^Y=1m;cD}grLW&=DcN|se*1OJp-g|nZx+vikh|}CeLM@; zmPF9)^chMrqEBM`aKZKcjqOWID&-}P4dDR= zwu{9qM3)#W{EZYk4_oWV#()^|OiTZU`2v0f&9)$7MB8$sqlg=84%v&DHek&JkR4_x zj8h>UC3TG?aIHa+eycu>BM10rml2t?k)Dl5W*TO^@g!1=RYjXjYuzL=bIn^OZ5QJ` z5~d7Cgk}?S8CG0%>p0tzj+jjdlW%3#LpNV7Cv;{{4^UR#APFUww?KpDYRsb`f-^x; zCiWHBGLN#~NY2dwy&G<`20)bpO9^Nf4&(ado*~^Ma{hog8(gtUv+x8bEBwM$7K{@u zO%YJ?Y4E9FvzELyMOpL=opO04Vl}t~KyeIq3VfXFdu3}j8*j_tR-vIhcE>8^rY+4X z2B|I2z+E*hx3L#%0ek$aHBo&7uZ8{x~WuJ zFkGf?>8o10o%}FO>z0zNiH<4QL*Hhax!00l5A_=TDWNjgd7M)acVSW^c-zXgv90Aq zpidz?2P!)bD$$SuX|=~OK(@V8INJgP^({nZId=L!T9_RH56q+5fWf2d_4X0ksmF=* zSo*M9RQ{vMaG___S!EH`ILI5Do|*756H4QdvYlO1kje@ZHyN`W0Rputq?Lz4rlwz4 z1onz9(}40LOI&Evc;z-u;MRTHk7hnW3$a(K@~ek*u304Qd^`_gQXK1Pwb9!btUW+C zA1+Mx3E2jf)PtXp>Cw%vB zD1HRw$1x_4t&LQ^LHEGhM|8+S-j28o{t*c0iY0b8>B*?$Xv3pd%~vprknORJ<2CKv zb%x;t>An|9C=-QGgZVnDi)g+GWv+grgMzw5^GpMzUY!vC9hI5DxvA3EWLIZ zw6i~QVR2>t)?=rWDD9xFo%Kp{Y2r@gOB1PHi)VagGZS;vr+Z=lYvT7A1Me@y%VQsL z3qw5S$X}*v7V|_44GLt zNPQ2M-}`|s-08yMJ$?M*sb@8R@yxU7gpWwzjj)A%XkgLrK<_0-8}xaH;ctv=*k?mJ z#{h4b&7&TocYN;4pxH}+9!uZv05~!?%_RwwTTAtZT){r{8q#;k18bR)T1N(ayAKNM z{}9|c-A@Mo*pkU;2z*CTt>0q?hE*yux1G6?qZu=Od>m$u(6B8-h?JCP8OW}gFNV^X zRx4#gXFw+#?qp$~?bD0>7D^VkVN7YOIfAcU6jqG4Ni#Fsvfu>bBlw(mWO_-_VnyJ( z1&2LRw{$BwD}PyHgyvy838`<`=B(uev8<}%T=7w66+ARuCoj9!( zE~wZ3?b0xsLThNbNY3O@^1sG4;?WZ3XQH`zt5^0o^R^nD!Db@4MsLuQg08*dy4<}j zXUcSL;dtj^Eq54i#hrPk7sCDH3=WYNZwndGF0???B-(C9Ks%$R19Qt@P@T@AH95VV z+y|6%{xrvda#4Bl+c_T0M1gD?CU3Rv$17)znLjw--BHEylErsI_%E8vcTxEB&!F%) zJKCN!9)BzP!;!c=4xeXue@x*I_PTD#j#?1Y?bVLkMieziyv{;X#Ld|;)*zkxjjB0i zZh@ag_z4YalMyv5QoKE662I-xq(X(Bs5;4HUA(GJ^ezIN{U}(ZJ1?M(QD z<3o!!C}5Np73Uxdz%?os%V!Mk!%xOb_G8-}|* zR<3(8Mlyp;6Tzcy_X+m>->rQ84hBbhjGDS(eN(;NB}*xOLPRuhZH87Hf@C{9P>qbJ zf*2YjKxVCd;UF0%Pd7DRJneG3lUP=yy*px_ZDFe$wz8XE#oUwF7O*j615D*WUW||3 zuh?<3vJkpB5i-F%iZ*FarT|;a-OfrQZzx!Fhiqsn&HpWur1>G`BzDJ=na0WNFLMkT zO}2}kR@CFETgXSegQQ`(QFNSK3^|d3$V(drcat0S<@T6rLt*1CYdka8_8rs_B}lk} zp)(1n=zpcD4+`?GQbu_yB&aNR2#4=5a#0|>@-ZdA4N|BJsu^aFtjzkEnN0V}TTe^% zhBJ;E!pC9B$(ZWm0)cx})a?|yIwm&fUcvU2IUED(i8KZ53+b7MJu0Gy3~)WYZ=LL7 zM3)EEU<-~1?xZhz=vG}i6=cmepkRoUv0D3WlPgCyxDaZPbAf=pmvWh7SE>`MY86{m zHVebX+J0&X@yi2zTTvg2k~9pM=3(^#wI!?UFzeQy65~MG(Pw3H6UB!hp6aOI@YmSo zVg&S?ewd^HiLtX6R2rtGQD+!6;%dmOg^ogBJ1e_X!bns zl~fE|@?eTrJ(9P4p`p5?MvoPEZkk37zfkWV2Xh`LN+RuRjxN-U28qjIew$z>PHdYQ zX-7$?#mtM3%TIi+fo2W$QzYNr4UNSh`)mHCX&Bxqz89)sHjvFpq^*Sx2ecWYLuJ1c z&41y1z6;LnF7P407a5077N2~sWEZ0!^Lg|hoimYre@y2#HDT%$so!nPp7t}5ni@%* zrof1T=ORkHwwlIfCaG1uTGZoax35{Sh7R~^7Sp;*T2|V1v6uy-q|ijq0!LJPNbk1} z3NR6b*Fwv7l8Wt9gGHIPjftw3+}Pw3h1(P=iQEv}0!$D^uTNN)$;e(GD3!vzFu2`T zYf||MH8&1L4sTCZ_y{3%2hV5}ed{IJ7&fWD`l z^CR9WuuAq!4tMNrivMVIUUUk%TS4ebroW@|Ks?zdY}O@a%r zhx4vOJbN)JMr7`~>zO2dKG$H}$!!ewD5RtVa~W~UkwiZHfe)hd_OJqhZDs`7s65k1 z(VsyUkZaSs`uI4k?h7nQ=*`YD#aXvP5ulmBJbZ>w06<4Uzq8oQg!UqgSJG&?1zAn1 zwa4}%HdIfJ6>woe6SZs^ON%IlG$2wym@GdJ8$>10V$YQMqQJ`?6OOj~!bnH_UO0)i zlC-Jg@?Bu|$ed7F%w~dD7KTJQz6%#;% zhbh&P|C#}6wT!lx2RDBiD z%0nMgrVGsRb3I$+FE}zQYHGazq<-RZvJ#L09&A%VOvrfp6zDuJp!VhQw3}J@LLS6N zSPx}ECP{ng?3Sb{Bgh}k7hl`sab<}1ViSb<eBlCi9H2h0+{tM>lz-z}L zD@waq9>rSEoc@pURy?ag^SNdX(WVzr*O?B#f29zE&e@>(OlvJ;-m_<|5BB>}BME4| zg{tT^>S5l(jTcqbA=at-#qtVtpDhXouxzfY zCdcuei8;ZrTDpa-Osa35X&c&X=wlS?1TLBt&b{O48PHzXcMs4t_!Ye}G-;kZV=cT$?QR!#chr=#X z+t5ZNZ_BPBii?P3l~cWo>+ko|`AmK>QX6rdSX^xh$>r4 z@Ib#;Q-NNoLqvEgxOE(f>zvX;m2A7xN@DzP=BLl(jOJkabsyh*s+l1+mYCAr0jwCN$z{GDB#7Oi0$h^SU0^vDg#3@wZV>JrjHXj%)mOn?ZG(9)AY z#T8FZYpVc~W+5s?zbxQ%tX+A11LK+Hg@D#;wQCA5pf#Ut@Ny4Ca8Q-xE){`ny7X1E zU1k<#1uz<&Btq=4uG1|O`;DWIcW*vlXN%7CAFOVEoH)F=6|dU+iQ3Eb^_%P~CoQ{S zR;?6u6`MLuIsBvn%8B8-`Tt48{0q}w_}j$4iRKl?fv*Md*j|t@D7I&bgy>%+M4>B= z3+!IdiR&c`|JYafx`2cB*X}0i>sCf$i-|&1X(CGBI5U4qXMsjE@itH)@wtH;&MNfS zEl*1|C+x5ootw<45O@uR@_4G50&EXaq|J?5Q~aE*oEtcUQI+*{pTzUx7P7hergd(N zrYUe0gbP&`2mE$7aq6@K;C}th3BS?2ds(W zk!kv+`4DUG^yMVV&I9bl4zt;c+9d>C%Px+Q{FBJfE|6pFNt&Q_t$t{EK!Zcg!X%WK zsMT&1qc%H^BMGg3HXZv=0)p)vAs@33=-+MU_Bo#Dml+Sej_zBjjz*_<7(BhzwGs)v zYjSD~_B@23+r%(6}hNlVlaL5cKEA6+Xj_!8OL zab}Ah!1=tYE)p zHQzQ$qz(6~@Ba0I_%V;Bwdg<}fyCdN9xp=W9xd)s_a2?^kT|n{9`JIG=NGbb;V=?E zQ_%O>mnAxmwi#mK9wVQ}0PQQ>#LlxUAG2`kAl%I5-9iW??WM-GwKPHERU7IQ3 z-x<_B7}?mFB?C$R4U_#Ji2E`u2ge;?4qWG7eZ`j%eB_AYLGvDl14R>FVYs0pw(qaE zoZsFVrghe`qAy0@CFG02^^Mrx`qsU=O&RRa1rGPCE2fdtP%Y>-`8CZI0f%}M4z-V+ z`P_LJE&JU|%!XANWmY-sh~C<+0HpX2Z7n*C_Mk6XW766mEJGNnwBrFAY%BqOGht9O z^p3T(CSJNeex!Vz4(QBzgBvJMP$Zaf&Z0f0k2qG*NXMCUBmKr?FclDiVK*S zhaqDj8BDur0J)k;8%O&|8G|(2FB=mP^AFJ&)s1jw5&1k?Nq`W!HMlbGD+TLSP4yQs z>pKC|Bg;H+OV=1zJW0}9=xOTF2rIi{PS6p#d*m3o17`uz@Vc$GRp2N&(*(SQf<$ah zu^8M9$Rh$VusTPIPE(EW7F=C$yGjHGlVTK?DF1!|$OD=sU-eY6GH z3+F;c80MER{gqNd%tef*ykv+e?@mZECs`FDB(&j=5%}MHW_IzL`^(pcg${mg4r#stX6a%e;qNV2cTMZpLT*nB@ zMb?g#7JWNfxZHe}u|xelGuLBrdU^uxF9AZemh(clKa0O#(A&e}=Anv@h7@5B_IB8u zL2*^O-Hb>vkPOU@^V<1k1g6B?rux_sr?yOjv-py`pUd7KJ%jJ$?hpIT%a~f74}H7W zn0x-$d!;juy?n3Fo(7PMMd8H&<9<)lm}4B*EEx2*0#E1?gA&-LkaI7KB_T%RYD2Ad zhrU}@515HRx`iK_*RKY)8=VA?m=0B={V1goJ=`W*q;C^g9JO@Xy@T-9BaQ728PryW z_8akjcC$Tf!)P92fhx^PN9h(J4_#Y-?Q6rct`n3uDJL?8A?}q07?-zN<0L|bs&V{B zAGk<_=S;b;An(!NIf(Dm~{k1)0imtQ!n(%v_P{W_xJEm40e`(t?LENYT3VLz90^>OH1s~v%8 zjPO9>mQ*GO>Ard@!=yV;nw}E)AZ6AB=LOqYZRfZkEOsOgchvyr^UxI1%7}DvO>yIp zJFz|L?wW2Z-EQQbk#(GZ#NT<(Wl3iJ-*?XWBlKP5?wCe~gwSr2PCZhhi{Zkcct78<5)C^U||9kw1i^Qyb{pJI@m4vX3eLe762o}0>V;DU1U5Nw$d;M zdZ4q}U`tgNezp6rnkS<2^Xaq8u$ob(3OGF)Ekt5^0U;-ytZmDv$A#LBq|qNkPK|)% zJ=8kPcd**AC$voh=V3evsiVjUh(%iyQ8PIJN0N5A7KvjxdZT0!A$EpyJ#VCyHY15P zcq?+;f9Mh-tXxPjrP@eo5N&DJqz%7H2vQUpx25u%1u8nmv!)h=fix(iUMF|yXG_&FPm>ZGpv?8!*YusZYTmp2Yxi%_W$Ho*^Svhdqh@asi zw<)CYw}A1Wuo!`WQE}*Bx^cm}$&6`Z1glsGVCzI0vBjVDHR`v1Ff`xR>+!iHIDX9M zscksR&PxNe&u8TN3BY?->Zme8s2yCKY5@WB_G4c*#}7jaqJ zX-pcY7$fExhJ<3z#!;yiP|*n(7fB4R7A4XG$8miWtIve_LV@ESO?&7HF zApNs<3E(8?d1u$d@Rf^AZ*TicO>^El`CyG&y5lSWuCAuFE;HXVBW7%a5wMj7jY{i% zq22?NYYTk;BI+zwU?eE2e6zW?VcTK2^OYsQPT=mffsZgW4hvU=qRQFPL{WKLs2Ih3 zYA222sbHBE3?^BKnUm6WwtFn$VF{M&@DJp}v4s0Un0DCOujOd>xLo&E{MeZ; zVDn19uESWNd0uXMc*|mn=59THuZG!(ngP@tY;8z|3B0l72vlK#dNsys7mk}iEFi^A zrC!Xp-`#{@oJtl-Knjn|-6YqvCK;SABv*Wj)}!06JPYcTmR~N*q`}UwbyA)@g~)YQ z<^<8DbM&XU(#vGG6QFVeYb#XZ0}yl%srR&8;*Oql_+t>bkjo2)cOz-`@OjS-IS&!J zaF+{*^YPB*WMr@t#(pX>51p^oW=DS#rp}A);;qkd+=zA(T{EK3_hCF)?MMe7=KH)f zI8jF~5NMD?qxz{|^l{K!pU}+pY@=w@9GXYW`T}M$rkgYJFqbrP-9ERu=~2XL_ySv11%SSU(?Mg$vR zVzIBLpgvgUHu@;I7~0ZDTRbyutY+D%fRe$s0a|JFqcjAB?$&V3VlNDSjOnV zT+}MD&E09~rDaGmCs?Oh&4~_n#W5A#noMIbwPik^d?-(gZsC;M&XO|;z=%jhUKG-X zPVIBc7Xa4EZT*TlmZFvy1x^|#S}wHe=A(M7;erg|JP~3BJLwZ{lI~yh3W+0W+ySLLl=CsU z^B!U2pGr30iR2&l>zW~Xe>G9B!FT`Z>f?RCUf*}yw;gx(36h7cI=k?3^N{=@^jmO8 zzx!^mg4}c~SBW5Qn;#pij6JvtNg+0n%G=cn7x+wW=sa?hJfZ5ox4biT3VgG7yiq%} z&>n(w29O^H!dW1B1l2|-Ye_|>$gtCg9DvnRIYvB962ogPBf+3~AqEnYQ=nuIn_Efb zRg|H2a&1RMGf!TN=!(^ieRn_q=YANhBSsrNYL9ErnS3u8`yxf2>D2qYcn+HvQoL}u znCKJO9Z0cDoIB5LrrI!ea8kzLc#_)iPcGj2{M7x2JTJ-%NnSX-hwtvh3LNdx$f8}m zyx6I?Z> zHXoE+fXM**+cPYu+ePK@STamba=HIYAPnzF3DW%Z(mu&a0PY02_*s$TP#2l=t&3qO zU}4z20wn}$2pkq5fyAa^#a6}*l*B02<>xH&KrfmPliJQ>X$M(bGiWWGqPUrmqmnNR znshDt1mh$TCDM0tqa&0Bm6*1OkC_d3!1Of{SV-So7MWbf`U=z#(&4_Fd%#kf0)Wb* zUJl!J!+K+Dd|`>F8?=?nxMNHic_t@#x9FL*EN!Gq-A+R2T*5CiYGsy!D5CrjXh9$$ zlNCA+Eu=KgCcC$Z`}pYxKrhp!p>)8X=vbr~kFMwTP{eVL(U3VdQu5H2^FWAvBPF&K zM=|d`vL3ICq>ZW=2?q5-At%unJU! z6zq}0+<0e2+R&f+-EY@d;%)U^%4!6-^BhY!=qhTb`SDtM;_)f#8~{U#gl%HE-jbf2c7>FV7#oW_j=fuu-wI9>y9wY{ z01fsQVh0LDq_7cKnpc%ShMAL2BL0+u7~ANGkZ2Ch!`9{nd(lk#$Oy>=`P* zxgTu{&50b%}>iL39e zbMK?+$KmfiP5c~J_u2iumFkPdxl6IJIyNMw|>}4$EKEaJ`2KAJohi0q7xV$JCt_MMJ=c z6C^Lj9Qj8AvHn~j>Merrquc4=zsW6)%c{o0ieB8z@@(zxq^85he-rld>Gq}i& z|A(-tkSye|McC6QWj__BF4MYk8@PhI3>?pyZCwI$eC#&J2356D=|% z$4?leS~u9VGSiUZM)Qu0V_^^hS<6T_ZJsy+YcmppV#eVjc#FAd zuNgJ5V%fP0o<#IbOM4XH!4pvqqJMjbrl>CWhGRgXF*kCJgzvKFL5fxUO38J8OPyJ9rip|Ii9hcR? z?ky68tWLZ?(aC@L%$&jaC~o}F9yzmlb8eSptU^`RK;D|V*p7KN&$6wIMrSa;r0#o9 zHW5NHPXT)b;(0c=+Z@t3yG7SqpczLktS=EYry9mvmENkyaiviqkA9}obkpW`n(4@` z>7FXhFjgYgE@(x)S7=G1)!vn^PPR_JR(U$s?-8^BG*(HxDnaUwYctg}5WkKn4d)#pnNkBR(~%j7$e z{C$6%^99Kj!BE0q{td#F-9YhPdpD2t{$%e%3pU9>YAEvaN##Vu~{Y*VsdCBYVm8yFP`0(>`2A^)61*XBMuwC8-oHQ`k$O zpW5Am^wjS3ie8QKy|xg_dCl0$MZll&7spQR@!Dt@ifhm8J!GGkjR|ER4aGw&H}7e= z%a6bN{>=}+`|g|HeDOi6FVACK5cz5J#fS;p!@YBWMefJj59-Nv#Iq=ki@bNv{TENA zj^$w-{?wuOmPGEU=I0r|aGMKn7(*5lX=K@Z^}F2<7^4#9(SK!Ihkwk*v_=X zp0l!d?A(Fbf0B{UDI;X!!1;SX?J%x0s70@`#?{iRe?@2fT;lgUGv~?-z~_BA=@KB^n2p%$x`e z0hEQAO!HWfE=vu73LWlO5Qfz>8j+vcr<+k@aojBf20H0ePG@A2yfbBNnUsmdCg3dL z!-dQ6rUe66^M9tIMV+p25jUqm!c6ThrFNv@RM1A_l{e%#jVQBiF`0CsDqFa1*+R0z zpME-%cn+=;=gJ1tYIeIg=Va+5hLL5!4j_e!GVP}NrZPCpKZ!5?Ge8@3M-pzk8WqYb3$Hh%^$uM1Y8~9w!^BwSFTirtpYa;j$6-w~x3865^uqY^IS?X-s0U6O2jT zGY#^8Zl=>kLIC>3*9e#e07x7F+PU^Lo-pA$w5jxz^g3Ay(17_R26wxSZ+u14Y0n&Z z?XK{9-Vtyb<4qFCw_8uyQUacq#@=o+rW|IhtrM}af+(uJ`dZcEF3m$&XvYD-QM35R z@BbuO7PnHc&1wb1JF~U`9BK?(n^B-px(!rJ8)$cn-X&s$YLcTLH8_4xh0^< z>G2r2cjoo!(oT)%7tYNECI@jk`)puMF3kp;CkPHki{^>yKU+ryi;HyC(xKusRMS$k z;c2)NmX-AS?M}S`6>Q@|a~I=|d_^s0^&8D@i>=~`X>CTx8Zzg$-9viYAhW6NdSCue zhxt{-dwB~)62E6hY=!U|8vu?h%Z$ z10FPYPTbRx41LhakBL_V0x@*%u0o`z#EAQ55zY8F z+-WKt={uuW4LEdX88n0<-WkB+XK3J*{w?;r0Uy?80tamNq!jta> zEEnH%#~^6H7YtL=8j@OBUi`+mzrbBE**(P| zlS&sgvbsJ)Ny;0yfD<{Apo^M*q}x;7F)6il8htK+JPVYtpb!ABe6-+AqcZpvF^-K# z8u*XoA=(CHH_gsg&qVC;!u2Q^1<-HuF7JYDTzriu(L5J_5K9d4PArhR;dD}d)BiL% z(e}avh+d-uIB!V#_V#NrUf0b#VoY@smfC;@_s(KUK3DjK(JCt8!ALZAV2llY|hPxMVXeEaEuo zr-WLH3g37{yqvfB97w4yu&v_tA|0~@S8wq-_a|mY-G+|?pX-$oPBBo}=$O|zQez3I zjJO1#21KT7^ezrSB;R5^vku4cD0Kkp?mA zZ+eegN9BFBr+?+IMX8tVq*~MjTTO0bVLgis-pTw#J!G{&n<8yayvBC;jey~Xq0Nys zoq}LCZ)9=9Xkn(I()#B2)+ujIY~y)1N(F_Pe87+%(;#-PKro9@-nTNaIJ z`evs$`OhKgU?Fh}=S}5oL2kyB)#lUCts*!S?}tPB;PXN18>AB?>@)OW*LcDDFF2kU(Z-4om2 zd*_r3XnNuB`;+!w=J&jZzXoyrRNBXWJBub8r1sEwH%mL(`W}?;@%MYjs_aI(SjTfJ z>o>Tb-R7f_x}_eGx`v+lFBqJ2iUb>8F|&7Z{3K-5Vk8K%{f(i0o3VoL0dz1QKuaUm zert0UUyQ&O!RGMV_x*0rVF@T3I_@VQh7R8rWTVr&$xzW_6mJbLauum`FE{#Qq;88R zsx4b!M!H=OrzxYTi5DoWx4p;|^gJvCA%en8E%$_?!^AZKTdZ^k3QV6yS3m>{Y)NMT z861prNvbNcc<&?y+&Pc7Ium3IrYVGBnR$4IpNi@ea3kb%G+_QB&^K{C!bzk8>t-5t zm{1bs#dIqX?nI|9|w%UF%ChS{U=#f0(dT!v|&LZss!677_Oaaa@2IOS8E^*+^lCc&|z^XP9osvZ=}DElTk3hbWbro7@aGy3cC4vXv+T{u|ex_ zgPsQj>SXCdk#c>g@gSKbN;p}fBarua#fg}d73R7gCE;1|urf@Br(BStx|7V!Mzjc2 zx0=~wn|VY99lT~UQ$wS$r#>h{lDLX3kc-Ou~tA3NK69%eP?iVL{ z>ory+A11E)h4_WwsnrMnl^C7N)5WmA6%OOAmc>h+Jx3(j#?|_c>K~_YmZy1{HY zhCJ_DruJ;gz|cWrZ;O{Bzv2?He=7NW7qH*F?+<>S0{e@uK0$qh^#DF#pQzq<-kktD zq;8v@;?0Y=Y8yrRO`i+0L(XWm-4jVgS_d%i_l|*h>+*|gA?>J(whwP4bQReq(r(?o zif8i)n=Krhy6A*mPWoVdCC7NpuVqS*JGHV@;Wm3KkL%CA!r}r2dHuHA8 z8lWn_P>GRTVSt-3-vGTg7XYJH3ge~W@VpK$-sLPh=A)51mo`#onZ`aX_1`r002UTw zWd_4&uSE1grXhTe%>C^peAX$^&*Jlt-D&qHl6v$F(c4;HHnnVwPAF`u_CM`G6Q3)~1B_lR!Xy zqyaF9GISh8Y_wlQFeb7QO|%_gclSoUrQa~jpWR* zi90gxhk8A7K}Q1avHHwK`|?05-Uf$(B{~EqC{JPga#6};_?c(eXq^*8YC^bO%SIWA z$n_XJO8%t8-~KtFq6?;;o`0pA>JdHI64ZH=R7M?2*Gz33f;yyWFJs(aXVGUlU#N1Z z=7iOHU)y51rJrumA%z6H3)eNxT@0A8^trd9CVNWgzj$sg(Yc)<@S71CN^m83;(%OP?c$M#=3L-9-NY`AR#W~8C# zvL_=AsL&u<61+){{W@I3+fK=+9(U;%%htgr;OOaHrxWSzhi*26%5ut~+xR|Fdi5<6 z*G8J*Fff%d*0_05V9prtb;g5xQP9lth~E{7z8_06_HtQqFD*uQQ}EON8dFYh4r%G- zV->{-kWZC;MyyNT#v={$ZLh?G)|@3}HZZ$nT5$>UhTRw0{}P^mN_l-JqQCEtejX$G zRMU+H1I8z$Z|}EHTOf?%Cx||NMbkLaUWJNQK)4~~F+NAVZFjC^^;tBcRWIVFEwOgo z=xO9=1M@b?MCL=|#?rvN&kTrB|3MIog-?BM!54%QyTDf2>b&3dbiKinYrN2$Bu@58 z0&mLzS4m`qzQ8zR7S=}Oav5_w?rz3g4@Agsy-=^s@I_U9YVN!jX6|Rlq@NHQ%Uv(r z19VFM36nOId;r{?L-ro1USz{P#NQK@_nzjx#e7hEipdkjcY^G9#qjgeproHBSPN{7 z>(AR^JZD0+0zPvh6x!R=zUO{iyvYus@2ln~5idru#^zHefO_@O0Np@1_A=B_2coyi zGn+s3^r55!CFe3Z(`u(0Tk%OrWk5@8o!!EkocP$A3OzMDZh&Qn?Z7Rj zMhwk{pGAVC$0gAEZW(3a5OO?q`trYSNItgSl_7+G;qkJ#T#q)Fl6O7@)xXA*u11;` zaw1vqO`96eVm?4dL~bO76jfgj5xZXAY*noP+|S<;oyMF~+>j|zgwb{%<8Ulb#q}4q za06zpVFGuBr_o9ya`@7v3tjK|kbS!P$_LnNWh?0Bj>!Bx8NpWezA^GP(?1{Fvk}5+ zFL^mI+u1W8Zs&$!m)L_1X}D2wG=(SBZY||}a!yjZW`Vz1oeA%S-gt_n_W|V-Zqknm zkzi9QE(|}@kfDBbiq=GxHz~YTmkgk*)+s8}NU<8=?j_p$ohKacA?LFQEyz_2+j%>i z`f8>ija{(Mh=aPjJr&bU?B*{Q_Cjp06R~+wdRyG2S|)vmG+?ym$yd^mbjgD8`L&O) z#>6r&r^psXQ0E)cmo5o6qj>a))af9)wv?s9iK>T6?1a*P@yuL;bTbhLx<;uBzw_d9 z^Q#iRZL6!-hkg}nwbGoojdxSmqlPZvstJCY=kqgFZim%uB{th&OHa10uX7)w(ToVy z!Z=A^X=|O?4#%33^*+yTw2LD;*L4dU8~4x8RC}X2jWr|V_Ak+DI=1_a@2$jJO-zW5 z;Hh;z{eIopLYbJiv^eRh*gcAoMCo*pNMJC0!QWj8-Q$T-=4uE~HxzQ~jBs{9Gz4ig z=`>UV9$vrjIVJQ0$+%3};yp%hDRW^-daq!s8e!4O0?@`n=IV~m*;2z4Sc&j(U$S_K z&_9h_zLU-0_eVe{n@=8(&6TbH`W%Jpq~mj+=6Cb;Ts|j77kKMeg&L3*c|e^1-*Vxo znN;C(A>)k~baO_eZCSM6N!9Im(4tO3nGA>4J_1e};=*gFuSJmEMQdsfeiLTKx6tgl ztl+<(O3AgIaNqL*Tqly;q~kc>RMz-R?Htfg7Yg#3QFa6DbD6uZE^OAyuZdDcjBx^7 z$g;i8*}%3tfB4xF`gy?1MZDugoY3lk^quhKa~i*p`6Ouy;*)F_&Dtc!OYoyshYR%y2&)iDxywGeoesmU{aA+9k zm2ffJB#q$}(F`-q6nU=LnS<2Ir*IR@Uk2mQ%#z+{6Iy#o)x zv>|Q-#6{2b_{ychDiU+T?bV))9{W@IhU9({?xLHORCmxL{Vyw7*HEF5mk7d3 z!k`zOS{jSda~E!x;5R3~mu*B^(5GLlq3)Lav_|I3P?n{ftsUQ_D`6T20YRIo$^q9f zT}Udym%5Jn*fTNIGi~}Mi3f_O;~Fi-*+|Xm^kgI!tXt2ME%svYjbwyw!uYnjt34IS z1x!A97qb~SN7|Hc9dd+?L|NN}yb+9QkMWAgZV&c(OQc(Lo{hAvK->rsjI)bvLIGaW z0%oSgU>7^WvU?m3%DNvm1|#wXbI9*Y^_84}5)Obdk8;1tgXS;1$I1OfeL?s$4Xo#w zV#NxWf2rN(F9d57$`n-|!%PDLXUd^@;jkWQ<<22fwgoK#ybzqFZ<1r`svbCg z(+mIv`CgrmAQm+(utj@NarcKniX!@H=ETqxqvmnDVS*2@CFc&Jv|stSAs@ux;$)=9 zzt~`muftdB={%*QCy*{8fn6Sq&OHdf+l$N!;P^&IAUg81jm6aP0K2ob)e#OuSqhIJ zeDl?w%feDk8><&zt<$!lT}XwN3Mdc|;q0-dFZ9<{XPEjir+*Up*++GaJ(Qb8tsvTB zqT1*uZq~eonF>8(oq}8S(?iv$zSRfK^t7|f`lg<=8m~rz8AhT=CW;t0b0KC}?=ila zvY837;nDN_z?F|-$A{rS&$smjRXPrvcv8Nl-yS~OY*}q5oCH4_a(kkmM-bIiYOgCW$ zv81Ib6`Z0?vLyrAxl7>~A6j!vEGYg=Xa-3>NY@cTb(ESj~Eka=N3ba zp9nR^N7KgGLElszBMb^RKr+K*WfQ1g*_N?RlpK^I(650S_(|_3d^=xqL;NO;Foh)e zCKVmG*xm5NXQ-oiZThv(L+bEq0g>J&8s6ZWvtS?|>2Q)+J>S1g@x^vJ?xout;9c+N zupw1!)X!W_`T@|s8_RqyTJJIU1+ctu7)QPpppi}7Bk!|N4Cn1#d;XMidBofXLp9*q zll7%7CUA`HI?}R-N!#-(&hK&Y@pip{lOUJeJ!94xCOi1Pc)xqzdvZMTV_Vpc6-~2S z{vQq54TTYOybiQk9UmeBz^uzh&}d`44kg`yI<$3NSFa44o$0KB?0sYnBk5@S>6F6HLi-OD8QLF??)3$c$#cv&8}E>Anij>nlGUU>nW zA=|Q*S!0+*7qt=-9RD;$~LwWMrZn`RN%_Jf#;ud`)OHi~hcaqipUq9zzsC_yt% zYV}(aCL(FYRH;dlj~fR z6C7fQ$ak!{9ZC4nQ$(%BnnAF%ZP5b;r8bjHMn%pA(JrFs>yj_L^N%0e%4@<4g5R`2zFlR3WDght1kzV%dy8{5o!$UYz7u} zBht~l%^q!0I=X{B-PYanXxCu#Liah5RN_y(O*2zPasZLshM>=G8t_rmptj{lM%}q}fRz zTF)27{O_TzPg4Ko^Z8Cvf8QSyouob~d=j|+ytMQ_Z^t@A(T=}SyZ0xtFWN)S4?<^? zOkzN1k^^gE>cz~9=oDr}1^G=Nl8x6w9gB)-UBy6dgHJ-b5U^ab;!g}@g|U!-d#xM! z$x^zB{8{kXk_`l3D+cJg#02!_j1V@_prh1&uZ2K$7XD=qTOHaqE`lD0%F!1D7bIZ^ zNZr+E;+jl3K}Tz#wy8lrZ;|Sn4x|hVy`zW3_%D@ZPn1Sv)`QVs`eNhCPA1_{k~@tszj&JuIQ6|bf3G6; z{GzvK3O*XDliFI-X?78;XPk7l0$9T6LFtitTwVyep6}f8H)IdZ_2tg+(kFin*q!rM zh`J7<~q`Z`?|K*!LXGT`4SEbtK44I)k|rvv57yR-ICU6`G5 zV5q^u4d^<z=)>Xc~V%pOdXg%zaaA5LaT= zg8C3P(qd9&Y;0RTjmQNP2$;PH>n)nUcqCf4kA?Y=-X=Sn^x*xVu>?6-czuzQ^C+1IL1A!13SVa?+`3VeuJ}v?VCt2yvd_7L4agd#tdsc< zL|ko0#+#R!rG!f?+igFc>QOY#LNHlQY|pDnB%Eo0yyBGNcnZ6S{I`C)NKl3-7UtE2 zpN=8kM|VjKSJt4~PKk;Q%QPe1uTE)7Rj%AJk(EIFKGu_}O&zbFxv8~VG3t|MS}&Hs z_!~S)+EGlH7nG#g3e;nTos;%SWa$#ITUxPtnV==jb(X%q8a<3=To{~{yXymW@t}^^ zX|$-V9?i}zk81d5tH!J#J}e-CB1I&PWK~9S8*4~0@wVMT58^grt&5E#T(UZySv~!29VQd3*&)pqb*)QHc^S^OAqR76T^pfEIDdqK@DF41c zLV7H^A7lH(`4JKW-23nNeTMmDd-Z2AECyUCuPrKmw4ASROQkV+OYAm&VdYGks({+f z*9~o5r-9zYnO-@{&auZM5NWSrwvufIWW9+axvi83hV?BG5O&EZWSQxK#Jnsg~2j=*?6Qt(L)89MN>x*W` z32E*w)S=wFt0ba#yT8xw-YD&8$xo6WFfUC;YfyZ5d=HW@R+N5=E?Fen>@-%W+Q`%j z!;Cy}ds#vQk02Hl50}NiFD2OcLC1x-gyXiH*i5St#9X=>MdAc#xfwhw0@%VB-Iq9) zxH^Fmu%outkm08mw{3>C=$({}v6FYf#*+ZrONDWjkZl1?VAseXG}J@B!cp+3C6)_* ztzx9<8sX4f4$3^cL?r_M2-C8-$UnTass1_R%2AiCA0H$9pn zUntOgL^Bx>sI_>!n|3%^$Mvih;PD~~ao@PQxk`m^o?Ebz+-xA^@rs|}6-Xy;>Jdjg zeY38u$CGc(WY%asrTVG%SyS$%BTqr4gfjpRdJ~4*1i>F zYA;BcI!5?UAUFH;&V(1hKHI3~)>MCm&Pn97uH(FD`uX~Ra7|y$58AULoV||>zqtXL zeJ;y9PNtgOxviE~&$fig_b)9#m_5%S)YL)BfwK+ueoSX+-0cei&d) z0`M~R%awKBvu3?=K0L>jT`^&;ODOr8@p4>A2HWpG={?)?3sWg9sB`&}dc#VuS-UOv z#$Eein->~>Kjr3OfH>BQ{eBz_qV>yYqP5uavzm;X^)3adeD; zF`@2c5V8tdlcjgKq$q1@gk+6}N4dPj>}S&ZFO|`E0{e&jL}@T?a0KOH`h3@?j(4ng z8?g8NJbn@-^Gvq3zY0RbCI521&;;I zF4xw3HP7X>kf_+b8PTBJoMh7~^mHkDReLHJ@)_YfPFor?L5-Obg4_LkU)`aR(x@z{ zqB1+c438Nq?ynACBBD7Xd~Iup_Q_FYrhQhsnVfW4=IZBi`!0;1Q}#uMJ)w3*s4_S# z=UltT_ix3+xbj@^z7Udq7SeJtgXaO^d#rl#a(4VgF|P{Gu~shk&O3^*NnfpKlEV%g zC2G4ytMTXU1*zv%;2uY=O3qA;<~%Q#lROswK~k6R%{rXN5bY=Vv8Wxh7A2!Qp)xQ% zxLU&+;y5@)&&GD0ko6dZ9h9?Uy&zcjeFV4boei=B)(2RJ+^3s48URqc#H>9J&J+5j zyQp35ut|9b4bJ+bdz^FoQLM~x7NjX7m-P1{Kw2S6yMdm};;_D^bOX9}T4^3;GhMCD z9f@P6{f!eDRc(Zsts^djAG9-9#t>uCJQ!vbn!;I#0vAk} zE!H+0*PwVZ?KGxfb!>

Xpib#A6?gvA>uL$rq2*##T6V&Hc0TUqWx^%uLETPO;* z)vE=EZ;pxE*~YSv#5QwDgdJ&%?1AuLlJ<)RH-E)A>Es@9M9T26vi8Qm+zyJYB=pv8 z9>9bHuf`k&bucAmq+DE3yV84Tsk`w=f-eB;GvP8}mSO`Fkxhl^7nf8nHm}4mrLM#a z(EJtUwuI10V_^U`_5gD%$7qVuZ#)RAETj6}ydw#)saQOl(28?r{-jtiF0;ZpQ5V~! z3tAx3JJnueg4w0=SWFDfo7Sho*rgd0Gwa3yV=xKO7d(OO;bZpv!h+u0!Dp7AR8&sS z4=7tgI?`~%xq^bNsen&nWlRS5+eWNZd)4TpXb+bLIr>mav%+~b@IAAqzWg(U_5x$H zIvtH#50okphVL2+`B_L}CSU^WY%RZYu4v_0>B%gtlQXud^x#U{IEMF6B}in&0$$W^CJywHERuk|F$kLv(FjZJ`~QiK4=L-+vXSQTAQEm>m|x+ zq=d%#|LeW!xPzZh7hJ^bWM1UDwCR)85&JE(t!1`tp7FH2B~@O*q9_joh6^`P_cR}6& z;AY&9c)U0m&Qi^)UkC; z$X;xjQ*~ROfhJt|+BMHp6E~;y;&NPq`A;gd?*#e}`GL~_eFOP${^fljzXAL_YyLYN zfa74Ar-EG!FC_N??)@H7!DaVAJn$yLryT|E>}bqPPEnHr2aVbT>~KO@wciw^yrEy|BZB#5Egjx-fOi8++C8`)q1(eJ+S9FGADs zsFJk+{}wGj%y`=l+}!?BFuy08?*jf#B=rY?sG3{UJ6?MJ_4$;7 zFC5-?Fo=-HiH=~`JxzMoA2`jB3J2C_F2+7B?>bP08l3nI8T~!hCYc`Rx*MP4_x`lU z`J9A;*;x@=5b@EU(VExilj8nZIB&$((z)(BLb^Ck2h)+etOV=opNUya&o;P#LFr2` z{q0-!sFBonLnvn|!tCptlhAiV_2Bu8BTX=#hYPy3fk7T#XnqT**?4|P@rES{xLI)O zPWcY*kpy-D=SBHago|Ld1U0IfMyoi9Ct(;JCU$Si7D2-NxN!#g+k5+k_(aQ4ms^*{ zN*O9N0%IK}9k7f1(EP#P)4Nz)P=$?Xxyxpv1)NLT2ZhV+I+jny=cVcz&Q+xp@voY{~CzTE|R}3iOTj1xNcOR!8S(Rmr@>m|~omAGnp8 z$b4@UG7&J}7oWDe20=O487)PB!L#<(i!s_x2H7F9B#!= z=G2e$Iju7;xJ|L!GSp4^y9F0_`y`ARp;IW|oar`$*nUheWc*HsA1hCfNWPW`6>F3e z>UsNW;7EHPlR|^!$1aa~rvzSdPMh%f2JDlh0Kkp5prW4e~Q*kQF6XXpF*X?Ld@V9*tfD*_pR?m^mQ3uMWr_ z{P(|`vsg=k-wys+12#RX=NFHwww|+I2s@g!`*x?%g-9NvxM<( z5da#J1e|Ma>jn(OCFa~rbw7W@$S-mgvCzg^%^pysO(e}bqSc}fC2tY|OHO+W#|=;Z zf;^MY8;P1AaHE3EJKcyiGvaJh1T9rn1jS8^?6upDhVlvSCRv?a=TJ=PQ(QY`B! zBF}Nhd<5c6`=@XpRK_}7NHdqFZCMJm-H6@5$D7DQ;wo*y2}D(a?}B7injCI>s<&HC z{EYRejw_OgB@t*-1-he{qE*rwl87GDH)aE*W38t+P_rxi2sTMUT)k{N!*QWzYCP$R zsG3EYErIVs>IdA`1&#=&RWTl!pHi?@6Vq3xd(6-nK*~XcFQ9@NnQR%b59u-(98m^J zs7{#jsgkIbn#7RcbtOGwNcGey@ZL7qP8Huk@br)Yl56!vZ5^s-R@*y%i1EkB{wZYV zBDC|VRzu(rYZe=8Yg-)8(Q-7$<|<}~ZKLVcO><}0>H4JUv{g5TiRG^H|5Wz6Qv2W3 zYklmXyEnyjNU)_J^K{i4iq8g}e>e{dZsQTJ587~!#TqkOcCwmHL1|k&e6vW0P?%ij z*-Na`EhtF(s?W?@?|j!b+TO|b%PMVNImu$(#yF#u&JR7ao-yw4T3zskhd+ebPeW&# zZPU1-t{2gLOds)~7tha-nL@VsBAm@8jw(h%2g(;eqdjV~BWA|nTzt*&&PHI@p)GtM zv;R$J^PSB8AwPtwS_g+m?!B9zw@=5%V)c23bKYWh^MgWJMT92-#OSRZw!)N;H(0&! zO`rLB6}hN}W({L=aD&xb{U6&yZ-y~OZ&wHmK6WxKxTbN^=R_Z`LL_;tso}b&SM#C0 z6sy{+jxdSU4V93-5$ifIC%YN7oLEQ1 zDvAgDnbf`)kg+Gho?ze#lG!2lJ)+%V$aA-#KD{G2?;QL9IKO!6UXae-6Q04U@+Kf2 zY0-od$Mzn3m%I1E;P(n+PeI>xG~V(Sav%4U@$$VBdIS2-LW2am8qr?1))~!mrujD_ zwvRn#^a*OW8TFL+WFZVtbc`O)0u8PXs#9jiUqgF9&Bp0AQ(x~q*ZSzBUYv6p@jk&l zI509uEEgdUfSuwV z#Mt7zrd>xQ{APw((j-uLSk%SX^6<$nLuUJm&Y%Ie!1FNgj>~9th8Y7G8ic$faY9xo zNhcyE(6W}y2VtwR&Z1Dx37tf7cGw;;20kRgCJT*SR167py!JNa*%MDT z=5Qf*XOtlge+zKQ>Cv`f$_@R|KJe>V45S8e8Skf}1ow}8u&-0ZH)^)s*EX@?aXC%O zi0AHn(HyHlJh1XkQUueL!h9TXZn?l%;OimWay+DP6(wyIf{-71o#mloWHIf?EJ*&w zz!sAut!+>NK(`HE*2%)$O|57ps0gz#4zps4ixyNP3a7{)lrW88?ZtX_fxY|v{UeiAtSVMZnz6Q}Zt1CqMJAK^5^>_h$>bff3m}|@#CIIC%!N54 z;W5z9;Is^OZ$pE%P4ty)VWjl{qOc$cbq4NVL2YhW?dd(J)LaKrzTx)XA_ET2mcC6W zBjGk%Y#bUbG2_^!M>>dUvTxKBFZ@6ata}QTkAq_4qf+I{qKHgv386(O7+W_Keg^nB zP~hl*=d)GSTxlvZKf5C0*}*tj6}j$B*bIfi7G{p?F7KACYAA~kAOW4Ke6e^YO>?vl5X+sCu}y8k^bE) z`7ywb;`)#O{XhOBxAuSj@?U?n4MV^E`Jeyx#{*{n>tFu)Z~yy${pF7uVuSSqwBI4S z794nfK=*#~s{`nLa|Y}`d)H_?0A#%wFTk6v()2V8Xc|8$P3sZzfOMfqaCRwV!ZK$W z5S2@XB5WGbJ5!UhR$Qx2`Z)`ViD6ozkb1=|aJa$Zr-{R~gY`)f{mxYtm7(;PNG5nb zw`VvRF53K7@__wjht3oZ$d?+wd_`;iPtYFUJv^K zNxShC!+Ql&Kao$rD(>;7^~*I?{TYgJ#NlaI_~JOIeiD#l~U!E(UHecB5m!LpD}dEXeXA<6aKzZ})xT!WV(>R!3T_lKcl zzh@EZ0O|OuIUHu^X+q8{LQvX-=BoPZ|1NThGjapp{qP`<0qCtybr##;|JgV`d%pGV zZfsUoh)L=Hq3jh?Y@lYFXg}03p90xS3R4vzkBkqSoo^TEH7a#WYw7vZP|otS+%*V_ z)5R`OfT&5{u#KpC&*^L>iM&3zIB98GW}b%x0#Cp*7{nqkc|zHK29%!Z*A&YVKL`)q{kFt3y&?d{02O|8+& zRHPgo{0qEp1VOgr=72PLS?u7!LqmWNBzWIe@!;xly7mxF!l*6m4P{Q@?gU!oN!xKI z&Bbadp-W)~YZ}DvEg8E7JtiY-q(>*WyTDYj{eA#cU8H@PvVA(Mjld6c3sLmcf##DJ zm*ccfpw+dT`=nRb5mFD@T3OO5)86gLBU&ghE9lq&og3;sRGiiru7b z{q3rs2hh*~Yw{|=)<)c|%)(l#oUd<+W50n!?LMq=il=g!EpM)O_KS`-W;gVH`6h{#KsFpbq$9a@v}7|^*ynHIZmS!#HSw>I z!VSP3-kFeEbZ%0)0(5iFA|C&wWS=s)LDJ*J#d|g)8fJ?t98~`(cK`h=^A53tAU8Ql z*`#9{m(;lh=S6wD??reTj3KKBtRTMaMk7a6JI`^Q75bddXyc^0`*^*&ucg#IbT$@A zgn(9=$aYN*u9yVh-J=FUHY+!GO#(NAOXzh6^}si@Gi8{9#^nrc{b4!8Tu0}zi2^lO z_&y93wM*!_u(Z;VVic~=mLA=+h4g#WF)<=P2VuC-eqTdEKYUCXvq1VV3QIe_u{)z< z$h5f!UKJWFj|1NsOUy08ytT6?5DOnFWJrubNVISs&Uad0Y00*Stss+kOXlme_8Jj1 zc^!ySzx{9zD&Dc|Ur9AT3fe#C)u<_5g6e_t_4EEIkbVd68rK>9=lCONXCY*V=AEb} zJJ8OTh0cX-#yYf4xEXrqg+kRvOa#FnxCE#99l70cDHE3?&siHi7}-9@y)#gHv0;xX zsn}MN`kiP^-0HU0b3|4gU_0I>@}3KtYM_sxiOP$8a2>DExNocB5tSj~L}Q&{5;iwn zz_s;39AVT{x3vmZ64c(dUmCSvA@r;57q8&>s|@BE1$w%m%uT@oVdhdE@$^RX7XqAD zoc#Va7jl`a+q~AC0r?F4`%34(uhL_L5nN=e=FbDWtwA#C2l{3MM~?r>-@m>5s*A3= z_Z7T*_{Z*Hn!gluH^lv~6##?5@BW3CIUXMdu7}fo1m}E;Y=^s<0@J#00@b{i-<%N4 z9w_c3xAUZv3A;z`E2ERJg-4*ku5=4i^akD6MmFrU%9#2^3Ej^3b0hWR4U)<9fA@M- z$%N9348rBsu(afE{24IJi9~{$;oO5_a#uM}mC6g2ke5d4EPN|h+m)ryn8|%mVbfW z7BeMSfg3!jXP-h?Y8sTtL9|E;qTNuSZ*_odY6K{F-Lga+ObaAnHKpBmORagrWDj~F zYFzD#91uY0!o1DQ&0$d;z{6y_2j- zmyd`+8aL8Pzlx7QZwg$ZnMJv;p4W%Tigd0ma%P;Y34HI`1Y$$apLzGMq(*O$ymW;8*B)6w_bu=iUo|CGPl(q{ zi}j14chiXnlaFy}(wbv?6!ijxBR1263tAXc_eHS!(2AFa?!JjQvE51Mh6ea-q?!c~ zM267E041GSlVc(4RXag4v$3nHke!?{s9Q}tR)pOe=VTVNxFVa}@wEJnt94V{fKYBe z8|KA#>$4EzU@ye@OvpYS`82ahzl%`sAo)@*vk>wb!w;xWs%HcSx>pjoJU` z4&?{9Cmsx$FU)Qt@IHiwsnLiLziFRBg~Z}!(yX^IZ0QKU`$qE0m~CnZcW)!%x3T=! zP}7gX`OkTqYLNX7=li6|=U6}ceSP2O`|l51MA}&f3lgp-S`p;in8TR%v*c7TT#j|f z?si__#=&>v$WMAilL?7#EC-pn-O<>zqO0>{f=cw!ut;_W&-t`qd~*59rR_wzfBy$k zogvpHeZl%b`C6HZ44LqNc`qB7=4P}yY~;*CF=Dw);YP|sKRJ)NamL>iDG53!`Vd0~ z)Fbcy?)Rx)vF#k{qiQ1Oe1-Nt70kabjeG+%-yDvTeuTR95TnqaXQZ3cIsa+iW48`I z8a_y4{PyzyhPpmhb=bYnf!Y@`mJ4yxe>>}ckvqA{7ytz4*8TREF9+tKWi!pbas$cP zd(c?VnZ=F_oacnhfI;CSml<+Ad>u#%WBZ?TC<5s30P`0p4?zI(ic*e$gYvT)mYu02 zRZvPHgBukygdZwC8r})P6;7%cVh0Xt2gnySyaV&5vj5u)i+1jS#9n&}+=ENdFsAz8 z+9Krhz_v02@(E6sPh)j#`$jm2#y2-1vwa*#jAG?{@ZdHfoZ)AdaR0H$mF@zTF^`!l zyEq^K>+nY5SYqfL%A?=IVr+6A6?WQA zG~Cro-)nWKTX>d`%ar0N3OC#g-^kz|7(v*86z7l`Y4~L$gWex%7y^7;A3M3?0Z|Xs zD<2?=0ccTryMnF1#ouP|mt^Gt3nRsk+yf))s(Bt}8>5*tr5H-ZRw?Z~pJpCE>SSu8 zb-FsJwxobX18@uD=%XY3i!a|5a{f}SuqzU&Pnxu04)KN zrj@YK;PbBgT?$_V$j}1$3cIx93LUS}g@zDa-1_Pt158Y1MCck{ZI}fnI;W)pbSu4s zWIv5KMnicbH*PiTs-A!>x0A2%sN#i%nm2gTDhCnI*B%%?(M&msB%>T*BaTSK4AC(r zwLyh6RwpN!II-(t)ks}19m5%ZFGh8hsjI(Tl|nfvx;c8SCwha!KuXz$GnD^o>U4u} zk3yP4$YW3dj51ZbYXzsrK%^4k-)G!tnw$I`Nf{Biju%%QGb>@-LG`ya)S*O&I5wee z@K(~ET!x7WGd*lbj&S|gBn2OSy$8)JKYY~4_=?8=Ft2d`an5Q~7v3M6VTs0z$)FRW@I%dSf6EmA>=1dWU?=)4{b%{w?xIr90`p{OE$)9Fms|;At-HE4kso? zopMgbZTKy&zWuL+us@z&3j2!ezrxCX6x@IMOIH_^U;KL<8Vj=_d_RNr{nuIRZ%60z znXCVR&cty5_qe7(_X6F_O6Yu0J8oirGUlaApz@R~P<>{k9o*{{dK@Wl5S!M}xN|k) zqn~o0rDxiNW&|}Dgdx^ZN1U}70md&jFnA3B*j^?;CCOCUHxy)N!73k-lLh5irK)`p z`ZYQb^2jZUH&KUdaYKx!{eqXjtp8)BCNY98Iwud9+d_?pKRWtK zfAm?^xk?E<>xhhwrwUe?&j?&t`PIbx-|6qiV>*IKeWBwWeA#6GOQCv$UQ&ID+lQ8) z*P(J4gSGu+6r5vr1-1j-tS=Ae8(=%2?fTet^JsR7cUlJ8!S8>4P}j7#jVXl%gzi(| zbRE-jhV|k7MrZK^7!sOiaPIn=gQE|DEL0y-db9fsO$5BgtAfa_GgQ|c7WP zFUOt_h-my4tvK<8rJvi0^Z5Z_WGJCTo24z!2%b}kc*TjBpJL{~^hDwzICzqYX7MOe9Elg9almo3G8&%p z-afd?PgMvQ0nSgh06wI@+3s4cZEzx#3B_Y2kHal9g(WR)1$*NWuso`rrlWuRF5e3Zrixt!Xz+J#X3A_Z2 zBmM;}J^;OCYanz0-_`@}u_Or^3gD&{N+V^p?I!-Im9Ri~Cf$IqyoD_uLc6uF7oE>F z?drh*T#N2vAjyvlQ0Ez)ts})-s^?NTcpbLSrQC0Tp-7KAn8Q9rJ*MlxbsSorc>MO| z*A3zT<7AaxPA3_MEHU_RNK6?G0O5c&8KsUung>8{B4c~z6 z7MO&)OQ-~TmY^8S@vT_sn?yV%n`e1y@|+WEKZwd1Cb{A@r=Vdazg+zA5~tt0D(~RC zPRStDABL*{Y(8p#zT@arO?-%LlCNv5)qM@S=>~-qMXxbn=nKP-Yulg2FTJ+iM7dAm z=K4B^uBWWoy14PACGEavcAn6?;5Y~}C(Qs^-M^y;qmd2TW{PpS$-hbz&5$(^LPXVD z*p|tiCl-Dl=L)vtJLmXX=e3?P(cCsuW^-|zD~mea&!^dj>%E|6*%oG$;9}y!)MV^* z=|gvxG$N!)h-Oro7ls#=+BdTe6KiU_BPuiB!{6H7ug2rT`gfY%V=3IlZH|=j4}Xc8 zoe2{f)8}pJ-=Xy1zlI-$=AZMHRTFYUaGf*&e1Y?hAMm_y?tkaJM`&)O7$_E<5-e)b zbS||l(A=WbS!`OU)kZUU`adAR=6A9z?k56XVC-wosIPes+9$ldF%dS`O*$tTja`EL zoJ6OedDnil)Yu4P+y?MRw{-VBSC=u;Gb}MYY3`vemT}w%*ezlXytfrxL_1$MKZTs# zxka&4vr+?2%n^PBnZHGe;(-m*){mK&SG4;paeOUqc`R;)(VqdsU-@;D^r?|3_?ClG`(Sy0L*uDrhIU_q znNA8KyUrO=cq7EQg6F`4+-cz4Ij+HvMD9-@;Ck3RnD35-0FIk`730A0?cKune2=Q0 z1T^p9Id0wLhYT48Ao{?2*qf+wfQmGNNMXA&v?Vzng(wJ&+}VeFsS0c)x7Moq*kFV^I=8xT$JFrRD)4`R`KmbBE^G&VEgV+)naElY&5{DL zMWJ%3F!`JfZL61+0!pZY8-~??qoyHyhiqPVnHI{ z-ovFDttW!>(~*V;2ri66rRsJ7<0mjKxs33mJci!8V>Dh&w-`x!SXbW^T(f$CXR>rc z-sjf`fG*`>E0}af;!Qv&oGDN+b2NeJ8TnYaz~dPTjzm5p#zIhXT|SE;AZ?2T;T2~0BMW8z8BJ?g zL#nqqOXSi9cI%5YZo7N|y9~`P)382{i<$w}Wi*6&JFJMmmNBVf<_pQ+QDCyFRWFRw zQHHRp9YE$dmKsny3>=lHEZqKv*iD?iOCm$Qg%TP>zU9{1Pb!)-gT0CNA>EC0sGWf_ z(o*CLNe!`i8?fw}QK~NrLxh(o1V+%zDN!VfPW{CvIjfy&OV&Z@Igo>AXOi3Ulx+q1 z%`ie5@v2{c^Hr-~TTMTT=0E2}tAouqieIGqf!ss$>+dGlZ|L6fGn)Ttq~pRXlzCQy zC_abbXABafgYwpkf#Y5h=qD0sa5vM;pG1`xq=D&1YPg5(UrSiYs3P!n+kk7HYbf@% zTIf98JXAa`Xv*UP#!D#y_8Ii}rM~8h#=eRYu7G}~|MW*g{YEt(Qw6o$RgqVe z_3Le}G4-dz`B!@T8fm}oAoKPCGuNj-6YLo~58Lr%Jo)_7X)9oQ1^I7p^Mc6VHTl~T z7~pfj_v4p>^u1#>_>S)giWiH+?Ll`wf^X15L2YKp36k&If;0$UY>LB060=7v(sHhhlO%X5awIiSy3s(Y{Z-L+9SIl=bOc9| zngh=~*}OPoO7TEtD&vyvOPGLk70!+G-fh4>`ON~aDFy`smser-Ham_8xeV z)?mtyqGQCN3ji0KWmNasp;mxRBn6QH2s;E4gw$iYU5jWh=z;RnxWe)aU<#N{B6{7O z-^1IYf<~9Jy2lME(q&RYUMBUbphF^&0wGS%XgPW(1DpuRC=`}yoCj==u0oz0h)}oq zjm#85S!~8b#$@&WO?ZBR@^ahU*8=#emKHvgCW(M2jfCe* z0Pz6mu0CRj#C-wuN+Otd=Ur&Q$sS&4t9UJ9#6O+|^)o zZXtkSXrQkzv;YbIo*zxR4<`tHiS#$dA9+pjt#M~U@*AnTmfS`m@P5ng2ePxQ26d7d zHD4S(+l=ccSah9wvB*ZQZZs_o(~;g7h2ol0jg`_kM$S;*hj%G5@E(t5v%UvhUxpe!m-z{$0m4aOpL8mb z&8&QthGB0|^W&1D?8E$ik5O};QB^PYeK;FWHjo~}H6aA2oq1{(oMH6&wSb7wf~D(c z3qbtjC!#E#uz9HR`>>+tGdJKjTmz(QVOk;n2g0?@8zDd%xoUH;?${ zuu_?-^G+}|{_C+fm%lk&T_5|S=NDm~n`CF2M9g`-&d<*_}CsWR3G@UEQELKdArr&&Bbg@DI1S76?FV^4_KtGiT3@D|H zo)`2UWK|ofM8)bNKKo$4vA!j)A>SZm_;W!7@D8GklZAM#mfVMNaah$}=ZIfEHm|@! z&n_z?TZb1t%D7g#R5%#)?kzwmqzy%VEI(PH{5@)-T_dA^SrI55@9ks(#L$bK?E&z0 zoTl&~*tsZcgBRO^LTLjP|7{W)f+t9%o{_A8Cw1$OVs{)leFpfAzW8}1{ zrb-`ZNI&Ct%rs#^QQSVecuT1+cNIW!gmmq+FT7~s1v~-u8_P%_01q7rWOW3I*W<7JYbpy_4IDLO?B0 zNC;!-b7M;#A6+k%VOFGfz?T71rc0FmNVq6(fE^P!HArD-WT~_BtAz$b#Tj$9jHk>u zP;#J#6nT9Fe+TsYPd}d_{?|~Qci>*t57;V%#nP=|AxGoS`WzZQBCK@q>!=Z6$ZVi) zcPfJ3)s0*~J7mC>8ex=X=+SZAS$3gZ`H*9{w+8Q5q!HP`$_=1KKddyty0-M(ak`-a z2(3cfj8B_)Qak0`43jy2W8+QGV?!!4XpbrBu+}d7Xuz}jW+XRO#2c?h zXZ9akU}c9HVD!t5x;vXnATIz1<5gT7D=bJF7GYa}z!4eCAr#1{QU04NUl(Uj?)Y_7 z^rP_obKcAvEx%y<0pQn>^=}})Z~LuJ{hUu{_>NK^-T)e}0|LN#L#VuEO@q#*HvwXP zAaspr$#fw4S>X=TL-sR%BZ5A?BM+wk{7M~T*ap&x#rS$4y-DaNr&I@`<(*)_VIM?m zeK43N2ZlBgcy*+8Y@O3S&RlQj6gVWgVWa2fn33Emo6d3e!PpyEE3#cFF9gpNA|^Ld zKLX?50J=Aa&8IUn%Q-LvL>NynvqyNPfnEG`o_4xgKKth8Zw@Q=0a4B#iq|riSM2%8 zb%L)SbSCw^V~?T4xWWq+&ntVbeV#5IV|67!zlwD}Rh@sO*SXT+#M>c$Z&68=d5sg^ zcEC&6_NBl(*I}y3z{l8|Y=E9=-_cB^A93@XmYKqcauNJasJc@e@UJU;Z{P(IU6LbH z*3%v~tUJ2C+3(-vK2S(zzFfiJcHg+lS7G$4O684L+n$-wrC0)M-{4d2YGOR71?@XXnbK!FT>zBiL{z}sv=VpY z3$RNJz+h5t0D1?~$X0UMF>J-FHC|zhoTUCVewvLV)@JJp< zx@1=nZqa!0`b@PJ-M56)RX7q3lm()W3i98rC@th63fl4m=%lC66XjnIw$ciyAWUiA zm{+5Ap0Q*CbLnawFL|=-QFt*a49G%;c=EgYMnn;|2kOdh?B)|`5f$?`njCxsC#E04 zXVQLzga0u_M{t%tRK(Pp20`0R*CnLX9jX=t@hEwt27{#$0v#vwddAu-Q$M(Dsc_ma zViA>0Ohmo8lrqP#{UMYuHgW(ckAN3bLsIcu{u;6-Am%uHYBJf%ueA$7`MUx~|8wC5 z0-}Zo=sxWH?^cm_pk1(*DVlaPHBMtpE^E(0mY`iV)=8djBk?#l_;5`c(s^Td{UUd# zm-hL-81$f@2(F-#Ze^C6(CZ9L0NmVRr4{k40_mHq<({)0Z>N?n#AV7l?TL^TVD{#? zaba@q5>uUZ*bC60+eX< zaxO-v6U=}TOWKb!2h>~EI&vE&jr0u7#o+&PiY+dv_phgtA4Tk+^G;TVVo-QL`*h&) zeqYC6@O}Ki_Re}l>=-MqqwTv&T=^-=H__X|1_c6i&$~Tf@{!i#vWx4nO0z;NeqE3Y zdmFQ9t6J>JZ&^FSPt5NKm2Rd!;!0PwG!lj@8?yV*Jpd*##tWU2o9pXI%-R535$Q+Zby z_bN!as>>DLe$6esedJFLMy@u5e5$u0X>2|QO%1;M!7ReqJbJ_FstI4@Mi;IBrJ#Bs zJ@hQ)Ie6T^!=jI{hW9g>%uL?HzYKeS{U3x5#1HpvwgjL3h2(ScO62Z-eihdYT37t@ zds!zKaG$ffW&nFOT$${S|6Rxxsq826?D2}=iv)(~oILpOX=qieCbmy^cI5}ogIrxY6`a*{th14X@QJM7Ko9*kBNDxYE0!VIH=*`1n5Zxc5 z2IzKm3T`0n!hZHZ*$1gwq-0Va9>O}rLT9Xq$j5B__5P+V zXkT_k@8C!p5UZgaO=N`1qsD2y!L%wpeGjRE)KcwSKYbvafqQhm;3A33D#0WAT!<)t z!C#G$(ErZTrW(#uTR=SIP=|F3)F>QT@ywH^#=u-myJssx77j=*;3z$l*(;M_dgj+U z4*FpE6T&2?8D$Kwh%bkG9B&mtk#b67UUqm)m-zzP5=EP8;^zECtiCAb%(82w-?Juf zu)0}Nw6Z2js~+yNSG;-*3%2<7#Tl!c6Z={tTd=l&F;~R8yU>hx*H|f2)Iy|MdU}xvzG?9>4x6gvZQ`T)J_b(q^*?LC9C$K)Nt?$e> zQvsg?R+gx!`w;1B#zDA!%T^0B(@rD`(j38YBhW*%hCJ*pa-QfAlpl1@bQ-7Y)uX#widBNenIk7?4yvHWL1Ma-j0QbK2ae(`v`d8%MjyKWl zcEcEk-oLCte7*9AY4<&lbZ6Pw^0}2ty3Q>=9k=71pY-N@Q?+ zt}%}wVC8J4^YuiadgktEuJ)ColwC?ANz6Ov;1O}`eKh)|0QdbHf=6A9mNA~N(`mc< z6Xq8^inXV>6Ltr{2IH_eYJJ#^s`TRt7C)2hZ!qyF-6g{fpUCln=yq%sA)0bL%1x!R zh47tJq&Y$_cEDvuATVzUxWUL8jBGwIe*pLPj+bE@!TjF?+yB2;@nfj{$4`A9>m94h zGz@NEsC}XMJ|86e{mec&_Yt*gPQ5`bNfxMKTZNi|X!96xFBETf1f8u`V!)!adCCxT ztMfZvQWg&{#Tw$)PeX=NJeWN{;Nx3+4YT8%qt6*V=lh+{3V3sECRU)X+raopm|;KK zElr4r7H|G^iUjy%U9JB}{0GD?7ru=a6*+&KAw z=;0~J7vN_o%oP+X9yrI!iL^Z=Buz|y#|7A62*4mBRzc>E^tsce3rpl8;)&toe3z3I z@?)|~KYy2qC113hJSG+^0oTEFG0OXNJOtq14&}bQ1N3yF_K(0h0GX2oWL>g%DW%(Y z5g@od4)DuaLZPTW2=l-mEyDzLeMc2!G|yAQh{6~JGl}r;=K2zc^uoK2PlYzR)U2o( zH;uryHOs!`NWoAGA_VNhAtqrmgczJe%3{LZ<7{McJK|u>B{&P0c1;S7+9cR>VF?ee zw0yma=gFfQZV7=lqM>-v1iAqtUwx*71v~B_K!J+aBWk+R6zW#wwpBH0*4 zyTc8MwcDN*03H<+3Smrl0cy1rP8L3L-=lX6vvBUE6q43#yw&Qe0yzmps4k(&2P9W% zlq5^YSg-ZH1wshdRvokrC_E3j^u7t0NpPLYZP6&pZR7-@WltCn=^(inn zxt5txsG2)=P$$I5CyOZ|ARsamqo~oFLQRt?T>{7tvIp`Yv_p*q*t zy`>Y!x(EF*uP~c=SxCmj%#^lSDu2CtR0ii5ksZzq%{f-HY>pa4@x0Ko?9rnPu3VI+ zn{lK=nTh$_0+U1bVy%P7cNZ!!#***o)C|1E3GN(qIR!PAjzGcmWMfv1gm~uY9<}C% zfOIZs8O&{~rTF`e#EaFT{q;019+<>Hu{1m07mT(Z#9e`8mb?#1muJ2-nSQ=w;}dol z5V7HGNUsos(ml3OB`jd`EiKhjz3QM-+{c{vnSiMCggjcQ{c3z&G)u@8NMuATsvwVJ z)pbTQk;`c@HQGU;!G2yQ%0p4WXbfu_@pwskdiY z#4A%>yzl_#-vIBohz@mjzJ46um00C+Zz)LpN&d3%?u60f28tM30zp`UkHZJ)ZhIq;H3`BFfh?_yDd*bFHO z1Ue4Q4{Y~|A2FxR8*nY0@B97+!gK$F`3GDFvYq3Hulc?2etHtlKna7o+i1R#SP|)O zGWUL%@7ZRb6w3SnPn}YXFd&|V@_%<37(bie1mcSs-U0bQvi(YA@&NJjgyYv34S+Ho zN-qQ@`r0^+=cniB9iGT&7RSBvtsqi#XgjtrQ}Fv*t_Yk;UPbw~xy_0QewNy6(dDf3 zoHrWWkeaMEzX!6zUnWolUxgPUm`-VOdTHZ^1<)*9mYsq~LHu=YbS=R+j*AmSBOFH| zz_cLXq3u*GGF=6eDsqd_42p5XIcm>IQ3~lb(%QLg?!H`oyYX5WDRRK&+l6BtW^O?h z3CIp}$E$i$2oSiNVRCtbxcVN2@TX*ifh*wPx;f%?9GMfor+7hFiwF)VgF7Zpbkml{ zCVQDu1W~YoumayA0@!>bj1d4QP_Gs9i^o9dxA0C(;i7Evn95ntuvPn&!SDG;C%ByEhj9+G4x^}B_IY$S-b5-*7_w3T5Zgh5@|*7)E5^3VVJ zrwyZ8+zXMDpY=cC9JqSs;58QAH!@t>9$@9(JSoIx2Jnat}Mv;Mt|wkC6!r9B>*szR71y zW^wU834{%j{^D&j;@6qDYb*(S;fsBi1Xn8bF$_X72FpjWvg~}HjIR*rTqx;(6RZRM zI@unzUU6^|)QQZ(PV00t=N3rl)|*h@l(8&&4IE?nfah*%VGMJNXEdDdmIm3mC)3I_ zt}D$~LFIgAq3(G{IBBi2(DAoLESLo`@~Ri|PrQ4_%QsLjP&Sy@21Co#AgrhSo2PL>|)VHGvNMK>*IEct1Q`bsozRJW0#c-#0i z;6>wcIB~SuqgZ3j{0#=;Uc)n@|LQ9FQ8@ppFKE5P`8)aEv3}FY1LaLw{{`;Xr(nHL zXHxzLWPEBRXd2cHA@UY60M>fSRr<*w5B!cQ2|ydAt!=QTkkRwgurdMwYHW>8gIxp& zbEf3%e1YCDBHe+@oI9X1@+EqWD^`SHj+1YTnNg&nrWV1^Bl7P~WVnS0N$l;g&;e;t zSN0(o?nCUe-a`hig6kHT}Rl`eo{}~de*I4QLY3?f#;Gg)yFNNW=mkYzg(C~=hJX8{} z=27^l&3pTmAMH@}mIjExWL`o?KPr+4Il)=wy&*fx02UYz!pJXAD;;(f0cL3kDD z9;&iYyg5F13&uFu&A}7@JMA5Y2lt3mEYu1P-h}Hd3oC7GUK4@0%w~KjKP;0BW4DQ- zwQh$eCddHS;VbZblIyG-=kI?Z0vH2R-yMDlXaW+7RYV2O&pJQ>CF=$P6KC*3-`}w# z77e%n+-4PQJ0}l{wd;vBWMCrnjQ3>`<}h4uX(%hV;sD-l4oBJx8u&;k6zt4;nX1&= zte$7L7L`-fdUM#qHUc4dpXl5|m4ha1H6J8NykhB_Ppc4!)*X9gM$Q$)-9=+R5F=2M zyLp5SZ@676J%t&mbMWN{HUb-Qkgzm0Wb1?V-mfitX#uOeg@6f;zatQOb`o@AfdUyV zxwR;Wa$CDdH^ASs(rV!=?M>mtyCf^h`LC`75Xz_sG@|FIw|XGS>u5$UW8CA=J4_KWH@S#Bocoh zAa`fdZy1#s=>}Tx_@}lUpx~DF;3``}Sd%vB- zWUWnIFsL?m5rb{^ct(6?3zUNXs8inFj!&j}Bj3#SG}J!^t#6f-W=wvmTSVSFv2@Cr zm;Y+&bdBUu-iE>IArE8B9>CN(^JBCaH1({d}k=}~V=D(+_g_GmIr!KZatgf@^w$S0bFwz^Va zWs=M4M;aS+fALX{cB~zF9VV&GGKL)coc@&PN$nZ~fZQE$X z-of%6&Z`gLuBvU|XcVz@##7=V{=@Geolq6LY+nHGtkGqp8D`1I+Dc}^)7%TYYLg=g zEZe^~Y*{qrath|4(O4kMV0>>+rQUDgQo~Z4wgqKS(}XfN>?U#>5f705Ypm!;Vg0AR znl*qPeAm&#z6a;c_1nMeo8$ZQw@)m+RvZv+95|b_rhFe%k8n^vwtkX%c441I3&{5t zIUwH+Va68JmS33*#hE%ym>|dNC(y6weNQUW1?>=^&j%T=G|+GtS>Tpw>{EEb3YW54 zUp%9B?nySlDNJ}#-+T~X`@l%j(Dk91J_pNPuAKyUhr(?Imn)rbROnHsOlSf2HZK z77>uGU&S5|O|~PX$GWTp;tM|RK^|WED)af~*lTd~whfKWdt-6T;|*@Dx55&R)gXGT zB=oFxt}6Nejhs*L!iV_Z)a{*6VQG-s{L7CIjOH~$+NLPWuaid*@1RecsSoqB(hFw? z^}qY}3DsxH3m}wZILE0>><~TA1aML-hEU4T{#9Y2`T_Q;;*^2(PS~*i9ziJOVh0*7 zF8Lne2p~I&z41?oDSQrk0Eab8Hn-aOmKXpQ4B4_zvp@9*naLgT@TRXL$1Hf};4D*8ZYiwvs?71BFUs=tiDJlwla~Hfi)h z8WpEAxyKA6!7w*%cjl35lPSBsbaZmxQ$rE2#^o7|+_sZEAbiv{+$Uyo zPHLS&@$jcJjPo;;|9vZRLu-#re9E~EN}uq1ld=`(dgA9(0Iq8Vu(wGeirhv(_{jpS zUy_KF)~S1nNnw>fwpRH-<6g`=ZN6uhplV->&$j;Zup*`=fU{0A2X^3WE@Rz~3kum7 z$$e7M=iE)kA<*R|wx6R4^^+4~SA@1G9EjY4C8N%o zSk|m!Shh?=OIU*kf6zNo4Pg1G;swM4TEO0X>nG2~Fk!}`iu{z8mG*MncvkJ+<21K1 zD+B`IQZT#`j9gi1XY>hE+NHzP`9_klxX-nGb*HufprLL@0?E|}p#F%y7H+%*;IG)v z)VV^jFKG7-MtpPlO{rJ1mMb3p6&t_3&kLZex!0e^^|fyfUk3oMs{=$;kF6YXyuQ=}8bU-^tA0>4YUTEz`{LvwW)r*MXGq z5!lap>GS25p|!R-1&mRur6xbv6#y6(t;5hN{8Na1Lk9GAV$wKmDiM-vW_F4MRKa7g z@`tsR#V@wl4VSwYosQt-zUK-Mj}vJRnUat46!R=lsVy6$*F8Gux$!#GtR8ahtS*Ot zv{EaUpjZ|;K8Dr*X_BGs$ZKp1SI#?V;xMHFAX*vxG(*gFt>*zKR{&u)6?zvXtQJAT z#pZ|}06^!K$afdq17@X%p8pflxYFQ+5JIviV z9Tg8##kw!_Bo@JMMj=*$sBKpzYTSs5a5egf8y+D0Eb7zo&CU2RJQe!Mj1Uq8e86yE zr|ANP1-l27^N7ew7`*uc7NtsR7eC!L2%r0u=x)Cm9x~}o>sV(y8=p#nHygj(vYy3h z{=OA?2ie<^Xt$&JYS2x`hV@(oi=Z_t+@TKBkD7U$8mz zwz!FX)A7^;z~(yI8w{2%#l#Yf?Oqj38H)Rqj_+Cuz>Ut^r8;qa7B!b>nNdY8Q}KN^ zNSTlMXsR#uFDsO8eClEB82%#ue90|jG*Se)b4CzkjFb;MBo{A)f|f0kh`R#mWyKKV zW*O?7`~^TssFlBX+2zF(wQoB+1VzXyDGY<<7J4U&V*^PO+b z0vT|;rABa4p=E%W$u^F>b2Y=`cLScc2}m0uewzQrC0v!R#*eX&@N#@@<4?wUI)xM+ zU*P~_>$}#Ov1NKU)^SQ~d$XW9&$jN2jr1!Q$C3cir6n7(GO}xBm+>Wo(-ENG$WR%T zZKSf^y@Eh(B`2$$XK-_cA#%D0*STOl_xJ7JN1hk!@n-3jrD$ju|uJ~Hs+hkf8Jruaz$xh1u##Q z8gPC2M2z9-Ph8k_O!4Nh0r8yD_%iT3d3!uJN8x{Xa=(*x2z4H205hm=lKX!ChMoJy z$wB6U2m_pl!dv*9ukruWrtT8>vG&lpA|L@#f$QT_{2xXLp7Sy%bRJzFG!OR+^Sh-2 z7ChfdncvvbJ<^-AqwQr&0MhM)VQ^EBp+G>l7*$>Wz;PnF*bt@xIzAy4L=(J@EkH zwGutgMg`OY2zEkmxVcStHn=ECf#|4bfHuLv*l>=Q$MxuOzjt9bk_>+#FB#1Z>@G0j z2{k=`t=tyU9eB1Knq(MY_SQf#vkN5@Md5lFdr(#RD4+C5Kt?EkYBAtr;UrgM!nHTA zV>zoy7Da7c0m_@qLDY0ZDk+;1!svI4A68;jleRUGe1if4#Etfv8kmmi(a;j}2pmJ? zSN?L(gQr7K!f6j=Z;Z#9bZ;60X(pvxnZ0~K+?OR-DiBrVl*jrMeCVo-Jowk zB(u%mM9BCou=4);CF8&EfjZ-rCc&9nxqp6rq1Aui+Pnekg-Lt#YD+$UPm==ENWj(9 z(jSXRHuVhF9oZS!y~1f`n|RKD>vVyvzTcl) zG|||)FI>-rbdaqu%)2F*$JETnh{PhuU)#-k&#_f;Nu~h|rRZ9MJw=FQ2S&9*!<=6? zjT|8fc2&0#Ub($?q zZ^Pi7Am;0+$D1Chnr7x_$zFFV)-8#FU{(HpmhG>biKNth91=SlB zQREa;4wux-*R{&twU~Ck$Ipab{h*c+Spm~llle(a$cH21n-EaVEJ$)%+8A2^TR*ax zb@Q$7V}gU)soX1uaBwl}jB|5^xmm0@0%paPnMOm*S28~{b&zW-d~Q2+BO|$j(ck4< z1(4kbIl_qxP+j&u{oB9&ufP1)zy0UG|H~ht&a%_k3WU^OzA!TH$O$}8x85#|^ij~7oKJG{3wLlclS24-L9+t}zHug`sf&z%QB zoOLy}X#1DH{Q0l{_1FLWk3aqG|NhUv{IOiu-}xWk`>%id)1UwCuZAvX53!pzjAQsX zk3Nf2foVPJkQruQicqpzOfO8gGm>bCp7V`ctDYdr)6}&g}kHP7jM*D zn^&YhNB=2-qHckKUbz8CwuP383jkIrvFY3?pn;l4+iKIfr%5iV!PF+{W`LV$Q$t5E-o%5L2zBJrFNF+w;TpHVao zUf;IJP&TFXKc})9Ts{DaBkhY-)&cwM$k5rZKn{Wh*PBy_kPfSq#0U@1A0DS;6=g2~ zagQW$+t?~C)5!I;fDzO3#kr?7f{O60hLH8Ek2}ujGHPD&qXl_-F11mtr3nIOYrxh4 zK|}-x2(*!1mpb4x6Ad6cabTneCX{&;dv96~Hgb(YX4HkClChg@O_B)!I6Y1^==;;d zHj%%7Wo~HgK@elum>x&hS|(x~>>es7evE7eoRONIGkJ`tJ>qr1M(wG`rdP<>z~A+~ zmQ0Sj#toQqtU0EN7c%cMS}U$r6%FrL?n9)Oj_=@O%NZ0*@vkpoxZ&h72jP6 z*uxYOF`@&}A1un zv>Ctt8oFrX)Vy7_R&NfrxO$K3RqEjZx$k)7vT?62zQXBO+VmIJyrK0tg18yh^`%$8 z3{+?M3~GRgh{yhAB`UzVCD&b7vLR$51?X^+d2| zK@`+l)Je22^@|(2BqPvO?zlsPehVcW?E0}Q;-a=V*oTwf z)4p&j#6OX*>+GPNz{L2C4;VC}WML?ZqqF5N! z`xfDB>C5j}jcaJ$rk%G?xtMf`L`1pwKu>E52X{|p5H?^>oMjB}+0vK?QPw!t;YScA zh8NhZ<8|#CA1q4Gy-IM1FEzd&Rl)k+wB_@4R$a2!>Y>PHeZ=VgA68z;GAdiiom6T zmQfY2T0h}QE2}V)5wV{7Ub8cM{?%0OqiFn7--nuK^xXanY3C*TH`07zbiFY6dwm~X z?~2ZQ(xbDq;bOU2%}yawlVS{+1;6laf$J9ZbGlTEm>@s1PC;_UxJal)QzHlf!N>SA zVXc9WzGkH}ZNNQC?^J#y!ze)HB|C%tGrKw!i2*49&@592vVe0fyWS;;s~L{;nVgIx zXpv@SYemHnUBjRzOjFaU+9@hJk+cXi(O>+%S^I#;BP{OX6}GnPE+Ezw-UAiPp!=Vy zb;Vr^o^SFPvwcE_D>VIzJ>TNqE5`m6HeZDiZ;E_#cpBr3E`wXS-Tpkr9QEruzW+5( z-=505pSfz5?(L};FF)dxACn!8&*QGRLuTSv=8to_3T`elAg3@OqP1b5iVx2-CieMQ zw|F}C_PM_dC~sQ9i|BpwRAO=$QY=M5&95TF}o{?ok7g4H-ZAVGQQT~sru?~HgZ1rb$Ky@8?UV)Mw#{2avKRoNmss4x=Sa>l1+7MfLAhho;Rk#eMwwk^MG=J`ZqyjA4Z}Y~J33ct zFfr~2=2{3q_d_o4vRR0>K`1iJiRpb34YlmBns_wJAk9M90k(uMh;`C@z}b**+wQDe zPQ8^VjbWJ?7cMig@r@KB3SF2ZM1lCt$tgNo1XUqBkt@Lru4gaf2{c3RIyG3jTST6~ zgLkYH$xPa83&vYxh>ya+4Vq~`&8qd2^+y%mwsLG!OF~)fcT#o(W}j|^Kz1qBc_-x` zT`W|g`!P`5HLSGi-N(@w@j__8neaN;iUBUcGjbLpvIF#~R9bxPC1KICuNopyBPCG$ z=y(nOC`->b(Wv>3e%JI!_>8rPQ$mxQU!|w>v&r=7Sxh*R;D}6x4sMTG$J~QODwU9( z_5kz-h>FF1$Jq{T9#}F-%q{4kizD5g_`som74>nimowq?#EnTdq*^__ zn_lc`_)IqtKZT`d%vjTWQ!AOi$D+#?Ft-S@bFhoY$ujfWcJ-x5Q3B4kjxtI=-)Eqs zH#xkCB#6ItKFa&3LMb@SK2?B^&37!fxqE&wm_$D{-<$*D1fu73BhrM}Pg0&{onlC^ zHak2`(6h&L>;BT$%(czKTjXGxVMbSr(7}Iy3EmB+2As)Y@Fc5S$CO-_GT|T z)7C>Geq)TyF}1VlqNyd*Ga{8DXV4&at&uAxVp5D&i8KF}Fj9`dVm{aliKS9@s;t>2 zKBK@8%8(T4zd`d~ZEZga??3e&s+x5Gec*m6Vb&4NyN~CD7wqrn0seL0SrY@Iw^klB zV)IAq$hZwa&Ne9wZ@yS|rq195p-hNC8>2mtpK%}9OuI7k1V7Qr_u#o{*U+Y47tHz) zJHZtBfLrgBko^Rc4!6C(Bl=x%2%p<9VL<*^Rj5A+VTI(MhlP~@E(ccd5!ryjm!T3U zDg?nYEU)Y~8paW;R2pbLWK1WB;5fhgyHNfWS<7jiVPLns0`ymi{1xQCg{fEikSm(_ z9|HL>ZQB$s<J^=Pt5 z(3{mzM(EqoCydW9>}bNARH%r8v{6xxcB^ix4twEgXb8ri`>;bHeKs7G=oa0rdsJPe z_`kbdfP5hv!DU+qhQDqcXIKn2WVARmEZN49umIW}v}zkb;C*>;qS2)2AxJ=wCRA1P zhwvuzho0+YDgZ@K(biV9Z@>bAzyQ971UP=UyUk`ow)jz%rtSmclbZDMc3A$-Yl9wW zYDUzpIdTM{8R4GERwXw1R4hesdDVp2UBbToz>&9nv<3gH8ggBo-IxgUCKLfGQ0TBL zvIIse&HjOmP;8)nhzEe;+Y`ZVZGcc9>x}yK&A~24l{3xwm9{sj{ii0-FXPE_n?LTo zY7P3^%?q6~N)#c>fr7N3mWH)88ohWHFc?;xRBK_S%|ec1J^Dz&RYX=^LS+LQ(Ny$f zxqcyzt5zAUBj^=Kg-KcZquMQv!8-C%1$sB#3me;(juww1K{ee*LY`L-5daADWN1`y zo>GG#5i2IO5drkNCmf;+G!X+QL2}?G-NbWALxWpP$1!{gY9a)96i-jQylT!g>lkhl zoQJDvi_aUmC#^^U1J32?5M*$-iP{P+vx`q3M6XxZv?#3JC_j+YTE2GE7AUBpNu_Pm zD8;d-HyyD}fv!0<(i(HEZv$Wx6GWvwY#Z}+ROk)NH_Nr^beU0{tbaa(_WJ+$MbowA z;2L?YEZ?21HCvs#hPC-TDGTO;GF!v6&htuZeGJ_%V9$iOO3Y#;rSxK}35~+|l09HPyM4#@ zwj_e{4bW0K42)Qmbyq|#ggeNlh=5!N`r~7pCpddCP;q*p!Ndb`^hZ4Kaa{kk)bnGA z{-;lUzpBQ9(lxJ9x*<2GwqY>chM}59TCo``58;4m)Zh8OJX=P+{~*E#>mvN4zEx(rHr4Rzi>%jv$c_6>kt-t%L>hAeMSea&_- zj^|WEyI0IuTK9Us)y26A_>9cJYhAA@@MZA4IUzxhvCl&cpyxrDbxrG$&A4E-Pg&4S zvM($TN;|;enU>-CoJxNO`iIOxsGl!3k#QI(nEhiC;Plu0WHLCP>flbJ)ya+@r2T>B z8HR4AE>7BL{=>_F~vm)K`lR6OeF#%Nr&mC2hxw zPhRh!Zuw3nAm;GO(B9s-0`iB2q?RpzLp)6SFYFKeA+U@i#K$eEuRt6H6^z_7_^pQP zmgc6!a;B@-NiRX5vB%`K^bsm{Q@}C3A_SqX7%{(tuOad6-Mx3B?c15@s$WXo1XK#? zxyZ)0IN|)_iG4UsE4Tr-@nT!<3%-yk%sL>Uh@b-!w0Mpf#XXVPk_<80cT@nb0LAlq zA&SFvAFB;p08sMPl~(x$H>WPzkET4{x)?yhb`E1q1rZ_u=y+`%wonFuLaySbW`1Ni zw=)WcOhH%3y54JoFp4ZshQ#Kl3z|Xz(Dum#nv0|W_I<}z@3s^|)0W|1M}<8Qp4Fsr zr3TY}m{tf9;JblPPmXUxv6eze?Mmykf2gN@>zTZ~HHO7@lkow&aG+rN+ zHY1&pbTBNdmG6yEv)=$qR599UXk1KM9!$jPAI1z3V4w}tf#6pnK<_K5Fpdb{&l{z| zkrMU$DZ+S_*nA!J`zUDt)YqxrLA&7wmiONQ;@8jq)!Mh?x8I&XyYa43foU9)5y~DR zXzT+fib`QaDryu1)x@L&mZf5%8N=2~D?=v58ZUzKuAL?tI{J~lv<#j-{n|VgelKSwS zWl0MwN@)6~^y1^X)FUakppP=gs+8LiRUhzBzow8()F`&p_uiuXpHK zYdt;8SObo6k=Q=)jBc->J!AJAKfHawD{%YDzhB8?u5kIQ&ffz*)@6c<*Yv{0 zGSc@0;1bfu1)lyG(sj$jpI?6ZGAP|7WN+6}(LwCtU{k^v=D!Vm(~E-$cANTuYxKAu z%zY?55YJC=H~}&fWfAaUX(wHwbRNcidV%VFW$IkpE!=6x0|WNWWrdg9-=w=ZALMY> z!~}{mo&EoAX)5Oi9^-JZv35^6NHhc4T=tF8mL}$KfX>7_!-~9bD(CIdVobRO+&!8K zMr=PoILvRrDl-*rI?gyp>lo!a`9`nvDY>``iS#4#K|I5EIgx#M?}!d`yDKoL;|+v% zhJyUL?x_nGn_34}_3#3X+XLa~TeaOXJc^V9sgl)bb#xnF>_^0m z6fK04>LvnYHe=sSD?%!a@SqbpSmzeIgMJei0GJT)NuLu`DQXxgxJY8lh4pOftdP(e z%o3`GuU*cNm#wtzU9uZ0&C}p=;4;aU8X>9Fv@HJA)rN_Li79X=O2>HO&;)2|4z&rN4=a>3Ar&o@xDPs=TK zGnpAa=L=Bv)m*8|CDnF`5170ta^qbpP06mK_*PD@&-Oz#3D)O&L8fVHR<4d8vDk$= z?!zgnGz8^*c0n`&d!FgDgW5+|ZY{sZ=(P*`sklriWh$S>WIcw*A2D$OiVa5>W*3%+ zpsPqM6pKDBWF@(wG_3+#i&XFQ^^^Sl3I3i%@D&_fe+K4vOpYzzI9*~# zsPkaK;+9nex($N?;RXh8ONOcY8z8J^(U%YD4#U;5{c|Nf*`$IPM|RK`Ou0$*p+&2M z`%&xqKRnN9&-ZN&)Uwq5G6G;`MxHGi2)}$29q;ag;k&u)(Hf@gVNy0_nTSK|8|e*N z#K$tLZqnXif#eLi4_xFDjgjAE0AWT${ZSwDq^BN`eSy0kkQnRV91(S#;29v{7zc9t zBf@a(m2kd3@0AdL3v!?CJk@!^-K@sj%dgPt=Lky9G`r7r++$O$1_BLcN1h`>Xb9{U zdqMqAPgM7zqt4gQLgsguzo^*X-svixa1md;#4!_;y~Z&)hnL{QK^W+^yjI5P$M3!j zP%l)+YYZFS9+2_qW=9Tx5V0S_cL&4$g|N5>NPVF5;=_aX{SBsbLCy+02h^YRG2D>T znBsssKkDR7s~dk^4X6)Rcb7X*FDxh~fE>a(1Jk=lRZ&y_gBsoJRUWgzYdQ#^WPI52 z*GZ4TMkt=|08Nb*;{uwO@0NSzMcO(fw)$6K8=ACP+pGya(`k^uOkDCB;5&inDuwTWBBRi0b%G!SSAtQXR1R0KQI7zR5&)xUhM7-?z3jW&t5zPhql_(!x9L>u>5Fj zIDqABEm+kD>Ovg|2-Izi>B1rqFe)8+5r>}aWmT~pJ>?9xKD(9>VxC`y6KjkgNBc$a z-ynHn9HjXK7$vgj?18Sy-m{h`xq*-YO`OyplE3lQ#Wm_cTp)@Ov1~*lR&b|aaKfD1 z<9I?GJDxeup>6gZkvJ*Fkfg#FJL;^%us6)CC-hskWMLBbo^3M}3xA8z4h*CNlnK$8 zbob5t@Olt8OjkFcZ#J+A?SOwRS1!od?WZZ*+!Aa+!UJ9g^=cBsBr07i0(pfrzqDCo z0#6GbA#-f`t&2Gi$=uoEF=v;UbG$6}Cx67@?ytja`IcAcX zg}*+mQvE9GbB)_gKXY<-y12Q-+MX<$Hhy7^dD)O-EvojD^xt3T@A6f1Qc|h|I0M=M z_CBdBO;)k9TCy=a*7;a~K4S%*rg+^aB)r=JdI}wByIl;)*WwAA$N}CdP-y|*Rd|&9 zaV_(KG1y#;sREvVk&5> zIh#$yBivE)4Z$a?wY7|C3MytnjTcolwp(<;jkP6Adpnxb2A}y9mN%>$-9T1NK%?BHp<~NR&V0Twtty0h_**uAG z(@RYM2<>0Q8{P8(r;eX^IAZo!mB7XMPyXZ;o`0$y{w)@Lyve%tD~!J;=$~pB1iJ>; zZw_mWr#PnvXG71@ni)d7A)X<-MO#nI|CQS23T{Iw=f<60z)YNv1rFl-&b296eN&gq z5G&5&wAi*m{pRwkNba>Ct}p*GxV|}ltZg-YA%+mQP7Xu!Dw}}UB<3t<66C(4dcJZH zef)S>`#|-BvmZ1vY&!O(@IeV~)VA?kBQr9bYQZPvC3CtDus)AGke(OHIXLf*>VHcn z13|)MEmkD*FzNA7%Vml|p%lOjrA2#vAXsT+bHl<@z|FeXZYLGk<}RQaGvd%mKh9r8 zKcro;piL6oQ1UYY3sHyy$a7E#JsBp0y9&Ow^BnedF!`JgAHs6HKa7iU(DGA7Zq(vY z$StNfD*pfhxMqZ@P0nm^Thh#t&hwL}79aQj0K*J3sP}SJ+BGLp0 zPAIc(37~Vb$zfaG6QMiDsZ9d5tY-YMk1S?wn(~JI1%`e-%V#}9;Fff|FodJt&tvE7 z6eJc0w)^Ih4B@u%F!4BulNR|N=c`vXo^RJ}9QH=q@&`S&W~8|nK&+>?m>`B5a6)xj zTMmHQQ5Y8_Fo-2DTDu`?<-r9sM;PwGJbP3Gs?giw8bN`OBr_FAgVR-u*4`Mpy*Wpi zh`|)Z87~(3-ZU7z8{kc6=}i7@hXOE(uu_{Thd0_0iJ(T{rWV~ zq(>eoc;i#rh0tCSD7kxC2obhe1oT!B6AT`wr?yuI;4e7h>CMqZ^&mQ=W!9Nzp3m`8 z+bsntG6AAYN&pSQZ&i130y|KwtXgl9QFG~(S`BHWHF8xFKEiQkI@lKm&Un??OVFOh7p61_^9H| zVDow1$uUE2-_^hvP@_b7qx&n6TcNT}X`2{GWo8s1oj-HjP=sW5iNtKiz?=e5n}Ty3 zbziDzO=v4FR<&AivG6>@k??FiezE-#EvyB)cc^>=^yM_Uy5~i$?M%g07{`XDNfhRf zmpAeudSQKlT&tT4Ydc86bfwT;XgcF_Z8I4bWc?s_4;D|%NEq4eED8U&VgR^Q*iA=& zui+WYe|44oD3JfuH>T#e4XuIZ2Z#@>uVV|m2i?~h>+JsZ%_ER!7bch4TBQN%nYKnk zOLtfUAh^72R-eHf*%`#nMD`6$T6j>FWD)j)$PTk4i;t{zWa(wU0ovc6lZ3uc6-MsaJu) z+sm(T>Xn>CZ+t3teGNjJ zgL2@6OBqsbWstSg2W%^3u)W`3_<4`3NXB`v{Jc2TeHAz4elY_#xv~7fc_!Zdk_-5s z88T->*KXTwx^-Wxjv_7ydJ1tP8pMWb;7i=vc5q=O$#7Q47dN%3-vM?xby*?yB9PQz zYuzS(Nny;v9S*{as8{~66`Zoa8xHdBU|X;F^aH=my7y{%AsMXX(S zj7l|$X@l+K8U!iri!<&WWe-VU5#bs44zaLzYTdq(-BT_1!q#8^04n0j3rld2eD+jv ziV?-2K9D-d-u7|X;E3jt356x&K>+cMM*P|`;`WY-+#XIw6=5$J9_&{gfLIv|m_WCq zbeip5?)#_%iELKu~>MAPGT@#CXTQ!U}$1V74xV9vWmRd}P zCQsONS~XzE0@s?*$RfG_VGGSShKkNI8-N_uHJ`ko5Y%qpJurxWvN0s|^vKkMmPtjr zQq|hxrhP;}cozx^l!e%Ij@WKabUw@!p&y9yeC8$~mfXXwpWe~*HPq)C&m+PO+zrW% z;Q;sQz+!EQj5Vy-0d2B+u!RbPG@2)lDfR(5bh0Uf z`D`hMIn_r&zJOxag`X1su18|f;=fnL=AuY~BT^`fAp5hwHjk(|Z_Rwe^RaXWR)%Bk z{k~ax26OM-&OA6_Sb72sD^cy{#C5b-H3mL@fxYB{m|{2{+)tN35-*a9_6G5zPfZZ%Tg81Q%fT!>!x54P{;!u?_S z1MmC!i0SFc29Fyz!aLTVt!@O3z%qKXXp~8yJcnd>N5;+w2IP4q9W^S8F6>pg{Y?52 zY!=WhK|GSZ^ZdqO_0yp0d&%pL^E6Cpi%@l^8w>W@X1HatqxETLnL+m04jxnixUUMp zC(R-yczs60AMiaU5&X!1Pt?p`Vxk;ji&vC^hx+;F2TFeQWhY(x3N)SoU$g59xIdj{ z2)_loPtb6J>Q7$T>h3Qn@+wAf>;$s3 zE~_IS)kkxTw}xkK35oB%&>NdfZnFo87j6$ux9#MlItNEb5|`ok!{lZ6{Xh5`8i|U( z0c_sKIbrNTATbSx@!hu%#C%p}v^MQ+nV5d0HpYCBLsu0pn3-H4yPd1zNDCagk#h#e zJ0~;ZoD-IRCyUqf#wdpsoMR>qOvt$fexWy%z}?xy@xVW-x}`6eu?>D1B1AVp6Izr6 zJlxytw3}g&x5k*)Wu1}W@#`Bl0nueI zSOw4DuKDY1Zovan`dSmL_6IT%5(ls~{z^M6I1)`6hQ!TSMVbU@l_Drm!6DOi@K|q+ zSy#DXen2rY6&t&-{E_!C1PHBNc1`Gl90HMPifCkt53T2FNhxj?k6wBuY14X47SJ-; zNOl~~eFs0mkAA>!X_vVBv9*h478(Jxd&&-TpT7-X@O-s#^$* zfNw6PST$S~o=f)ERLk?}u%;(i2BAF&_7WKOzF408Vo3xCk)HuPWU6!i{&@;7+2%ZfH&EL{o#1C z+qebAZsXug#eY>5{3vAqoVTk6!?o>D?+0k__n>^guWthM>)Qq4pCLQ5JqSC)$>X%w z+8}W2M6%iK;HG=vq%CX7Pvpn)XoJNuG=t%hHAR}e0c^Zc>{TUjE39YV6o5{d=A5KY z@c~KboMLu{-%Sbun_X)%?Y`h6y(4hW;IId-;n>yz^oL>4i=(njZd0u35{_$DwIy=ISM(!QZ{pxuse)jc91W+<-*H3CO>IuEAUzS{p6Jysai-^(RQf1vko72 zZ`&H-h5t~kho?=0OQnr*2HwrLRTG3aX3QP?r#fVvAv!>#SpzObA695aMm>JJ-YiLXAT5} z5@=rm#nkW`aX(LK4wrBVSZOL3J-eC~?=5AKk|?F*K3hD)oyeSMNBz1J4wz`7+Y~<9 zkwChgF`0KftEnC_4#E%gUbrQqT+qN(uu&1q-B42r%m<(sl1?tdX66uKK5KIMzynRQs}85WvEw-GUcR&!Iq0Zb2eS&^&BHWOr>9HiWkG+EWoi3n5H zi)8fNbOOj3zrL`m87|a1y3$xUhN%H+=*

SoP}+)0V@mSV1794^}BjwFH;z7aZkH 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 literal 0 HcmV?d00001 diff --git a/docker/forecaster/models/ram_usage_node/regression/model.joblib b/docker/forecaster/models/ram_usage_node/regression/model.joblib new file mode 100644 index 0000000000000000000000000000000000000000..8aa3e8ffc32555b7106354f26f385fd9cb763bfe GIT binary patch literal 309002 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%0Al$%}jj}y{pp>#fOz_zeMCc4%2;!~?DwDGs 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 bPVr~Ht{eDNefjX)kjEVndHhfJ7cc%lDGdZ0 literal 0 HcmV?d00001 diff --git a/docker/forecaster/scalers/scaler_x/features.joblib b/docker/forecaster/scalers/scaler_x/features.joblib new file mode 100644 index 0000000000000000000000000000000000000000..1ce529d812fa57ed3089e195069fc00e1c91cb10 GIT binary patch literal 1223 zcma)6OK;Oa5Vq5#4>xVow@@YE7&sUzEhM&PtKT3U4@INV z*!(3WeHgV!SX_gi7rY0)4-*OtS)XY&06n*jeS{-mbt1%sQHiaif}Muwc0iHt$6n;7 z!5W~*4ls*oY)2YVvM4QYTqCNXoRESI?4X5grXidd8W}K?xmcuV4odC8$i<7KbV>%B zWax|xH_1rVP$gHQ<$x(mjf|QF8Nane%90-$Ym#xvFvU6~6W3XiigodtOjgZVnL}ZO zK$`|}2-Y{&*1^v9%GxTKGH3dIFSd4b*R(m`@2amp-`J_=-WhX5da)z}lK)R;QAFk} zy?Y?PCc?)t$k!s<2&2d+FksLRJ-H(cA-N@+SI4Tt2U)UpKse=W>zoN^%9&0E?aVrJ z&b)Jn7xwxF`t;gB6**An-nnx>nUt0cI+JXFkNP5V!8fm>B5r3}*S|KZ>5;a5O@J%M+KGB?2TU@z)V^v5E$ F^xrLYo?!q0 literal 0 HcmV?d00001 diff --git a/docker/forecaster/scalers/scaler_y/cpu_usage_node.joblib b/docker/forecaster/scalers/scaler_y/cpu_usage_node.joblib new file mode 100644 index 0000000000000000000000000000000000000000..74e86cad607ad3dfd4ec0ca07e23d44243e24745 GIT binary patch literal 1039 zcma)5J8#rL5VkLOc{q=|BmxAHfOH9kA)-kE${`vQlZ$i|T!U8Yz0Iw`UVC?K$VG{i z6nRP8Aoj=~ph2XdMnZ_cKtqK@hbXBjVApqtNDxw{@Q&@7Z@!stcDvZA+E#9IMmz~I zA*0IpMfZXriGa<&%7FdVbG!xrYZ2-DHh7BWd3#m4ij-$4b(qzSa(cuaW_#8yDn;f?lPNN7bRp-+d2)eVl!dhu^S^a!{+6CUxpF|Rn!%15U3zwW>E8EuM`)>Y zt;@=i#mH>ae@o5(fhigYarEY;I{x^fbG@HGV%8g+6{OrJ(mTKXeEs9om;2R!@ZkEH zNS(%;eap%7_gmG@LZ9Dg&M&`RXF?o5!SGdb+xa}ZQSDsr<5fWKnuDj9iy)@@f-JZ< J-5Vu}LZHKcO&=|Ex93Qrih2 zV}h5mEWu~63stNn#7oSBv813MNI#;kOy&9m>AOi^zV~WlPsSG7YhrMGBsyZnn&SGd zXti1!zocb{bw3d{H((G%+aL^~YGFC&nN2XBOP-IEuB{}U@(jWDJnxq%DQo~uWNjosWAb< zE9Yb4RlP-TNh#x<^Uix0yo9# literal 0 HcmV?d00001 diff --git a/docker/forecaster/scalers/scaler_y/ram_usage_node.joblib b/docker/forecaster/scalers/scaler_y/ram_usage_node.joblib new file mode 100644 index 0000000000000000000000000000000000000000..5c6be5433089199da27bd140e3ab272ec4858ac3 GIT binary patch literal 1039 zcma)5&ui2`6i&9=Zkz6}wx~!!J+^|;#Y+XnE`o=KZecyRA~H;}(@iv)WM-1ul?v^l zzhJ*-5fuCrya-mHc}d>;-uK@3X1h38*0t35JbUCL zNU<4F6w%N@jCr_cf-a1q;N?{hufokc4)hTf&&A@7cq$fnWgWpdp$Jfjdq`NCrSAz| zbi$}F4&>>3kvQZtc@%~LV!*>d@VSSf?R&O~lOXDY$a7?M!Dm|PwMi-L-=#2${;oC2 z65H`1V}g&TS%Q~v7phoEh>tTDMv{WQEB%mmWh&QiNxvKS<#)H9dos4Lwj>S@_C;GP zSYuq@60KHi<(IVdVcm>{%?;@L;bRa4P_-~WTVZYygU!5VM#jPHYfu7-eL{4We7xE-5&`3A@N)2ExiQ$XG||Vv}NLLY_X1 zJ=`GUdt{AZ#kgF)m=Nf|;?)RoUWy2dA% zS`r}K@^DGqnmg;xDP7!C?rHaodzKg0kIn!3iTP`C{_gn$_ktSiw9+NBOGn?s(z_ow z1{a5{G+qqUHvPBM;vblzf(V|y|M2?Nx3`1KdH$4IZ!juIEhmzl5@q?`$1lx)@Zjc1 zq)y`9eiPh(aqVYw(8&2sr~J~}H4 Date: Thu, 2 May 2024 09:58:42 +0200 Subject: [PATCH 05/25] Add operator container --- dfaasagent/haproxycfg.tmpl | 19 ++++++++- dfaasoperator.env | 6 +++ docker-compose.yml | 11 +++++ docker/dfaas-operator.dockerfile | 16 ++++++++ docker/files/operator_entrypoint.sh | 62 +++++++++++++++++++++++++++++ 5 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 dfaasoperator.env create mode 100644 docker/dfaas-operator.dockerfile create mode 100644 docker/files/operator_entrypoint.sh diff --git a/dfaasagent/haproxycfg.tmpl b/dfaasagent/haproxycfg.tmpl index a5b211e..3accc4f 100644 --- a/dfaasagent/haproxycfg.tmpl +++ b/dfaasagent/haproxycfg.tmpl @@ -62,12 +62,13 @@ frontend fe_main acl is_path_root path / acl is_path_healthz path /healthz acl is_path_haproxy path_beg /haproxy + acl is_path_system_funcs path /system/functions acl is_path_function path_beg /function/ {{/* Deny requests which are not directed to a function or / (root) or the stats page (note: the root path is needed for health checks by other nodes) or to /healthz */ -}} - http-request deny unless is_path_root or is_path_healthz or is_path_haproxy or is_path_function + http-request deny unless is_path_root or is_path_healthz or is_path_haproxy or is_path_system_funcs or is_path_function {{/* Capture some request headers in log */ -}} http-request capture req.hdr(Host) len 50 @@ -155,6 +156,7 @@ frontend fe_main use_backend be_ok if is_path_root use_backend be_healthz if is_path_healthz + use_backend be_system_funcs if is_path_system_funcs {{range $funcName, $func := .Functions -}} {{/* [NEW] Select backend for request that exeeds limitsIn */ -}} @@ -180,8 +182,23 @@ backend be_ok backend be_healthz {{/* Perform HTTP health checks */ -}} option httpchk GET /healthz + {{/* Enable HTTP connection closing on the server side. This provides the lowest latency + on the client side (slow network) and the fastest session reuse on the server side + to save server resources */ -}} + option http-server-close server healthz {{.HttpServerHost}}:{{.HttpServerPort}} check +{{/* #################### BACKEND FOR MANAGING OPENFAAS FUNCTIONS #################### */ -}} + +backend be_system_funcs + {{/* Perform HTTP health checks */ -}} + option httpchk GET / + {{/* Enable HTTP connection closing on the server side. This provides the lowest latency + on the client side (slow network) and the fastest session reuse on the server side + to save server resources */ -}} + option http-server-close + server system_funcs {{.OpenFaaSHost}}:{{.OpenFaaSPort}} check + {{/* #################### BACKEND FOR SELF OPENFAAS INSTANCE #################### */ -}} backend be_myself diff --git a/dfaasoperator.env b/dfaasoperator.env new file mode 100644 index 0000000..61b8014 --- /dev/null +++ b/dfaasoperator.env @@ -0,0 +1,6 @@ +NODES=172.16.238.10:172.16.238.11:172.16.238.12 +FUNCS_NAMES=figlet +FUNCS_IMAGES=functions/figlet:latest +FUNCS_MAXRATES=30 +OPENFAAS_GATEWAY_USER=admin +OPENFAAS_GATEWAY_PWD=admin diff --git a/docker-compose.yml b/docker-compose.yml index 63291b4..f1cbbe8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -48,6 +48,17 @@ services: networks: p2p-overlay: ipv4_address: 172.16.238.12 + operator: + image: dfaas-operator:latest + build: + context: ./docker + dockerfile: docker/dfaas-operator.dockerfile + env_file: + - dfaasoperator.env + volumes: + - $HOME/vegeta-results:/vegeta-results + networks: + p2p-overlay: networks: p2p-overlay: diff --git a/docker/dfaas-operator.dockerfile b/docker/dfaas-operator.dockerfile new file mode 100644 index 0000000..660ab36 --- /dev/null +++ b/docker/dfaas-operator.dockerfile @@ -0,0 +1,16 @@ +FROM alpine:latest + +RUN apk update && apk add \ + curl \ + wget \ + bash \ + jq + +RUN wget https://github.com/tsenart/vegeta/releases/download/v12.8.4/vegeta_12.8.4_linux_amd64.tar.gz +RUN tar -xf vegeta_12.8.4_linux_amd64.tar.gz && rm vegeta_12.8.4_linux_amd64.tar.gz +RUN mv vegeta /usr/local/bin/ + +WORKDIR / +COPY files/operator_entrypoint.sh ./operator_entrypoint.sh +RUN chmod +x operator_entrypoint.sh +ENTRYPOINT [ "./operator_entrypoint.sh" ] \ No newline at end of file diff --git a/docker/files/operator_entrypoint.sh b/docker/files/operator_entrypoint.sh new file mode 100644 index 0000000..65c8e72 --- /dev/null +++ b/docker/files/operator_entrypoint.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +MAX_TRIES=25 + +IFS=: read -r -a nodes <<< "$NODES" +IFS=: read -r -a funcs_names <<< "$FUNCS_NAMES" +IFS=: read -r -a funcs_images <<< "$FUNCS_IMAGES" +IFS=: read -r -a funcs_maxrates <<< "$FUNCS_MAXRATES" + +for node in "${nodes[@]}" +do + echo -e "Checking if node ${node} is healthy...\n"; + HEALTHZ_ENDPOINT="http://${node}/healthz" + FUNCS_ENDPOINT="http://${OPENFAAS_GATEWAY_USER}:${OPENFAAS_GATEWAY_PWD}@${node}/system/functions" + TRIES=1 + + until [[ "$(curl -s -w '%{http_code}' -o /dev/null ${HEALTHZ_ENDPOINT})" -eq 200 || $TRIES -eq $MAX_TRIES ]] + do + echo -e "Node ${node} not ready yet.\nRetrying health check in 10 seconds...\n"; + sleep 10; + ((TRIES+=1)); + done + + if [[ $TRIES -eq $MAX_TRIES ]] + then + echo -e "Node ${node} is down.\n\n"; + else + echo -e "Deploying functions to node ${node}...\n"; + + for i in "${!funcs_names[@]}" + do + echo -e "Deploying function "${funcs_names[$i]}"...\n"; + if [[ "$(curl -s -w '%{http_code}' -o /dev/null -H "Content-Type: application/json" -X POST -d "{\"service\":\""${funcs_names[$i]}"\",\"image\":\""${funcs_images[$i]}"\",\"labels\":{\"dfaas.maxrate\":\""${funcs_maxrates[$i]}"\"}}" "${FUNCS_ENDPOINT}")" -eq 200 ]] + then + echo -e "Function "${funcs_names[$i]}" successfully deployed to node ${node}.\n"; + else + echo -e "Failed to deploy function "${funcs_names[$i]}" to node ${node}.\n"; + fi + done + fi +done + +export VEGFOLDER="/vegeta-results/$(date +%Y-%m-%d-%H%M%S)" +mkdir -p $VEGFOLDER + +jq -ncM '{method: "GET", url: "http://172.16.238.10/function/figlet", body: "Hello DFaaS world!" | @base64, header: {"Content-Type": ["text/plain"]}}' | \ + vegeta attack -duration=1m -rate=50 -format=json | \ + tee $VEGFOLDER/results.bin | \ + vegeta report -every=200ms + +# Encode results as JSON +cat $VEGFOLDER/results.bin | vegeta encode > $VEGFOLDER/results.json + +# Create plot with vegeta +cat $VEGFOLDER/results.bin | vegeta plot > $VEGFOLDER/plot.html + +# 1st arg: path int results.json +# 2nd arg: path output plot +# 3rd arg: rate req/s used for the attack +#./utils/plot.py $VEGFOLDER/results.json $VEGFOLDER/plot.png 50 + +exit 0; From e908693fcfd4b083cfecb9962e4c1c1561dd6199 Mon Sep 17 00:00:00 2001 From: Stefano Cattaneo Date: Thu, 11 Jul 2024 16:12:38 +0200 Subject: [PATCH 06/25] Implement Node Margin Strategy. Refactoring DFaaSAgent architecture to increase extensibility. (WIP: add test container) --- dfaasagent.env | 13 +- dfaasagent/agent/agent.go | 31 +- dfaasagent/agent/config/config.go | 21 +- dfaasagent/agent/constants/constants.go | 4 + .../{ => agent/groupsreader}/group_list.json | 2 +- dfaasagent/agent/groupsreader/groupsreader.go | 60 ++ .../agent/infogath/forecaster/forecaster.go | 117 ++- .../infogath/forecaster/forecasterutils.go | 56 -- dfaasagent/agent/infogath/offuncs/offuncs.go | 57 +- dfaasagent/agent/logic/dbglogging.go | 131 ++- dfaasagent/agent/logic/hacfgtypes.go | 92 ++ dfaasagent/agent/logic/haproxycfgnms.tmpl | 150 ++++ .../logic/haproxycfgrecalc.tmpl} | 20 +- dfaasagent/agent/logic/haupd.go | 147 ---- dfaasagent/agent/logic/logic.go | 145 ++-- dfaasagent/agent/logic/msgtypes.go | 54 +- dfaasagent/agent/logic/nodemarginstrategy.go | 798 ++++++++++++++++++ dfaasagent/agent/logic/recalc.go | 504 ----------- dfaasagent/agent/logic/recalcstrategy.go | 681 +++++++++++++++ dfaasagent/agent/logic/reception.go | 86 -- dfaasagent/agent/logic/strategyfactory.go | 109 +++ dfaasagent/agent/nodestbl/init.go | 18 + dfaasagent/agent/nodestbl/nodestbl.go | 170 ---- dfaasagent/agent/nodestbl/nodestblnms.go | 106 +++ dfaasagent/agent/nodestbl/nodestblrecalc.go | 102 +++ dfaasoperator.env | 5 +- docker/dfaas-node.dockerfile | 5 +- docker/files/operator_entrypoint.sh | 5 +- 28 files changed, 2584 insertions(+), 1105 deletions(-) rename dfaasagent/{ => agent/groupsreader}/group_list.json (56%) create mode 100644 dfaasagent/agent/groupsreader/groupsreader.go delete mode 100644 dfaasagent/agent/infogath/forecaster/forecasterutils.go create mode 100644 dfaasagent/agent/logic/hacfgtypes.go create mode 100644 dfaasagent/agent/logic/haproxycfgnms.tmpl rename dfaasagent/{haproxycfg.tmpl => agent/logic/haproxycfgrecalc.tmpl} (93%) delete mode 100644 dfaasagent/agent/logic/haupd.go create mode 100644 dfaasagent/agent/logic/nodemarginstrategy.go delete mode 100644 dfaasagent/agent/logic/recalc.go create mode 100644 dfaasagent/agent/logic/recalcstrategy.go delete mode 100644 dfaasagent/agent/logic/reception.go create mode 100644 dfaasagent/agent/logic/strategyfactory.go create mode 100644 dfaasagent/agent/nodestbl/init.go delete mode 100644 dfaasagent/agent/nodestbl/nodestbl.go create mode 100644 dfaasagent/agent/nodestbl/nodestblnms.go create mode 100644 dfaasagent/agent/nodestbl/nodestblrecalc.go diff --git a/dfaasagent.env b/dfaasagent.env index 4d8a6bc..2c3c210 100644 --- a/dfaasagent.env +++ b/dfaasagent.env @@ -17,7 +17,8 @@ AGENT_PUBSUB_TOPIC="/dfaasagent/1.0.0" AGENT_RECALC_PERIOD=1m -AGENT_HAPROXY_TEMPLATE_FILE="/agent/haproxycfg.tmpl" +AGENT_HAPROXY_TEMPLATE_FILE_NMS="/agent/haproxycfgnms.tmpl" +AGENT_HAPROXY_TEMPLATE_FILE_RECALC="/agent/haproxycfgrecalc.tmpl" AGENT_HAPROXY_CONFIG_FILE="/etc/haproxy/haproxy.cfg" AGENT_HAPROXY_CONFIG_UPDATE_COMMAND="/usr/bin/systemctl restart haproxy.service" AGENT_HAPROXY_HOST=127.0.0.1 @@ -38,6 +39,12 @@ AGENT_HTTPSERVER_PORT=8008 AGENT_FORECASTER_HOST=127.0.0.1 AGENT_FORECASTER_PORT=8000 -AGENT_GROUP_LIST_FILE_PATH="/agent/group_list.json" +AGENT_STRATEGY="nodemarginstrategy" -AGENT_NODE_TYPE=1 # heavy=0 mid=1 light=2 \ No newline at end of file +AGENT_GROUP_LIST_FILE_NAME="/agent/group_list.json" + +AGENT_NODE_TYPE=1 # heavy=0 mid=1 light=2 + +AGENT_NMS_CPU_THRESHOLD=120.0 # max cpu usage percentage +AGENT_NMS_RAM_THRESHOLD=5500000000.0 # max ram usage in bytes +AGENT_NMS_POWER_THRESHOLD=2100000.0 # max power usage in microwatts \ No newline at end of file diff --git a/dfaasagent/agent/agent.go b/dfaasagent/agent/agent.go index ba785eb..fa490d1 100644 --- a/dfaasagent/agent/agent.go +++ b/dfaasagent/agent/agent.go @@ -18,12 +18,14 @@ import ( "github.com/libp2p/go-libp2p-core/host" "github.com/pkg/errors" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/communication" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/groupsreader" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/discovery/kademlia" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/discovery/mdns" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/logging" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/logic" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/utils/maddrhelp" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/httpserver" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/nodestbl" ) //////////////////// PRIVATE VARIABLES //////////////////// @@ -125,11 +127,27 @@ func runAgent(config config.Configuration) error { logger.Info(" ", i+1, ". ", addr) } + ////////// GROUPSREADER INITIALIZATION ////////// + + groupsreader.Initialize(config) + + ////////// LOGIC INITIALIZATION ////////// + + logic.Initialize(_p2pHost, config) + + // Get the Strategy instance (which is a singleton) of type + // dependent on the strategy specified in the configuration + var strategy logic.Strategy + strategy, err = logic.GetStrategyInstance() + if err != nil { + return errors.Wrap(err, "Error while getting strategy instance") + } + ////////// PUBSUB INITIALIZATION ////////// // The PubSub initialization must be done before the Kademlia one. Otherwise // the agent won't be able to publish or subscribe. - err = communication.Initialize(ctx, _p2pHost, config.PubSubTopic, logic.OnReceived) + err = communication.Initialize(ctx, _p2pHost, config.PubSubTopic, strategy.OnReceived) if err != nil { return err } @@ -163,14 +181,11 @@ func runAgent(config config.Configuration) error { logger.Debug("mDNS discovery service is enabled and initialized") } - ////////// LOGIC INITIALIZATION ////////// + ////////// NODESTBL INITIALIZATION ////////// - err = logic.Initialize(_p2pHost, config) - if err != nil { - return err - } + nodestbl.Initialize(config) - ////////// HTTP SERVER INITIALIZATION ////////// + ////////// HTTPSERVER INITIALIZATION ////////// httpserver.Initialize(config) @@ -190,7 +205,7 @@ func runAgent(config config.Configuration) error { go func() { chanErr <- communication.RunReceiver() }() - go func() { chanErr <- logic.RunRecalc() }() + go func() { chanErr <- strategy.RunStrategy() }() go func() { chanErr <- httpserver.RunHttpServer() }() diff --git a/dfaasagent/agent/config/config.go b/dfaasagent/agent/config/config.go index d2bbc2b..4298ac3 100644 --- a/dfaasagent/agent/config/config.go +++ b/dfaasagent/agent/config/config.go @@ -30,12 +30,13 @@ type Configuration struct { RecalcPeriod time.Duration `mapstructure:"AGENT_RECALC_PERIOD"` - HAPRoxyTemplateFile string `mapstructure:"AGENT_HAPROXY_TEMPLATE_FILE"` - HAProxyConfigFile string `mapstructure:"AGENT_HAPROXY_CONFIG_FILE"` - HAProxyConfigUpdateCommand string `mapstructure:"AGENT_HAPROXY_CONFIG_UPDATE_COMMAND"` - HAProxyHost string `mapstructure:"AGENT_HAPROXY_HOST"` - HAProxyPort uint `mapstructure:"AGENT_HAPROXY_PORT"` - HAProxySockPath string `mapstructure:"AGENT_HAPROXY_SOCK_PATH"` + HAProxyTemplateFileNMS string `mapstructure:"AGENT_HAPROXY_TEMPLATE_FILE_NMS"` + HAProxyTemplateFileRecalc string `mapstructure:"AGENT_HAPROXY_TEMPLATE_FILE_RECALC"` + HAProxyConfigFile string `mapstructure:"AGENT_HAPROXY_CONFIG_FILE"` + HAProxyConfigUpdateCommand string `mapstructure:"AGENT_HAPROXY_CONFIG_UPDATE_COMMAND"` + HAProxyHost string `mapstructure:"AGENT_HAPROXY_HOST"` + HAProxyPort uint `mapstructure:"AGENT_HAPROXY_PORT"` + HAProxySockPath string `mapstructure:"AGENT_HAPROXY_SOCK_PATH"` OpenFaaSHost string `mapstructure:"AGENT_OPENFAAS_HOST"` OpenFaaSPort uint `mapstructure:"AGENT_OPENFAAS_PORT"` @@ -51,9 +52,15 @@ type Configuration struct { ForecasterHost string `mapstructure:"AGENT_FORECASTER_HOST"` ForecasterPort uint `mapstructure:"AGENT_FORECASTER_PORT"` - GroupListFilePath string `mapstructure:"AGENT_GROUP_LIST_FILE_PATH"` + Strategy string `mapstructure:"AGENT_STRATEGY"` + + GroupListFileName string `mapstructure:"AGENT_GROUP_LIST_FILE_NAME"` NodeType int `mapstructure:"AGENT_NODE_TYPE"` + + CPUThresholdNMS float64 `mapstructure:"AGENT_NMS_CPU_THRESHOLD"` + RAMThresholdNMS float64 `mapstructure:"AGENT_NMS_RAM_THRESHOLD"` + PowerThresholdNMS float64 `mapstructure:"AGENT_NMS_POWER_THRESHOLD"` } func LoadConfig(path string) (config Configuration, err error) { diff --git a/dfaasagent/agent/constants/constants.go b/dfaasagent/agent/constants/constants.go index fccbd9a..56af8f2 100644 --- a/dfaasagent/agent/constants/constants.go +++ b/dfaasagent/agent/constants/constants.go @@ -6,4 +6,8 @@ const ( // HAProxyMaxWeight is the maximum possible weight value that should be used // in the HAProxy configuration file HAProxyMaxWeight = 100 + + // Names of the different strategies supported by the DFaaS agent + RecalcStrategy = "recalcstrategy" + NodeMarginStrategy = "nodemarginstrategy" ) diff --git a/dfaasagent/group_list.json b/dfaasagent/agent/groupsreader/group_list.json similarity index 56% rename from dfaasagent/group_list.json rename to dfaasagent/agent/groupsreader/group_list.json index ea9515a..57f5e3b 100644 --- a/dfaasagent/group_list.json +++ b/dfaasagent/agent/groupsreader/group_list.json @@ -1 +1 @@ -{"HIGH_USAGE": ["eat-memory", "nmap"], "LOW_USAGE": ["env", "figlet", "shasum"], "MEDIUM_USAGE": ["curl", "ocr"]} \ No newline at end of file +{"HIGH_USAGE": ["eat-memory", "nmap"], "LOW_USAGE": ["env", "figlet", "shasum"], "MEDIUM_USAGE": ["curl"]} \ No newline at end of file diff --git a/dfaasagent/agent/groupsreader/groupsreader.go b/dfaasagent/agent/groupsreader/groupsreader.go new file mode 100644 index 0000000..76c0cb0 --- /dev/null +++ b/dfaasagent/agent/groupsreader/groupsreader.go @@ -0,0 +1,60 @@ +package groupsreader + +import ( + "encoding/json" + "os" + "io/ioutil" + + "github.com/pkg/errors" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/config" +) + +// This package is used to read function groups from the group_list.json file, +// where, for each group (high usage, medium usage, low usage), there is a list +// of functions belonging to that group + +//////////////////// MAIN PRIVATE VARS AND INIT FUNCTION //////////////////// + +var _config config.Configuration + +// Initialize initializes this package +func Initialize(config config.Configuration) { + _config = config +} + +//////////////////// PUBLIC STRUCT TYPES //////////////////// + +// Struct to read functions groups from group_list.json +type Groups struct { + // Array of high usage functions + HighUsage []string `json:"HIGH_USAGE"` + // Array of medium usage functions + MediumUsage []string `json:"MEDIUM_USAGE"` + // Array of low usage functions + LowUsage []string `json:"LOW_USAGE"` +} + +//////////////////// PUBLIC METHODS //////////////////// + +// GetFuncsGroups reads from the group_list.json file specified in the configuration +// the functions groups, returning them in a variable of type Groups. +func GetFuncsGroups() (Groups, error) { + groupListFile := _config.GroupListFileName + jsonGroupsFile, err := os.Open(groupListFile) + if err != nil { + return Groups{}, errors.Wrap(err, "Error while reading group list json file") + } + jsonGroups, err := ioutil.ReadAll(jsonGroupsFile) + if err != nil { + return Groups{}, errors.Wrap(err, "Error while converting group list json file into byte array") + } + defer jsonGroupsFile.Close() + + var functionGroups Groups + err = json.Unmarshal(jsonGroups, &functionGroups) + if err != nil { + return Groups{}, errors.Wrap(err, "Error while converting json groups") + } + + return functionGroups, nil +} diff --git a/dfaasagent/agent/infogath/forecaster/forecaster.go b/dfaasagent/agent/infogath/forecaster/forecaster.go index f203e31..1b658b8 100644 --- a/dfaasagent/agent/infogath/forecaster/forecaster.go +++ b/dfaasagent/agent/infogath/forecaster/forecaster.go @@ -5,10 +5,33 @@ import ( "io/ioutil" "net/http" "strings" + "encoding/json" "github.com/pkg/errors" ) -// Package for sending requests to Forecaster to get predictions about the usage of the node. +// Package for sending requests to Forecaster to get predictions about the usage metrics of the node (e.g. CPU, RAM, power consumption). + +// Available endpoints on Forecaster +const root_endpoint = "" +const node_usage_endpoint = "node_usage" +const cpu_usage_endpoint = "cpu_usage_node" +const ram_usage_endpoint = "ram_usage_node" +const power_usage_endpoint = "power_usage_node" + +// Struct for a request to Forecaster to predict node metrics +type NodeMetricPredReq struct { + Rate_group_HIGH_USAGE float64 `json:"rate_group_HIGH_USAGE"` + Rate_group_LOW_USAGE float64 `json:"rate_group_LOW_USAGE"` + Rate_group_MEDIUM_USAGE float64 `json:"rate_group_MEDIUM_USAGE"` + Node_type int `json:"node_type"` +} + +// Struct for the node metrics prediction response from Forecaster +type NodeMetricPredRes struct { + Cpu_usage_node float64 `json:"cpu_usage_node"` + Ram_usage_node float64 `json:"ram_usage_node"` + Power_usage_node float64 `json:"power_usage_node"` +} // Client for gathering information from the Forecaster type Client struct { @@ -52,26 +75,98 @@ func (client *Client) doRequest(payload string, endpoint string) (string, error) ///////////////// PUBLIC INTERFACE ///////////////////// // Function to retrieve all the node usage predictions (RAM usage, power usage, CPU usage) -func (client *Client) GetNodeUsagePredictions(funcsGroupsLoadInfo string) (string, error) { - return client.doRequest(funcsGroupsLoadInfo, node_usage_endpoint) +func (client *Client) GetNodeUsagePredictions(request NodeMetricPredReq) (NodeMetricPredRes, error) { + jsonBody, err := json.Marshal(request) + if err != nil { + return NodeMetricPredRes{}, errors.Wrap(err, "Error while constructing json request to Forecaster") + } + jsonBodyStr := string(jsonBody) + + var jsonResp string + jsonResp, err = client.doRequest(jsonBodyStr, node_usage_endpoint) + if err != nil { + return NodeMetricPredRes{}, errors.Wrap(err, "Error while executing request to Forecaster") + } + + var predictionsResponse []NodeMetricPredRes + err = json.Unmarshal([]byte(jsonResp), &predictionsResponse) + if err != nil { + return NodeMetricPredRes{}, errors.Wrap(err, "Error while converting json response from Forecaster") + } + + return predictionsResponse[0], nil } // Function to retrieve the CPU usage prediction of the node -func (client *Client) GetCPUUsageNodePredictions(funcsGroupsLoadInfo string) (string, error) { - return client.doRequest(funcsGroupsLoadInfo, cpu_usage_endpoint) +func (client *Client) GetCPUUsageNodePredictions(request NodeMetricPredReq) (NodeMetricPredRes, error) { + jsonBody, err := json.Marshal(request) + if err != nil { + return NodeMetricPredRes{}, errors.Wrap(err, "Error while constructing json request to Forecaster") + } + jsonBodyStr := string(jsonBody) + + var jsonResp string + jsonResp, err = client.doRequest(jsonBodyStr, cpu_usage_endpoint) + if err != nil { + return NodeMetricPredRes{}, errors.Wrap(err, "Error while executing request to Forecaster") + } + + var predictionsResponse []NodeMetricPredRes + err = json.Unmarshal([]byte(jsonResp), &predictionsResponse) + if err != nil { + return NodeMetricPredRes{}, errors.Wrap(err, "Error while converting json response from Forecaster") + } + + return predictionsResponse[0], nil } // Function to retrieve the RAM usage prediction of the node -func (client *Client) GetRAMUsageNodePredictions(funcsGroupsLoadInfo string) (string, error) { - return client.doRequest(funcsGroupsLoadInfo, ram_usage_endpoint) +func (client *Client) GetRAMUsageNodePredictions(request NodeMetricPredReq) (NodeMetricPredRes, error) { + jsonBody, err := json.Marshal(request) + if err != nil { + return NodeMetricPredRes{}, errors.Wrap(err, "Error while constructing json request to Forecaster") + } + jsonBodyStr := string(jsonBody) + + var jsonResp string + jsonResp, err = client.doRequest(jsonBodyStr, ram_usage_endpoint) + if err != nil { + return NodeMetricPredRes{}, errors.Wrap(err, "Error while executing request to Forecaster") + } + + var predictionsResponse []NodeMetricPredRes + err = json.Unmarshal([]byte(jsonResp), &predictionsResponse) + if err != nil { + return NodeMetricPredRes{}, errors.Wrap(err, "Error while converting json response from Forecaster") + } + + return predictionsResponse[0], nil } // Function to retrieve the power usage prediction of the node -func (client *Client) GetPowerUsageNodePredictions(funcsGroupsLoadInfo string) (string, error) { - return client.doRequest(funcsGroupsLoadInfo, power_usage_endpoint) +func (client *Client) GetPowerUsageNodePredictions(request NodeMetricPredReq) (NodeMetricPredRes, error) { + jsonBody, err := json.Marshal(request) + if err != nil { + return NodeMetricPredRes{}, errors.Wrap(err, "Error while constructing json request to Forecaster") + } + jsonBodyStr := string(jsonBody) + + var jsonResp string + jsonResp, err = client.doRequest(jsonBodyStr, power_usage_endpoint) + if err != nil { + return NodeMetricPredRes{}, errors.Wrap(err, "Error while executing request to Forecaster") + } + + var predictionsResponse []NodeMetricPredRes + err = json.Unmarshal([]byte(jsonResp), &predictionsResponse) + if err != nil { + return NodeMetricPredRes{}, errors.Wrap(err, "Error while converting json response from Forecaster") + } + + return predictionsResponse[0], nil } -// Function to check if server is healthy +// Function to check if Forecaster server is healthy func (client *Client) HealthCheck() (string, error) { return client.doRequest("", root_endpoint) -} \ No newline at end of file +} diff --git a/dfaasagent/agent/infogath/forecaster/forecasterutils.go b/dfaasagent/agent/infogath/forecaster/forecasterutils.go deleted file mode 100644 index 0eea685..0000000 --- a/dfaasagent/agent/infogath/forecaster/forecasterutils.go +++ /dev/null @@ -1,56 +0,0 @@ -package forecaster - -import ( - "strings" -) - -// Available endpoints on Forecaster -const root_endpoint = "" -const node_usage_endpoint = "node_usage" -const cpu_usage_endpoint = "cpu_usage_node" -const ram_usage_endpoint = "ram_usage_node" -const power_usage_endpoint = "power_usage_node" - -// Struct to read functions groups from group_list.json -type Groups struct { - HighUsage []string `json:"HIGH_USAGE"` - MediumUsage []string `json:"MEDIUM_USAGE"` - LowUsage []string `json:"LOW_USAGE"` -} - -// Struct for a request to Forecaster -type PredictionRequest struct { - Rate_group_HIGH_USAGE float64 `json:"rate_group_HIGH_USAGE"` - Rate_group_LOW_USAGE float64 `json:"rate_group_LOW_USAGE"` - Rate_group_MEDIUM_USAGE float64 `json:"rate_group_MEDIUM_USAGE"` - Node_type int `json:"node_type"` -} - -// Utility function used to check if a certain function is contained in a functions group -func contains(s []string, str string) bool { - for _, v := range s { - if v == str { - return true - } - } - - return false -} - -// Transform functions rates in functions groups rates -func SetRequestGroupsRates(funcRates map[string]float64, funcGroups Groups, req *PredictionRequest) { - req.Rate_group_HIGH_USAGE = 0 - req.Rate_group_LOW_USAGE = 0 - req.Rate_group_MEDIUM_USAGE = 0 - - for funcName, rate := range funcRates { - clearFuncName := strings.ReplaceAll(funcName, ".openfaas-fn", "") - if contains(funcGroups.HighUsage, clearFuncName) { - req.Rate_group_HIGH_USAGE += rate - } else if contains(funcGroups.MediumUsage, clearFuncName) { - req.Rate_group_MEDIUM_USAGE += rate - } else if contains(funcGroups.LowUsage, clearFuncName) { - req.Rate_group_LOW_USAGE += rate - } - } -} diff --git a/dfaasagent/agent/infogath/offuncs/offuncs.go b/dfaasagent/agent/infogath/offuncs/offuncs.go index 1e34ceb..e635481 100644 --- a/dfaasagent/agent/infogath/offuncs/offuncs.go +++ b/dfaasagent/agent/infogath/offuncs/offuncs.go @@ -95,15 +95,21 @@ import ( ] */ -// funcsResponse is the structure of a response from "/system/functions". This -// contains only the relevant attributes (it is incomplete) -type funcsResponse []struct { +// funcsMaxRatesResponse is the structure of a response from "/system/functions". This +// contains only the relevant attributes (it is incomplete). It is used for "recalc" algorithm +type funcsMaxRatesResponse []struct { Name string `json:"name"` Labels struct { MaxRate string `json:"dfaas.maxrate"` } `json:"labels"` } +// funcsNamesResponse is the structure of a response from "/system/functions". This +// contains only the function names (it is incomplete) +type funcsNamesResponse []struct { + Name string `json:"name"` +} + // Client for gathering information from OpenFaaS type Client struct { Hostname string @@ -112,11 +118,13 @@ type Client struct { Password string } -// GetFuncs returns the functions list as a map[string]uint of function names -// and dfaas.maxrate values. The hostnameAndPort parameter can be like +////////////////////////////////// PRIVATE FUNCTIONS //////////////////////////////// + +// doFuncsRequest gets info about functions from "/system/functions". +// The hostnameAndPort parameter can be like // "myhostname:8080" or "myhostname" (implicit port 80) "192.168.15.101:8080" // (specifying the IP address) -func (client *Client) GetFuncs() (map[string]uint, error) { +func (client *Client) doFuncsRequest() ([]byte, error) { strURL := fmt.Sprintf( "http://%s:%s@%s:%d/system/functions", client.Username, @@ -136,7 +144,20 @@ func (client *Client) GetFuncs() (map[string]uint, error) { return nil, errors.Wrap(err, "Error while reading the content of an HTTP response from /system/functions") } - var respObj funcsResponse + return body, nil +} + +/////////////////////////////////// PUBLIC INTERFACE //////////////////////////////// + +// GetFuncsWithMaxRates returns the functions list as a map[string]uint of function names +// and dfaas.maxrate values. +func (client *Client) GetFuncsWithMaxRates() (map[string]uint, error) { + body, err := client.doFuncsRequest() + if err != nil { + return nil, errors.Wrap(err, "Error while reading the content of an HTTP response from /system/functions") + } + + var respObj funcsMaxRatesResponse err = json.Unmarshal(body, &respObj) if err != nil { return nil, errors.Wrap(err, "Error while deserializing a JSON string from /system/functions") @@ -153,3 +174,25 @@ func (client *Client) GetFuncs() (map[string]uint, error) { return result, nil } + + +// GetFuncsNames returns the function names list as a string array. +func (client *Client) GetFuncsNames() ([]string, error) { + body, err := client.doFuncsRequest() + if err != nil { + return nil, errors.Wrap(err, "Error while reading the content of an HTTP response from /system/functions") + } + + var respObj funcsNamesResponse + err = json.Unmarshal(body, &respObj) + if err != nil { + return nil, errors.Wrap(err, "Error while deserializing a JSON string from /system/functions") + } + + var result []string + for _, item := range respObj { + result = append(result, item.Name) + } + + return result, nil +} diff --git a/dfaasagent/agent/logic/dbglogging.go b/dfaasagent/agent/logic/dbglogging.go index 893ab1d..384b5f0 100644 --- a/dfaasagent/agent/logic/dbglogging.go +++ b/dfaasagent/agent/logic/dbglogging.go @@ -267,7 +267,7 @@ func debugOverloads(data map[string]bool) { } } -func debugNodesTblContent(entries map[string]*nodestbl.Entry) { +func debugNodesTblContent(entries map[string]*nodestbl.EntryRecalc) { if !logging.GetDebugMode() { return } @@ -309,6 +309,42 @@ func debugNodesTblContent(entries map[string]*nodestbl.Entry) { } } +func debugNodesTblContentNMS(entries map[string]*nodestbl.EntryNMS) { + if !logging.GetDebugMode() { + return + } + + logger := logging.Logger() + + nodeIDs := make([]string, 0, len(entries)) + for k := range entries { + nodeIDs = append(nodeIDs, k) + } + + sort.Strings(nodeIDs) + + logger.Debug("Content of nodestbl:") + for _, nodeID := range nodeIDs { + entry := entries[nodeID] + + logger.Debugf(" - NODE %s (HAProxy=%s:%d), type: %d, common neighbour: %t, margin: %.2f", + nodeID, + entry.HAProxyHost, + entry.HAProxyPort, + entry.NodeType, + entry.CommonNeighbour, + entry.Margin) + + logger.Debugf(" - LOAD: highUsage=%.2f req/s, mediumhUsage=%.2f req/s, lowUsage=%.2f req/s", + entry.Load.RateHighUsage, entry.Load.RateMediumUsage, entry.Load.RateLowUsage) + + logger.Debugf(" - FUNCTIONS:") + for funcName := range entry.Funcs { + logger.Debugf(" FUNC: %s", funcName) + } + } +} + func debugStickTable(stName string, stContent map[string]*hasock.STEntry) { if !logging.GetDebugMode() { return @@ -330,7 +366,7 @@ func debugStickTable(stName string, stContent map[string]*hasock.STEntry) { } } -func debugMsgNodeInfo(msg MsgNodeInfo) { +func debugMsgNodeInfoRecalc(msg MsgNodeInfoRecalc) { if !logging.GetDebugMode() { return } @@ -344,3 +380,94 @@ func debugMsgNodeInfo(msg MsgNodeInfo) { } } } + +func debugMsgNodeInfoNMS(msg MsgNodeInfoNMS) { + if !logging.GetDebugMode() { + return + } + + logger := logging.Logger() + + logger.Debugf(" - Node Type: %d", msg.NodeType) + logger.Debugf(" - Node's functions: ") + for i := 0; i < len(msg.Functions); i++ { + logger.Debugf(" - " + msg.Functions[i] + ", ") + } +} + +func debugFuncsLoad(load groupsLoad) { + if !logging.GetDebugMode() { + return + } + + logger := logging.Logger() + + logger.Debugf("Node's Load: High Usage=%.2f req/s, Low Usage=%.2f req/s, Medium Usage=%.2f req/s", + load.rateHighUsage, + load.rateLowUsage, + load.rateMediumUsage) +} + +func debugNodeMetricPredictions(predictions map[string]float64) { + if !logging.GetDebugMode() { + return + } + + logger := logging.Logger() + + logger.Debugf("Node's usage predictions:") + logger.Debugf("Cpu usage: %.2f, Ram usage: %.2f, Power usage: %.2f", + predictions[cpuUsageNodeMetric], + predictions[ramUsageNodeMetric], + predictions[powerUsageNodeMetric]) +} + +func debugOverloadNMS(overload bool) { + if !logging.GetDebugMode() { + return + } + + logger := logging.Logger() + + if overload { + logger.Debugf("Node's state: OVERLOAD") + } else { + logger.Debugf("Node's state: UNDERLOAD") + } +} + +func debugNodeUsagePercentage(percentage float64) { + if !logging.GetDebugMode() { + return + } + + logger := logging.Logger() + + logger.Debugf("Node usage percentage: %.2f", percentage) +} + +func debugNodeMargin(margin float64) { + if !logging.GetDebugMode() { + return + } + + logger := logging.Logger() + + logger.Debugf("Node's margin: %.2f", margin) +} + +func debugWeightsNMS(weights map[string]map[string]uint) { + if !logging.GetDebugMode() { + return + } + + logger := logging.Logger() + + logger.Debugf("Calculated weights:") + for fun, nodesWeights := range weights { + logger.Debugf("- " + fun + ": ") + for node, weight := range nodesWeights { + logger.Debugf(" - Node " + node + ": " + "%d", weight) + } + } +} \ No newline at end of file diff --git a/dfaasagent/agent/logic/hacfgtypes.go b/dfaasagent/agent/logic/hacfgtypes.go new file mode 100644 index 0000000..04fb75f --- /dev/null +++ b/dfaasagent/agent/logic/hacfgtypes.go @@ -0,0 +1,92 @@ +package logic + +import ( + "time" +) + +// Note: to monitor the content of the haproxy.cfg file in bash: +// watch -n0.2 "cat dfaasvolume1/haproxy.cfg | column" + +//////////////////// TYPES FOR HAPROXY CONFIG UPDATE //////////////////// + +// Base struct representing the basic information for for writing the HAProxy config file +type HACfg struct { + // This is set by the updateHAProxyConfig function at the moment of writing + Now time.Time + + MyNodeID string + OpenFaaSHost string + OpenFaaSPort uint +} + +/////////////////// HACFG TYPES FOR RECALC STRATEGY /////////////////// + +// HACfgNodeRecalc contains the info about a node for the HAProxy config file +type HACfgNodeRecalc struct { + HAProxyHost string + HAProxyPort uint +} + +// HACfgFuncRecalc contains the info about a function for the HAProxy config file +type HACfgFuncRecalc struct { + // Max limit of req/s for invocations on this node's OpenFaaS instance. + // Should be = 0 if we do not have the function on our local OpenFaaS + // cluster + Limit uint + + // Weight of the nodes. The key is the node ID + Weights map[string]uint + // Limits (in req/s) for incoming requests from each node. The key is the + // node ID + LimitsIn map[string]uint +} + +// HACfgRecalc represents the information specific for Recalc strategy +// for writing the HAProxy config file +type HACfgRecalc struct { + HACfg + + HttpServerHost string + HttpServerPort uint + + // String representation of RecalPeriod (e.g. "5s") + StrRecalc string + // Number of seconds of RecalPeriod + SecsRecalc uint + + // The key is the node ID + Nodes map[string]*HACfgNodeRecalc + + // The key is the function name + Functions map[string]*HACfgFuncRecalc +} + + +/////////////////// HACFG TYPES FOR RECALC STRATEGY /////////////////// + +// HACfgNodeNMS contains the info about a node for the HAProxy config file +type HACfgNodeNMS struct { + HAProxyHost string + HAProxyPort uint +} + +// HACfgFuncNMS contains the weights info about a function for the HAProxy config file +type HACfgFuncNMS struct { + // Weights of the nodes. The key is the node ID + Weights map[string]uint +} + +// HACfgNMS represents the information specific for Node Margin strategy +// for writing the HAProxy config file +type HACfgNMS struct { + HACfg + + HttpServerHost string + HttpServerPort uint + + // The key is the node ID + Nodes map[string]*HACfgNodeNMS + + // The key is the function name + Functions map[string]*HACfgFuncNMS +} diff --git a/dfaasagent/agent/logic/haproxycfgnms.tmpl b/dfaasagent/agent/logic/haproxycfgnms.tmpl new file mode 100644 index 0000000..ab80470 --- /dev/null +++ b/dfaasagent/agent/logic/haproxycfgnms.tmpl @@ -0,0 +1,150 @@ +# HAProxy configuration file updated on {{.Now}} + +{{/* #################### MAIN SECTION #################### */ -}} + +global + stats socket /run/haproxy/admin.sock mode 666 level admin + log stdout local0 + +defaults + mode http + + log global + option httplog + + timeout connect 5000 + timeout client 50000 + timeout server 50000 + +{{/* #################### FRONTEND #################### */ -}} + +frontend fe_main + bind *:80 + + {{/* Enable statistics web page */ -}} + stats enable + stats auth admin:admin + stats uri /haproxy?stats + + {{/* ########### ACLs FOR CHECKING IF A NODE IS KNOWN ######### */ -}} + {{if not $.Nodes}} + acl is_hdr_nodeID_known always_false + {{end}} + {{range $nodeID, $_ := $.Nodes}} + acl is_hdr_nodeID_known req.hdr(DFaaS-Node-ID) -m str {{$nodeID}} {{/* Conditions with same name, called multiple times are joined with OR */}} + {{end}} + + {{/* ACL check for DFaaS-Node-ID header with a variable */ -}} + http-request set-var(req.hdrcnt_nodeid) hdr_cnt(DFaaS-Node-ID) + acl has_nodeid_hdr var(req.hdrcnt_nodeid),add(0) gt 0 {{- /* The ",add(0)" is needed here, for some reason (maybe haproxy bug? like int/str conversion or something... if you remove it there will be problems!!!) */}} + http-request capture str(hdrID:),concat(,req.hdrcnt_nodeid,) len 10 {{- /* e.g. "hdrID:5" */}} + + {{/* Path ACLs */ -}} + acl is_path_root path / + acl is_path_healthz path /healthz + acl is_path_haproxy path_beg /haproxy + acl is_path_system_funcs path /system/functions + acl is_path_function path_beg /function/ + + {{/* ACLs is_func_XXX */ -}} + {{range $funcName, $_ := .Functions -}} + acl is_func_{{$funcName}} path_beg /function/{{$funcName}} + {{end}} + + {{/* Capture some request headers in log */ -}} + http-request capture req.hdr(Host) len 50 + http-request capture req.hdr(DFaaS-Node-ID) len 50 + + {{/* Deny requests which are not directed to a function or / (root) or the + stats page (note: the root path is needed for health checks by + other nodes) or to /healthz */ -}} + http-request deny unless is_path_root or is_path_healthz or is_path_haproxy or is_path_system_funcs or is_path_function + + {{/* If a hdr DFaaS-Node-ID is present AND is not known deny request. + * Returned message is 403 "Forbidden": The access to the resource is forbidden by this client. + */ -}} + http-request deny deny_status 403 if has_nodeid_hdr !is_hdr_nodeID_known + + {{/* ########## BACKEND SELECTION ########## */ -}} + + use_backend be_ok if is_path_root + use_backend be_healthz if is_path_healthz + use_backend be_system_funcs if is_path_system_funcs + {{range $funcName, $_ := .Functions -}} + use_backend be_myself if is_func_{{$funcName}} has_nodeid_hdr + use_backend be_{{$funcName}} if is_func_{{$funcName}} !has_nodeid_hdr + {{end}} + + default_backend be_ok + +{{/* #################### BACKEND FOR SIMPLE 200 RESPONSES #################### */ -}} + +backend be_ok + http-request return status 200 content-type "text/plain" string "This is a DFaaS node. Call a function with /function/\n" + +{{/* #################### BACKEND FOR HEALTHCHECK #################### */ -}} + +backend be_healthz + {{/* Perform HTTP health checks */ -}} + option httpchk GET /healthz + {{/* Enable HTTP connection closing on the server side. This provides the lowest latency + on the client side (slow network) and the fastest session reuse on the server side + to save server resources */ -}} + option http-server-close + server healthz {{.HttpServerHost}}:{{.HttpServerPort}} check + +{{/* #################### BACKEND FOR MANAGING OPENFAAS FUNCTIONS #################### */ -}} + +backend be_system_funcs + {{/* Perform HTTP health checks */ -}} + option httpchk GET / + {{/* Enable HTTP connection closing on the server side. This provides the lowest latency + on the client side (slow network) and the fastest session reuse on the server side + to save server resources */ -}} + option http-server-close + server system_funcs {{.OpenFaaSHost}}:{{.OpenFaaSPort}} check + +{{/* #################### BACKEND FOR SELF OPENFAAS INSTANCE #################### */ -}} +backend be_myself + {{/* Perform HTTP health checks */ -}} + option httpchk GET /healthz + {{/* Enable insertion of the X-Forwarded-For header to requests sent to servers */ -}} + option forwardfor + {{/* Enable HTTP connection closing on the server side. This provides the lowest latency + on the client side (slow network) and the fastest session reuse on the server side + to save server resources */ -}} + option http-server-close + + {{/* Add DFaaS-Node-ID header (in any case) */ -}} + http-request add-header DFaaS-Node-ID {{$.MyNodeID}} + + server myself {{$.OpenFaaSHost}}:{{$.OpenFaaSPort}} check + +{{/* #################### BACKEND FOR OPENFAAS FUNCTIONS #################### */ -}} + +{{range $funcName, $func := .Functions -}} + +backend be_{{$funcName}} + {{/* Enable load-balancing using custom weights */ -}} + balance roundrobin + + {{/* Perform HTTP health checks */ -}} + option httpchk GET /healthz + {{/* Enable insertion of the X-Forwarded-For header to requests sent to servers */ -}} + option forwardfor + {{/* Enable HTTP connection closing on the server side. This provides the lowest latency + on the client side (slow network) and the fastest session reuse on the server side + to save server resources */ -}} + option http-server-close + + {{/* Add DFaaS-Node-ID header (in any case) */ -}} + http-request add-header DFaaS-Node-ID {{$.MyNodeID}} + + {{range $nodeID, $weight := $func.Weights -}} + {{if (eq $nodeID $.MyNodeID) -}} + server myself {{$.OpenFaaSHost}}:{{$.OpenFaaSPort}} weight {{$weight}} check + {{else -}} + server {{$nodeID}} {{(index $.Nodes $nodeID).HAProxyHost}}:{{(index $.Nodes $nodeID).HAProxyPort}} weight {{$weight}} check + {{end -}} + {{end}} +{{end}} diff --git a/dfaasagent/haproxycfg.tmpl b/dfaasagent/agent/logic/haproxycfgrecalc.tmpl similarity index 93% rename from dfaasagent/haproxycfg.tmpl rename to dfaasagent/agent/logic/haproxycfgrecalc.tmpl index 3accc4f..5aabd02 100644 --- a/dfaasagent/haproxycfg.tmpl +++ b/dfaasagent/agent/logic/haproxycfgrecalc.tmpl @@ -62,13 +62,12 @@ frontend fe_main acl is_path_root path / acl is_path_healthz path /healthz acl is_path_haproxy path_beg /haproxy - acl is_path_system_funcs path /system/functions acl is_path_function path_beg /function/ {{/* Deny requests which are not directed to a function or / (root) or the stats page (note: the root path is needed for health checks by other nodes) or to /healthz */ -}} - http-request deny unless is_path_root or is_path_healthz or is_path_haproxy or is_path_system_funcs or is_path_function + http-request deny unless is_path_root or is_path_healthz or is_path_haproxy or is_path_function {{/* Capture some request headers in log */ -}} http-request capture req.hdr(Host) len 50 @@ -156,7 +155,6 @@ frontend fe_main use_backend be_ok if is_path_root use_backend be_healthz if is_path_healthz - use_backend be_system_funcs if is_path_system_funcs {{range $funcName, $func := .Functions -}} {{/* [NEW] Select backend for request that exeeds limitsIn */ -}} @@ -182,23 +180,8 @@ backend be_ok backend be_healthz {{/* Perform HTTP health checks */ -}} option httpchk GET /healthz - {{/* Enable HTTP connection closing on the server side. This provides the lowest latency - on the client side (slow network) and the fastest session reuse on the server side - to save server resources */ -}} - option http-server-close server healthz {{.HttpServerHost}}:{{.HttpServerPort}} check -{{/* #################### BACKEND FOR MANAGING OPENFAAS FUNCTIONS #################### */ -}} - -backend be_system_funcs - {{/* Perform HTTP health checks */ -}} - option httpchk GET / - {{/* Enable HTTP connection closing on the server side. This provides the lowest latency - on the client side (slow network) and the fastest session reuse on the server side - to save server resources */ -}} - option http-server-close - server system_funcs {{.OpenFaaSHost}}:{{.OpenFaaSPort}} check - {{/* #################### BACKEND FOR SELF OPENFAAS INSTANCE #################### */ -}} backend be_myself @@ -272,4 +255,3 @@ backend be_others_func_{{$funcName}} At the moment 429 has been used for test purpose. */}} backend be_limitInExceeds http-request deny deny_status 429 - diff --git a/dfaasagent/agent/logic/haupd.go b/dfaasagent/agent/logic/haupd.go deleted file mode 100644 index 6cb26b7..0000000 --- a/dfaasagent/agent/logic/haupd.go +++ /dev/null @@ -1,147 +0,0 @@ -package logic - -import ( - "time" - - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/nodestbl" -) - -// Note: to monitor the content of the haproxy.cfg file in bash: -// watch -n0.2 "cat dfaasvolume1/haproxy.cfg | column" - -//////////////////// TYPES FOR HAPROXY CONFIG UPDATE //////////////////// - -// HACfgNode contains the info about a node for the HAProxy config file -type HACfgNode struct { - HAProxyHost string - HAProxyPort uint -} - -// HACfgFunc contains the info about a function for the HAProxy config file -type HACfgFunc struct { - // Max limit of req/s for invocations on this node's OpenFaaS instance. - // Should be = 0 if we do not have the function on our local OpenFaaS - // cluster - Limit uint - - // Weight of the nodes. The key is the node ID - Weights map[string]uint - // Limits (in req/s) for incoming requests from each node. The key is the - // node ID - LimitsIn map[string]uint -} - -// HACfg is the main struct for writing the HAProxy config file -type HACfg struct { - // This is set by the updateHAProxyConfig function at the moment of writing - Now time.Time - - MyNodeID string - OpenFaaSHost string - OpenFaaSPort uint - - HttpServerHost string - HttpServerPort uint - - // String representation of RecalPeriod (e.g. "5s") - StrRecalc string - // Number of seconds of RecalPeriod - SecsRecalc uint - - // The key is the node ID - Nodes map[string]*HACfgNode - - // The key is the function name - Functions map[string]*HACfgFunc -} - -//////////////////// FUNCTIONS FOR HAPROXY CONFIG UPDATE //////////////////// - -func createHACfgObject( - myNodeID string, - openFaaSHost string, - openFaaSPort uint, - httpServerHost string, - httpServerPort uint, - recalcPeriod time.Duration, - entries map[string]*nodestbl.Entry, - funcLimits map[string]uint, -) *HACfg { - hacfg := &HACfg{ - MyNodeID: myNodeID, - OpenFaaSHost: openFaaSHost, - OpenFaaSPort: openFaaSPort, - - HttpServerHost: httpServerHost, - HttpServerPort: httpServerPort, - - StrRecalc: recalcPeriod.String(), - SecsRecalc: uint(recalcPeriod / time.Second), - - Nodes: map[string]*HACfgNode{}, - Functions: map[string]*HACfgFunc{}, - } - - // For each function in this node set limit (maxrate). - for funcName, limit := range funcLimits { - hacfg.Functions[funcName] = &HACfgFunc{ - Limit: limit, - Weights: map[string]uint{}, - LimitsIn: map[string]uint{}, - } - } - - // For each node write Host and port. - for nodeID, entry := range entries { - hacfg.Nodes[nodeID] = &HACfgNode{ - HAProxyHost: entry.HAProxyHost, - HAProxyPort: entry.HAProxyPort, - } - - // For each function on selected node check if this function - // is also present in that node. - // If it is not present on this node set limit to 0 and - // weight and Limit in empty. - for funcName, funcData := range entry.FuncsData { - _, present := hacfg.Functions[funcName] - - if !present { - // We do not have this function on our OpenFaaS. - // Set limit (maxrate) to 0 --> can't accept request for - // this function in local FaaS cluster, but can - // fwd to another node. - hacfg.Functions[funcName] = &HACfgFunc{ - Limit: 0, - Weights: map[string]uint{}, - LimitsIn: map[string]uint{}, - } - } - - // For the function funcName in nodeID set weights and LimitsIn written - // previously during the 2 phases of racalc algo. - hacfg.Functions[funcName].Weights[nodeID] = funcData.NodeWeight - hacfg.Functions[funcName].LimitsIn[nodeID] = uint(funcData.LimitIn) // Note: Seems that is not written in template file. - - // Weight are used in template file for load-balancing, with custom - // weights toward other nodes of p2p net. - // See: https://serverfault.com/questions/113637/haproxy-roundrobin-weights - // Also doc: http://cbonte.github.io/haproxy-dconv/configuration-1.4.html#5-weight - } - } - - return hacfg -} - -// updateHAProxyConfig updates the HAProxy config file with the provided object. -// Note: Go templates sort maps by key (see https://stackoverflow.com/questions/33860961/sorted-map-iteration-in-go-templates#comment76560806_33862260) -func updateHAProxyConfig(hacfg *HACfg) error { - hacfg.Now = time.Now() - - // hacfg is a struct of type HACfg, that is use as content - // for writing template file. - // Indeed, in template file is possible to access fields - // of this struct (see file of template .tmpl). - // Template is referred to a data structure, in that case HACfg type. - // See https://golang.org/pkg/text/template/. - return _hacfgupdater.UpdateHAConfig(hacfg) -} diff --git a/dfaasagent/agent/logic/logic.go b/dfaasagent/agent/logic/logic.go index f790405..24e9b0a 100644 --- a/dfaasagent/agent/logic/logic.go +++ b/dfaasagent/agent/logic/logic.go @@ -1,71 +1,74 @@ -package logic - -import ( - "github.com/bcicen/go-haproxy" - "github.com/libp2p/go-libp2p-core/host" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/config" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/hacfgupd" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/offuncs" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/ofpromq" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/nodestbl" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/forecaster" -) - -// This package handles the main operational logic of the DFaaSAgent application - -//////////////////// MAIN PRIVATE VARS AND INIT FUNCTION //////////////////// - -var _p2pHost host.Host -var _config config.Configuration - -var _nodestbl *nodestbl.Table -var _hacfgupdater hacfgupd.Updater - -var _hasockClient haproxy.HAProxyClient -var _ofpromqClient ofpromq.Client -var _offuncsClient offuncs.Client -var _forecasterClient forecaster.Client - -// Initialize initializes this package (sets some vars, etc...) -func Initialize(p2pHost host.Host, config config.Configuration) error { - _p2pHost = p2pHost - _config = config - - _nodestbl = &nodestbl.Table{ - // Set validity to 120% of RecalcPeriod - EntryValidity: _config.RecalcPeriod + (_config.RecalcPeriod / 5), - } - _nodestbl.InitTable() - - _hacfgupdater = hacfgupd.Updater{ - HAConfigFilePath: _config.HAProxyConfigFile, - CmdOnUpdated: _config.HAProxyConfigUpdateCommand, - } - err := _hacfgupdater.LoadTemplate(_config.HAPRoxyTemplateFile) - if err != nil { - return err - } - - _hasockClient = haproxy.HAProxyClient{ - Addr: _config.HAProxySockPath, - } - - _ofpromqClient = ofpromq.Client{ - Hostname: _config.PrometheusHost, - Port: _config.PrometheusPort, - } - - _offuncsClient = offuncs.Client{ - Hostname: _config.OpenFaaSHost, - Port: _config.OpenFaaSPort, - Username: _config.OpenFaaSUser, - Password: _config.OpenFaaSPass, - } - - _forecasterClient = forecaster.Client{ - Hostname: _config.ForecasterHost, - Port: _config.ForecasterPort, - } - - return nil -} +package logic + +import ( + "sync" + pubsub "github.com/libp2p/go-libp2p-pubsub" + "github.com/libp2p/go-libp2p-core/host" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/config" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/constants" +) + +// This package handles the main operational logic of the DFaaSAgent application + +//////////////////// MAIN PRIVATE VARS AND INIT FUNCTION //////////////////// + +var _p2pHost host.Host +var _config config.Configuration + +// Strategy factory which manages the creation of the strategy instance +var _strategyFactory strategyFactory + +// Lock used to manage the singleton strategy instance +var _lock *sync.Mutex + +// Singleton instance representing the strategy adopted from the DFaaS agent +var _strategyInstance Strategy + +// Initialize initializes this package +func Initialize(p2pHost host.Host, config config.Configuration) { + _p2pHost = p2pHost + _config = config + _lock = &sync.Mutex{} + + switch _config.Strategy { + case constants.RecalcStrategy: + _strategyFactory = &recalcStrategyFactory{} + break + case constants.NodeMarginStrategy: + _strategyFactory = &nodeMarginStrategyFactory{} + break + } +} + +//////////////////// PUBLIC STRUCT TYPES //////////////////// + +// Strategy interface represents a generic strategy. +// Every new strategy for the agent must implement this interface. +type Strategy interface { + // Method which executes the strategy + RunStrategy() error + // Method called when a message is received from a peer + OnReceived(msg *pubsub.Message) error +} + +//////////////////// PUBLIC METHODS //////////////////// + +// GetStrategyInstance returns the singleton Strategy instance. +// In a critical section checks if the strategy is already instantiated and returns it. +// If instance is nil, creates a new Strategy instance using the createStrategy method +// of the strategy factory +func GetStrategyInstance() (Strategy, error) { + var err error + + _lock.Lock() + defer _lock.Unlock() + + if _strategyInstance == nil { + _strategyInstance, err = _strategyFactory.createStrategy() + if err != nil { + return nil, err + } + } + + return _strategyInstance, nil +} diff --git a/dfaasagent/agent/logic/msgtypes.go b/dfaasagent/agent/logic/msgtypes.go index f5d85b7..33dd26e 100644 --- a/dfaasagent/agent/logic/msgtypes.go +++ b/dfaasagent/agent/logic/msgtypes.go @@ -1,5 +1,9 @@ package logic +import ( + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/logging" +) + //////////////////// MESSAGES' STRUCT TYPES //////////////////// // MsgText defines the format of the PubSub messages containing a bare text message @@ -12,9 +16,9 @@ type MsgText struct { // StrMsgTextType value for MsgText.MsgType const StrMsgTextType = "text" -// MsgNodeInfo defines the format of the PubSub messages regarding a node's -// information -type MsgNodeInfo struct { +// MsgNodeInfoRecalc defines the format of the PubSub messages regarding a node's +// information (for Recalc strategy) +type MsgNodeInfoRecalc struct { MsgType string HAProxyHost string @@ -26,5 +30,45 @@ type MsgNodeInfo struct { FuncLimits map[string]map[string]float64 } -// StrMsgNodeInfoType value for MsgNodeInfo.MsgType -const StrMsgNodeInfoType = "nodeinfo" +// StrMsgNodeInfoTypeRecalc value for MsgNodeInfo.MsgType +const StrMsgNodeInfoTypeRecalc = "nodeinfoRecalc" + +// MsgNodeInfoNMS defines the format of the PubSub messages regarding a node's +// information (for Node Margin Strategy) +type MsgNodeInfoNMS struct { + MsgType string + + HAProxyHost string + HAProxyPort uint + NodeType int + Functions []string +} + +// StrMsgNodeInfoTypeNMS value for MsgNodeInfoNMS.MsgType +const StrMsgNodeInfoTypeNMS = "nodeinfoNMS" + +// MsgNodeMarginInfoNMS defines the format of the PubSub messages regarding a node's +// margin and eventually the expected load (for Node Margin Strategy) +type MsgNodeMarginInfoNMS struct { + MsgType string + + Margin float64 + Load groupsLoad +} + +// StrMsgNodeMarginInfoTypeNMS value for MsgNodeMarginInfoNMS.MsgType +const StrMsgNodeMarginInfoTypeNMS = "nodemargininfoNMS" + +// processMsgText processes a text message received from pubsub +func processMsgText(sender string, msg *MsgText) error { + logger := logging.Logger() + myself := _p2pHost.ID().String() + + if sender == myself { + return nil // Ignore ourselves + } + + logger.Debugf("Received text message from node %s: %s", sender, msg.Text) + + return nil +} diff --git a/dfaasagent/agent/logic/nodemarginstrategy.go b/dfaasagent/agent/logic/nodemarginstrategy.go new file mode 100644 index 0000000..a790c96 --- /dev/null +++ b/dfaasagent/agent/logic/nodemarginstrategy.go @@ -0,0 +1,798 @@ +package logic + +import ( + "time" + "strings" + "math" + "encoding/json" + pubsub "github.com/libp2p/go-libp2p-pubsub" + "github.com/pkg/errors" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/communication" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/constants" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/logging" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/hacfgupd" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/nodestbl" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/groupsreader" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/forecaster" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/ofpromq" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/offuncs" +) + +// In this file is implemented the Node Margin strategy + +///////////////////// CONSTANTS /////////////////////////// + +const cpuUsageNodeMetric = "cpu_usage_node" +const ramUsageNodeMetric = "ram_usage_node" +const powerUsageNodeMetric = "power_usage_node" + +// Struct representing a NodeMarginStrategy instance, which implements the Strategy interface +type NodeMarginStrategy struct { + hacfgupdater hacfgupd.Updater + nodestbl *nodestbl.TableNMS + ofpromqClient ofpromq.Client + offuncsClient offuncs.Client + forecasterClient forecaster.Client + nodeInfo nodeInfo + // Functions groups + funcsGroups groupsreader.Groups + // Map with a metric name as key + // and max threshold values used to determine if the node is in overload + maxValues map[string]float64 + // Map of target nodes, with node ID of a common neighbour as key, + // and array of common functions as value + targetNodes map[string][]string + // Map containing for each node's function (key) another map containing + // for each node the corresponding forwarding weight + weights map[string]map[string]uint +} + +// groupsLoad represents the invocation rates for each group of functions on a node +type groupsLoad struct { + rateHighUsage float64 + rateLowUsage float64 + rateMediumUsage float64 +} + +// Private struct containing info about us +type nodeInfo struct { + nodeType int // Node type (heavy=0, mid=1, light=2) + funcs []string // Our OpenFaaS functions + funcsGroupsLoad groupsLoad // Load rates for each group of functions + commonNeighboursNum int // Number of neighbours with at least a function in common + funcsRates map[string]float64 // Map with function name as key, and invocation rate as value + margin float64 // Node's margin + overload bool // True if node is in overload + metricsPredictions map[string]float64 // Map with metric name as key, and it's predicted value +} + +//////////////////// PUBLIC FUNCTIONS FOR NODE MARGIN STRATEGY //////////////////// + +// RunStrategy handles the periodic execution of the recalculation function. It +// should run in a goroutine +func (strategy *NodeMarginStrategy) RunStrategy() error { + var millisNow, millisSleep int64 + var err error + + millisInterval := int64(_config.RecalcPeriod / time.Millisecond) + + strategy.maxValues[cpuUsageNodeMetric] = _config.CPUThresholdNMS + strategy.maxValues[ramUsageNodeMetric] = _config.RAMThresholdNMS + strategy.maxValues[powerUsageNodeMetric] = _config.PowerThresholdNMS + + strategy.nodeInfo.nodeType = _config.NodeType + strategy.nodeInfo.overload = false + + for { + err = strategy.publishNodeInfo() + if err != nil { + return err + } + + strategy.updateCommonNeighbours() + + strategy.nodeInfo.funcsRates, err = strategy.getFunctionsRates() + + strategy.funcsGroups, err = groupsreader.GetFuncsGroups() + if err != nil { + return err + } + + strategy.nodeInfo.funcsGroupsLoad, err = strategy.getFuncsGroupsLoad() + if err != nil { + return err + } + + strategy.nodeInfo.metricsPredictions, err = strategy.getNodeMetricPredictions(strategy.nodeInfo.nodeType, strategy.nodeInfo.funcsGroupsLoad) + if err != nil { + return err + } + + strategy.nodeInfo.overload = strategy.isNodeOverloaded(strategy.nodeInfo.metricsPredictions) + + strategy.nodeInfo.margin = strategy.calculateMargin() + + err = strategy.sendMarginToNeighbours() + if err != nil { + return err + } + + strategy.nodestbl.SafeExec(func(entries map[string]*nodestbl.EntryNMS) error { + debugNodesTblContentNMS(entries) + return nil + }) + + strategy.weights, err = strategy.calculateWeights() + if err != nil { + return err + } + + err = strategy.setProxyWeights() + if err != nil { + return err + } + + millisNow = time.Now().UnixNano() / 1000000 + millisSleep = millisInterval - (millisNow % millisInterval) + time.Sleep(time.Duration(millisSleep) * time.Millisecond) + } +} + +// OnReceived should be executed every time a message from a peer is received +func (strategy *NodeMarginStrategy) OnReceived(msg *pubsub.Message) error { + var msgForType struct{ MsgType string } + err := json.Unmarshal(msg.GetData(), &msgForType) + if err != nil { + return errors.Wrap(err, "Error while deserializing a message from the PubSub subscription") + } + + switch msgForType.MsgType { + case StrMsgNodeInfoTypeNMS: + var objMsg MsgNodeInfoNMS + err := json.Unmarshal(msg.GetData(), &objMsg) + if err != nil { + return errors.Wrap(err, "Error while deserializing a message from the PubSub subscription") + } + + strategy.processMsgNodeInfoNMS(msg.GetFrom().String(), &objMsg) + case StrMsgNodeMarginInfoTypeNMS: + var objMsg MsgNodeMarginInfoNMS + err := json.Unmarshal(msg.GetData(), &objMsg) + if err != nil { + return errors.Wrap(err, "Error while deserializing a message from the PubSub subscription") + } + + strategy.processMsgNodeMarginInfoNMS(msg.GetFrom().String(), &objMsg) + } + + return nil +} + +//////////////////// PRIVATE FUNCTIONS FOR NODE MARGIN STRATEGY //////////////////// + +// Send to other nodes our information (HAProxyHost, HAProxyPort, node type, functions list) +func (strategy *NodeMarginStrategy) publishNodeInfo() error { + var err error + + // Obtain our function names list + strategy.nodeInfo.funcs, err = strategy.offuncsClient.GetFuncsNames() + if err != nil { + return errors.Wrap(err, "Error while getting functions info from OpenFaaS") + } + + msg := MsgNodeInfoNMS{ + MsgType: StrMsgNodeInfoTypeNMS, + HAProxyHost: _config.HAProxyHost, + HAProxyPort: _config.HAProxyPort, + NodeType: strategy.nodeInfo.nodeType, + Functions: strategy.nodeInfo.funcs, + } + debugMsgNodeInfoNMS(msg) + + err = communication.MarshAndPublish(msg) + if err != nil { + return err + } + + return nil +} + +// Check which neighbour has at least a function in common and update the relative information in nodestbl +func (strategy *NodeMarginStrategy) updateCommonNeighbours() { + commonNeighbours := 0 + var targetNodes = make(map[string][]string) + var common bool + + strategy.nodestbl.SafeExec(func(entries map[string]*nodestbl.EntryNMS) error { + for neighbourID, neighInfo := range entries { + common = false + var commonFuncs []string + for i := 0; i < len(strategy.nodeInfo.funcs); i++ { + for j := 0; j < len(neighInfo.Funcs); j++ { + if strategy.nodeInfo.funcs[i] == neighInfo.Funcs[j] { + commonFuncs = append(commonFuncs, strategy.nodeInfo.funcs[i]) + common = true + break + } + } + } + if common { + commonNeighbours += 1 + neighbour, _ := entries[neighbourID] + neighbour.CommonNeighbour = true + entries[neighbourID] = neighbour + targetNodes[neighbourID] = commonFuncs + } + } + + // Update targetNodes + strategy.targetNodes = targetNodes + // Update commonNeighboursNum + strategy.nodeInfo.commonNeighboursNum = commonNeighbours + + return nil + }) +} + +// Obtain functions invocation rates of the last RecalcPeriod from Prometheus +func (strategy *NodeMarginStrategy) getFunctionsRates() (map[string]float64, error) { + var invocRates map[string]map[string]float64 // Invocation rates (in req/s) (from Prometheus) + + invocRates, err := strategy.ofpromqClient.QueryInvoc(_config.RecalcPeriod) + if err != nil { + return nil, errors.Wrap(err, "Error while executing Prometheus query") + } + debugPromInvoc(_config.RecalcPeriod, invocRates) + + var functionRates = make(map[string]float64) + for funcName, item := range invocRates { + clearFuncName := strings.ReplaceAll(funcName, ".openfaas-fn", "") + functionRates[clearFuncName] = 0 + for _, rate := range item { + functionRates[clearFuncName] += rate + } + } + return functionRates, nil +} + +// Calculate invocation rate for each group of functions +// NOTE: at the moment invocation rates on node are gathered from Prometheus. In future +// they should be gathered from the Forecaster, which predicts the future load received from the node +func (strategy *NodeMarginStrategy) getFuncsGroupsLoad() (groupsLoad, error) { + var err error + + strategy.nodeInfo.funcsRates, err = strategy.getFunctionsRates() + if err != nil { + return groupsLoad{}, err + } + + var nodeGroupsLoad groupsLoad + + nodeGroupsLoad.rateHighUsage = 0.0 + nodeGroupsLoad.rateLowUsage = 0.0 + nodeGroupsLoad.rateMediumUsage = 0.0 + + for funcName, rate := range strategy.nodeInfo.funcsRates { + if contains(strategy.funcsGroups.HighUsage, funcName) { + nodeGroupsLoad.rateHighUsage += rate + } else if contains(strategy.funcsGroups.MediumUsage, funcName) { + nodeGroupsLoad.rateMediumUsage += rate + } else if contains(strategy.funcsGroups.LowUsage, funcName) { + nodeGroupsLoad.rateLowUsage += rate + } + } + + debugFuncsLoad(nodeGroupsLoad) + + return nodeGroupsLoad, nil +} + +// Get node metric predictions from Forecaster +func (strategy *NodeMarginStrategy) getNodeMetricPredictions(nodeType int, load groupsLoad) (map[string]float64, error) { + var err error + + var req forecaster.NodeMetricPredReq + req.Node_type = nodeType + req.Rate_group_HIGH_USAGE = load.rateHighUsage + req.Rate_group_LOW_USAGE = load.rateLowUsage + req.Rate_group_MEDIUM_USAGE = load.rateMediumUsage + + var resp forecaster.NodeMetricPredRes + resp, err = strategy.forecasterClient.GetNodeUsagePredictions(req) + if err != nil { + return nil, errors.Wrap(err, "Error while executing request to Forecaster") + } + + var predictions = make(map[string]float64) + predictions[cpuUsageNodeMetric] = resp.Cpu_usage_node + predictions[ramUsageNodeMetric] = resp.Ram_usage_node + predictions[powerUsageNodeMetric] = resp.Power_usage_node + + debugNodeMetricPredictions(predictions) + + return predictions, nil +} + +// Check if node is in overload (based on metrics predictions on node and maxValues) +func (strategy *NodeMarginStrategy) isNodeOverloaded(metricsPredictions map[string]float64) bool { + overloaded := false + for metric, value := range metricsPredictions { + if value > strategy.maxValues[metric] { + overloaded = true + break + } + } + + debugOverloadNMS(overloaded) + + return overloaded +} + +// Calculate the node usage percentage (based on metrics prediction on node) +func (strategy *NodeMarginStrategy) calculateNodeUsagePercentage(metricsPredictions map[string]float64) float64 { + var metricsPercentage = make(map[string]float64) + var nodeUsagePercentage = 0.0 + + for metric, _ := range metricsPredictions { + metricsPercentage[metric] = (metricsPredictions[metric] * 100) / strategy.maxValues[metric] + } + + for _, value := range metricsPercentage { + nodeUsagePercentage += value + } + nodeUsagePercentage /= float64(len(metricsPercentage)) + + debugNodeUsagePercentage(nodeUsagePercentage) + + return nodeUsagePercentage +} + +// Calculate node's margin (based on information obtained with calculateNodeUsagePercentage function) +func (strategy *NodeMarginStrategy) calculateMargin() float64 { + var nodeUsagePercentage float64 + var margin = 0.0 + + if strategy.nodeInfo.overload { + return margin + } else { + nodeUsagePercentage = strategy.calculateNodeUsagePercentage(strategy.nodeInfo.metricsPredictions) + if strategy.nodeInfo.commonNeighboursNum > 0 { + margin = (100 - nodeUsagePercentage) / float64(strategy.nodeInfo.commonNeighboursNum) + } + } + + debugNodeMargin(margin) + + return margin +} + +// Send margin message to neighbours +func (strategy *NodeMarginStrategy) sendMarginToNeighbours() error { + var err error + + // Publish margin and load info only if there are common neighbours + if strategy.nodeInfo.commonNeighboursNum > 0 { + var marginMsg MsgNodeMarginInfoNMS + marginMsg.MsgType = StrMsgNodeMarginInfoTypeNMS + marginMsg.Margin = strategy.nodeInfo.margin + // Put expected load info in message only if margin is not zero + if strategy.nodeInfo.margin > 0.0 { + marginMsg.Load = strategy.nodeInfo.funcsGroupsLoad + } else { + marginMsg.Load = groupsLoad{} + } + + err = communication.MarshAndPublish(marginMsg) + if err != nil { + return err + } + } + + return nil +} + + +// Utility function used to check if a certain function is contained in a functions group +func contains(s []string, str string) bool { + for _, v := range s { + if v == str { + return true + } + } + + return false +} + +// Calculate forwarding weights for each function and neighbour +func (strategy *NodeMarginStrategy) calculateWeights() (map[string]map[string]uint, error) { + logger := logging.Logger() + + var overload bool + var myNodeID string + var mainteined = make(map[string]float64) + var mainteinedGroupsLoad groupsLoad + var fwdRequests = make(map[string]map[string]float64) + var weights = make(map[string]map[string]uint) + var iterator = make(map[string]int) + + overload = strategy.nodeInfo.overload + myNodeID = _p2pHost.ID().String() + + // Copy nodeFuncsRates in mainteined map + for fun, rate := range strategy.nodeInfo.funcsRates { + mainteined[fun] = rate + } + + // Copy funcsGroupsLoad in mainteinedGroupsLoad + mainteinedGroupsLoad.rateHighUsage = strategy.nodeInfo.funcsGroupsLoad.rateHighUsage + mainteinedGroupsLoad.rateMediumUsage = strategy.nodeInfo.funcsGroupsLoad.rateMediumUsage + mainteinedGroupsLoad.rateLowUsage = strategy.nodeInfo.funcsGroupsLoad.rateLowUsage + + err := strategy.nodestbl.SafeExec(func(entries map[string]*nodestbl.EntryNMS) error { + // Init fwdRequests + for neighID, _ := range entries { + fwdRequests[neighID] = make(map[string]float64) + for i := 0; i < len(strategy.nodeInfo.funcs); i++ { + fwdRequests[neighID][strategy.nodeInfo.funcs[i]] = 0.0 + } + } + + // Delete from targetNodes neighbours with margin=0 or without functions in common + for targetID, targetFuncs := range strategy.targetNodes { + if (entries[targetID].Margin == 0.0) || (len(targetFuncs) == 0) { + delete(strategy.targetNodes, targetID) + } + } + + // Init iterator to select nodeTo and funcTo at each iteration + iterator["targetIndex"] = -1 + for targetID, _ := range strategy.targetNodes { + iterator[targetID] = 0 + } + + for (overload && (len(strategy.targetNodes) > 0)) { + // Generate array of indexes to select different nodeTo at each iteration + var targetKeys []string + for targetID, _ := range strategy.targetNodes { + targetKeys = append(targetKeys, targetID) + } + + // Update nodes iterator + iterator["targetIndex"] += 1 + if iterator["targetIndex"] >= len(targetKeys) { + iterator["targetIndex"] = 0 + } + + nodeTo := targetKeys[iterator["targetIndex"]] + funcTo := strategy.targetNodes[nodeTo][iterator[nodeTo]] + + logger.Debugf("Selected node: %s", nodeTo) + logger.Debugf("Selected function: %s", funcTo) + + if mainteined[funcTo] > 0.0 { + // Get nodeTo usage percentage with its original load + var load groupsLoad + load.rateHighUsage = entries[nodeTo].Load.RateHighUsage + load.rateMediumUsage = entries[nodeTo].Load.RateMediumUsage + load.rateLowUsage = entries[nodeTo].Load.RateLowUsage + + logger.Debugf("Before requests forwarding (node %s):", nodeTo) + nodeToPredictions, err := strategy.getNodeMetricPredictions(entries[nodeTo].NodeType, load) + if err != nil { + return err + } + nodeToPercentage := strategy.calculateNodeUsagePercentage(nodeToPredictions) + + reqToTransfer := (mainteined[funcTo] * 0.01) + + // Update the rate group load in request to Forecaster corresponding to the group of funcTo + var newLoad groupsLoad + newLoad.rateHighUsage = entries[nodeTo].Load.RateHighUsage + newLoad.rateMediumUsage = entries[nodeTo].Load.RateMediumUsage + newLoad.rateLowUsage = entries[nodeTo].Load.RateLowUsage + if contains(strategy.funcsGroups.HighUsage, funcTo) { + newLoad.rateHighUsage += reqToTransfer + } else if contains(strategy.funcsGroups.MediumUsage, funcTo) { + newLoad.rateMediumUsage += reqToTransfer + } else if contains(strategy.funcsGroups.LowUsage, funcTo) { + newLoad.rateLowUsage += reqToTransfer + } + + for fun, rate := range fwdRequests[nodeTo] { + if contains(strategy.funcsGroups.HighUsage, fun) { + newLoad.rateHighUsage += rate + } else if contains(strategy.funcsGroups.MediumUsage, fun) { + newLoad.rateMediumUsage += rate + } else if contains(strategy.funcsGroups.LowUsage, fun) { + newLoad.rateLowUsage += rate + } + } + logger.Debugf("After requests forwarding (node %s):", nodeTo) + newNodeToPredictions, err := strategy.getNodeMetricPredictions(entries[nodeTo].NodeType, newLoad) + if err != nil { + return err + } + newNodeToPercentage := strategy.calculateNodeUsagePercentage(newNodeToPredictions) + + margin := entries[nodeTo].Margin + + if margin > newNodeToPercentage - nodeToPercentage { + mainteined[funcTo] -= reqToTransfer + fwdRequests[nodeTo][funcTo] += reqToTransfer + + if contains(strategy.funcsGroups.HighUsage, funcTo) { + mainteinedGroupsLoad.rateHighUsage -= reqToTransfer + } else if contains(strategy.funcsGroups.MediumUsage, funcTo) { + mainteinedGroupsLoad.rateMediumUsage -= reqToTransfer + } else if contains(strategy.funcsGroups.LowUsage, funcTo) { + mainteinedGroupsLoad.rateLowUsage -= reqToTransfer + } + + logger.Debugf("This node's state after requests forwarding: ") + nodePredictions, err := strategy.getNodeMetricPredictions(strategy.nodeInfo.nodeType, mainteinedGroupsLoad) + if err != nil { + return err + } + overload = strategy.isNodeOverloaded(nodePredictions) + + // Update nodeTo iterator + iterator[nodeTo] += 1 + if iterator[nodeTo] >= len(strategy.targetNodes[nodeTo]) { + iterator[nodeTo] = 0 + } + } else { + // Remove funcTo from possibilities of nodeTo + var functions []string + for i := 0; i < len(strategy.targetNodes[nodeTo]); i++ { + if funcTo != strategy.targetNodes[nodeTo][i] { + functions = append(functions, strategy.targetNodes[nodeTo][i]) + } + } + strategy.targetNodes[nodeTo] = functions + + // Reset functions iterator of nodeTo + if iterator[nodeTo] >= len(strategy.targetNodes[nodeTo]) { + iterator[nodeTo] = 0 + } + + // Delete nodeTo if has no more functions available + if len(strategy.targetNodes[nodeTo]) == 0 { + delete(strategy.targetNodes, nodeTo) + // Reset target nodes iterator + delete(iterator, nodeTo) + } + } + } else { + logger.Debugf("Selected function has no requests.") + // Remove funcTo from all target nodes possibilities + for targetID, targetFuncs := range strategy.targetNodes { + for i := 0; i < len(targetFuncs); i++ { + if targetFuncs[i] == funcTo { + var functions []string + for j := 0; j < len(targetFuncs); j++ { + if funcTo != targetFuncs[j] { + functions = append(functions, targetFuncs[j]) + } + } + strategy.targetNodes[targetID] = functions + + if iterator[targetID] >= len(strategy.targetNodes[targetID]) { + iterator[targetID] = 0 + } + + // Delete nodeTo if has no more functions available + if len(strategy.targetNodes[targetID]) == 0 { + delete(strategy.targetNodes, targetID) + // Reset target nodes iterator + delete(iterator, targetID) + } + break + } + } + } + } + } + + // Calculate weights + for i := 0; i < len(strategy.nodeInfo.funcs); i++ { + fun := strategy.nodeInfo.funcs[i] + weights[fun] = make(map[string]uint) + totalReq := strategy.nodeInfo.funcsRates[fun] + // Weight for this node + if totalReq == 0.0 { + weights[fun][myNodeID] = constants.HAProxyMaxWeight + } else { + weights[fun][myNodeID] = uint(math.Round((mainteined[fun] / totalReq) * constants.HAProxyMaxWeight)) + } + // Weights for neighbours + for neighID, _ := range entries { + if totalReq == 0.0 { + weights[fun][neighID] = 0 + } else { + weights[fun][neighID] = uint(math.Round((fwdRequests[neighID][fun] / totalReq) * constants.HAProxyMaxWeight)) + } + } + } + + return nil + }) + + if err != nil { + return nil, err + } + + debugWeightsNMS(weights) + + return weights, nil +} + +// Update HAProxy configuration with new weights +func (strategy *NodeMarginStrategy) setProxyWeights() error { + myID := _p2pHost.ID().String() + + var hacfg *HACfgNMS + strategy.nodestbl.SafeExec(func(entries map[string]*nodestbl.EntryNMS) error { + hacfg = strategy.createHACfgObject( + myID, + _config.OpenFaaSHost, + _config.OpenFaaSPort, + _config.HttpServerHost, + _config.HttpServerPort, + entries, + strategy.weights, + ) + return nil + }) + + err := strategy.updateHAProxyConfig(hacfg) + if err != nil { + return err + } + return nil +} + +// processMsgNodeInfoNMS processes a node info message received from pubsub +func (strategy *NodeMarginStrategy) processMsgNodeInfoNMS(sender string, msg *MsgNodeInfoNMS) error { + logger := logging.Logger() + myself := _p2pHost.ID().String() + + if sender == myself { + return nil // Ignore ourselves + } + + if logging.GetDebugMode() { + logger.Debugf("Received node info message from node %s", sender) + logger.Debugf("Node %s type: %d", sender, msg.NodeType) + logger.Debugf("Node %s HAProxyHost: %s", sender, msg.HAProxyHost) + logger.Debugf("Node %s HAProxyPort: %s", sender, msg.HAProxyPort) + + var funcs string + for i := 0; i < len(msg.Functions); i++ { + funcs += msg.Functions[i] + ", " + } + logger.Debugf("Node %s functions: %s", sender, funcs) + } + + strategy.nodestbl.SafeExec(func(entries map[string]*nodestbl.EntryNMS) error { + logger.Debugf("Setting received values for node %s into table", sender) + _, present := entries[sender] + if !present { + entries[sender] = &nodestbl.EntryNMS{ + CommonNeighbour: false, + Load: nodestbl.Load{}, + } + logger.Debugf("Node %s was not present and has been added to the table", sender) + } + entries[sender].TAlive = time.Now() + entries[sender].HAProxyHost = msg.HAProxyHost + entries[sender].HAProxyPort = msg.HAProxyPort + entries[sender].NodeType = msg.NodeType + entries[sender].Funcs = msg.Functions + + return nil + }) + + return nil +} + +// processMsgNodeMarginInfoNMS processes a node margin info message received from pubsub +func (strategy *NodeMarginStrategy) processMsgNodeMarginInfoNMS(sender string, msg *MsgNodeMarginInfoNMS) error { + logger := logging.Logger() + myself := _p2pHost.ID().String() + + if sender == myself { + return nil // Ignore ourselves + } + + strategy.nodestbl.SafeExec(func(entries map[string]*nodestbl.EntryNMS) error { + // Check if sender is a common neighbour. If not, ignore the message + if entries[sender].CommonNeighbour { + if logging.GetDebugMode() { + logger.Debugf("Received margin info message from node %s", sender) + logger.Debugf("Margin: %f", msg.Margin) + if msg.Load != (groupsLoad{}) { + logger.Debugf("Load: High Usage=%f, Low Usage=%f, Medium Usage=%f", + msg.Load.rateHighUsage, msg.Load.rateLowUsage, msg.Load.rateMediumUsage) + } + } + logger.Debugf("Setting received values for node %s into table", sender) + + // Check if exists the neighbour with "sender" ID with its info in entries before adding new info to avoid errors + _, exists := entries[sender] + if exists { + entries[sender].TAlive = time.Now() + entries[sender].Margin = msg.Margin + entries[sender].Load.RateHighUsage = msg.Load.rateHighUsage + entries[sender].Load.RateMediumUsage = msg.Load.rateLowUsage + entries[sender].Load.RateMediumUsage = msg.Load.rateLowUsage + } + } else { + logger.Debugf("Ignore margin info message from node %s (not a common neighbour)", sender) + } + return nil + }) + + return nil +} + +// updateHAProxyConfig updates the HAProxy config file with the provided object. +// Note: Go templates sort maps by key (see https://stackoverflow.com/questions/33860961/sorted-map-iteration-in-go-templates#comment76560806_33862260) +func (strategy *NodeMarginStrategy) updateHAProxyConfig(hacfg *HACfgNMS) error { + hacfg.Now = time.Now() + + // hacfg is a struct of type HACfgNMS, that is use as content + // for writing template file. + // Indeed, in template file is possible to access fields + // of this struct (see file of template .tmpl). + // Template is referred to a data structure, in that case HACfgNMS type. + // See https://golang.org/pkg/text/template/. + return strategy.hacfgupdater.UpdateHAConfig(hacfg) +} + +// Method which creates and returns the HACfgNMS object, +// used from method updateHAProxyConfig to update the HAProxy configuration +func (strategy *NodeMarginStrategy) createHACfgObject( + myNodeID string, + openFaaSHost string, + openFaaSPort uint, + httpServerHost string, + httpServerPort uint, + entries map[string]*nodestbl.EntryNMS, + funcsWeights map[string]map[string]uint, +) *HACfgNMS { + hacfg := &HACfgNMS{ + HACfg: HACfg{ + MyNodeID: myNodeID, + OpenFaaSHost: openFaaSHost, + OpenFaaSPort: openFaaSPort, + }, + + HttpServerHost: httpServerHost, + HttpServerPort: httpServerPort, + + Nodes: map[string]*HACfgNodeNMS{}, + Functions: map[string]*HACfgFuncNMS{}, + } + + // For each node write Host and port. + for nodeID, entry := range entries { + hacfg.Nodes[nodeID] = &HACfgNodeNMS{ + HAProxyHost: entry.HAProxyHost, + HAProxyPort: entry.HAProxyPort, + } + } + + // For each function write weights for load-balancing + for funcName, weights := range funcsWeights { + hacfg.Functions[funcName] = &HACfgFuncNMS{ + Weights: weights, + } + } + + // Weight are used in template file for load-balancing, with custom + // weights toward other nodes of p2p net. + // See: https://serverfault.com/questions/113637/haproxy-roundrobin-weights + // Also doc: http://cbonte.github.io/haproxy-dconv/configuration-1.4.html#5-weight + + return hacfg +} diff --git a/dfaasagent/agent/logic/recalc.go b/dfaasagent/agent/logic/recalc.go deleted file mode 100644 index d2f1fa0..0000000 --- a/dfaasagent/agent/logic/recalc.go +++ /dev/null @@ -1,504 +0,0 @@ -package logic - -import ( - "fmt" - "time" - "encoding/json" - "os" - "io/ioutil" - - "github.com/bcicen/go-haproxy" - "github.com/libp2p/go-libp2p-core/peer" - "github.com/pkg/errors" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/communication" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/constants" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/hasock" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/logging" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/nodestbl" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/utils/p2phostutils" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/forecaster" -) - -//////////////////// PRIVATE VARS FOR RECALC //////////////////// - -// Private struct containing variables specific to the recalc algorithm, which -// need to be shared amongst the two recalc steps -var _recalc = struct { - nodeIDs []peer.ID // IDs of the connected p2p nodes - stats []*haproxy.Stat // HAProxy stats - funcs map[string]uint // Our OpenFaaS functions with dfaas.maxrate limits - userRates map[string]float64 // Invocation rates for users only (in req/s) (from HAProxy stick-tables) - afet map[string]float64 // Average Function Execution Times (from Prometheus) - invoc map[string]map[string]float64 // Invocation rates (in req/s) (from Prometheus) - serviceCount map[string]int - cpuUsage map[string]float64 - ramUsage map[string]float64 - perFuncCpuUsage map[string]float64 - perFuncRamUsage map[string]float64 - - // For each function, the value is true if the node is currently in overload - // mode (req/s >= maxrate), false if underload - overloads map[string]bool -}{} - -// var expJson ExperimentJson // Struct that represent Json file -var it = 0 // Number of agent loop iterations - -//////////////////// PUBLIC FUNCTIONS FOR RECALC //////////////////// - -// RunRecalc handles the periodic execution of the recalculation function. It -// should run in a goroutine -func RunRecalc() error { - var millisNow, millisSleep int64 - var err error - - millisInterval := int64(_config.RecalcPeriod / time.Millisecond) - millisIntervalHalf := millisInterval / 2 - - for { - millisNow = time.Now().UnixNano() / 1000000 - millisSleep = millisInterval - (millisNow % millisInterval) - time.Sleep(time.Duration(millisSleep) * time.Millisecond) - - err = recalcStep1() - if err != nil { - return err - } - - millisNow = time.Now().UnixNano() / 1000000 - millisSleep = millisInterval - ((millisNow + millisIntervalHalf) % millisInterval) - time.Sleep(time.Duration(millisSleep) * time.Millisecond) - - err = recalcStep2() - if err != nil { - return err - } - } -} - -//////////////////// PRIVATE FUNCTIONS FOR RECALC //////////////////// - -func recalcStep1() error { - var err error - logger := logging.Logger() - millisNow := time.Now().UnixNano() / 1000000 - logger.Debugf("#################### RECALC: STEP 1 (UnixMillis %d) ####################", millisNow) - - //////////////////// EXAMPLE TEXT MESSAGE //////////////////// - - //err := communication.MarshAndPublish(MsgText{ - // MsgType: StrMsgTextType, - // Text: "I'm alive!", - //}) - //if err != nil { - // return err - //} - - //////////////////// GET LIST OF CONNECTED NODES //////////////////// - - _recalc.nodeIDs = p2phostutils.GetConnNodeIDsUniq(_p2pHost) - debugConnectedNodes(_recalc.nodeIDs) - - //////////////////// GATHER HAPROXY STATS //////////////////// - - //_recalc.stats, err = _hasockClient.Stats() - //if err != nil { - // return errors.Wrap(err, "Error while gathering HAProxy stats from socket") - //} - //debugHAProxyStats(_recalc.stats) - - //////////////////// GATHER INFO ABOUT OPENFAAS FUNCTIONS //////////////////// - - _recalc.funcs, err = _offuncsClient.GetFuncs() - if err != nil { - return errors.Wrap(err, "Error while getting functions info from OpenFaaS") - } - debugFuncs(_recalc.funcs) - - //////////////////// GATHER INFO FROM HAPROXY STICKTABLES st_users_func_* //////////////////// - - _recalc.userRates = map[string]float64{} - - for funcName := range _recalc.funcs { - stName := fmt.Sprintf("st_users_func_%s", funcName) - stContent, err := hasock.ReadStickTable(&_hasockClient, stName) - - if err != nil { - errWrap := errors.Wrap(err, "Error while reading the stick-table \""+stName+"\" from the HAProxy socket") - logger.Error(errWrap) - logger.Warn("Not changing userRates for stick-table \"" + stName + "\" but this should be ok") - } else { - for _, stEntry := range stContent { - // There should be only one line, with key "80", which is the port of the HAProxy frontend - _recalc.userRates[funcName] = float64(stEntry.HTTPReqCnt) / float64(_config.RecalcPeriod/time.Second) * 2 - // Note: the whole formula is multiplied by two at the end because we know we restarted HAProxy at the end of recalcStep2 - } - } - - debugStickTable(stName, stContent) - } - debugHAProxyUserRates(_recalc.userRates) - - //////////////////// [NEW] GATHER INFO FROM HAPROXY STICKTABLES st_local_func_* //////////////////// - - for funcName := range _recalc.funcs { - stName := fmt.Sprintf("st_local_func_%s", funcName) - stContent, err := hasock.ReadStickTable(&_hasockClient, stName) - - if err != nil { - errWrap := errors.Wrap(err, "Error while reading the stick-table \""+stName+"\" from the HAProxy socket") - logger.Error(errWrap) - logger.Warn("Not changing local rates for stick-table \"" + stName + "\" but this should be ok") - } - - debugStickTable(stName, stContent) - } - - //////////////////// [NEW] GATHER INFO FOR STICKTABLES OF DATA FROM OTHER NODES //////////////////// - /* - for funcName := range _recalc.funcs { - for _, nodeID := range _recalc.nodeIDs { - stName := fmt.Sprintf("st_other_node_%s_%s", funcName, nodeID.String()) - stContent, err := hasock.ReadStickTable(&_hasockClient, stName) - - if err != nil { - errWrap := errors.Wrap(err, "Error while reading the stick-table \""+stName+"\" from the HAProxy socket") - logger.Error(errWrap) - logger.Warn("Not changing other nodes rates for stick-table \"" + stName + "\" but this should be ok") - } - - debugStickTable(stName, stContent) - } - } - */ - //////////////////// GATHER INFO FROM PROMETHEUS //////////////////// - - _recalc.afet, err = _ofpromqClient.QueryAFET(_config.RecalcPeriod) - if err != nil { - return errors.Wrap(err, "Error while execting Prometheus query") - } - debugPromAFET(_config.RecalcPeriod, _recalc.afet) - - _recalc.invoc, err = _ofpromqClient.QueryInvoc(_config.RecalcPeriod) - if err != nil { - return errors.Wrap(err, "Error while executing Prometheus query") - } - debugPromInvoc(_config.RecalcPeriod, _recalc.invoc) - - _recalc.serviceCount, err = _ofpromqClient.QueryServiceCount() - if err != nil { - return errors.Wrap(err, "Error while executing Prometheus query") - } - debugPromServiceCount(_recalc.serviceCount) - - _recalc.cpuUsage, err = _ofpromqClient.QueryCPUusage(_config.RecalcPeriod) - if err != nil { - return errors.Wrap(err, "Error while executing Prometheus query") - } - debugPromCPUusage(_config.RecalcPeriod, _recalc.cpuUsage) - - _recalc.ramUsage, err = _ofpromqClient.QueryRAMusage(_config.RecalcPeriod) - if err != nil { - return errors.Wrap(err, "Error while executing Prometheus query") - } - debugPromRAMusage(_config.RecalcPeriod, _recalc.ramUsage) - - if len(_recalc.funcs) > 0 { - // Get function's name as a slice. - funcNames := make([]string, len(_recalc.funcs)) - i := 0 - for k := range _recalc.funcs { - funcNames[i] = k - i++ - } - - _recalc.perFuncCpuUsage, err = _ofpromqClient.QueryCPUusagePerFunction(_config.RecalcPeriod, funcNames) - if err != nil { - return errors.Wrap(err, "Error while executing Prometheus query") - } - debugPromCPUusagePerFunction(_config.RecalcPeriod, _recalc.perFuncCpuUsage) - - _recalc.perFuncRamUsage, err = _ofpromqClient.QueryRAMusagePerFunction(_config.RecalcPeriod, funcNames) - if err != nil { - return errors.Wrap(err, "Error while executing Prometheus query") - } - debugPromRAMusagePerFunction(_config.RecalcPeriod, _recalc.perFuncRamUsage) - } - - ///////// GET NODE USAGE PREDICTIONS FROM FORECASTER /////////////// - var functionRates = make(map[string]float64) - for funcName, item := range _recalc.invoc { - functionRates[funcName] = 0 - for _, rate := range item { - functionRates[funcName] += rate - } - } - - // Read functions groups from group_list.json - _groupListFilePath := _config.GroupListFilePath - jsonGroupsFile, err := os.Open(_groupListFilePath) - if err != nil { - return errors.Wrap(err, "Error while reading group list json file") - } - jsonGroups, err := ioutil.ReadAll(jsonGroupsFile) - if err != nil { - return errors.Wrap(err, "Error while converting group list json file into byte array") - } - defer jsonGroupsFile.Close() - - // Convert functions rates in groups rates and prepare json request - var functionGroups forecaster.Groups - json.Unmarshal(jsonGroups, &functionGroups) - - var request forecaster.PredictionRequest - request.Node_type = _config.NodeType - - forecaster.SetRequestGroupsRates(functionRates, functionGroups, &request) - jsonBody, err := json.Marshal(request) - if err != nil { - return errors.Wrap(err, "Error while constructing json request to Forecaster") - } - jsonBodyStr := string(jsonBody) - logger.Debugf("Json request to Forecaster: %s", jsonBody) - - // send request to Forecaster - var jsonResp string - jsonResp, err = _forecasterClient.GetNodeUsagePredictions(jsonBodyStr) - if err != nil { - return errors.Wrap(err, "Error while executing request to Forecaster") - } - logger.Debugf("Forecaster Json response: %s", jsonResp) - - //////////////////// OVERLOAD / UNDERLOAD MODE DECISION //////////////////// - - _recalc.overloads = map[string]bool{} - - for funcName, maxRate := range _recalc.funcs { - logger.Debugf("Computing if %s function is on overload", funcName) - invocRate, present := _recalc.userRates[funcName] - - if !present || invocRate < float64(maxRate) { - _recalc.overloads[funcName] = false - } else { - _recalc.overloads[funcName] = true - } - } - debugOverloads(_recalc.overloads) // Debug purpose. - - it++ - - //////////////////// LIMITS AND WEIGHTS CALCULATIONS //////////////////// - - for funcName, ovrld := range _recalc.overloads { - logger.Debugf("Calculating limits and weights for %s function", funcName) - if ovrld { - // Set all funcData.LimitIn to zero for this function - logger.Debugf("%s function is on overload! Setting LimitIn to 0", funcName) - _nodestbl.SafeExec(func(entries map[string]*nodestbl.Entry) error { - for _, entry := range entries { - funcData, present := entry.FuncsData[funcName] - if present { - funcData.LimitIn = 0 - } - } - - return nil - }) - } else { - // Calculate the rate margin - logger.Debugf("Calculating rate margin for %s function", funcName) - invocRate, present := _recalc.userRates[funcName] - maxRate := _recalc.funcs[funcName] - logger.Debugf("%s function invocation rate is %f", funcName, invocRate) - logger.Debugf("%s function max rate is %d", funcName, maxRate) - var margin uint - if present { - margin = maxRate - uint(invocRate) - } else { - margin = maxRate - } - - logger.Debugf("%s function margin equal to %d", funcName, margin) - - // Set all funcData.Weight to zero for this function, and set the - // LimitIn for each node - logger.Debugf("Setting Weight to 0 for %s function and setting LimitIn for each node", funcName) - _nodestbl.SafeExec(func(entries map[string]*nodestbl.Entry) error { - nNodes := uint(0) - - for _, entry := range entries { - funcData, present := entry.FuncsData[funcName] - if present { - // Weights represent likelihood of send a request toward i-th - // function instance. - // Considering that this function instance is labelled as "underload" - // it is not necessary to send request towards other nodes. - funcData.NodeWeight = 0 - nNodes++ - logger.Debugf("Set Weight to 0 for %s function", funcName) - } - } - - // Note: if nNodes == 0, it means that (for now) i am the only - // one to have this function, so i don't have to set the LimitIn - // for anyone because no one needs it. Note also that the - // nodestbl.SetReceivedValues() function sets the LimitIn to - // zero, so not setting it here is ok - - if nNodes > 0 { - limitIn := margin / nNodes // Equal distribution! May be - // replaced in the future with a more efficient algorithm - - for _, entry := range entries { - funcData, present := entry.FuncsData[funcName] - if present { - funcData.LimitIn = float64(limitIn) - logger.Debugf("Set LiminIn to %f for %s function", funcData.LimitIn, funcName) - } - } - } - - return nil - }) - } - } - - //////////////////// PRINT CONTENT OF NODESTBL //////////////////// - - _nodestbl.SafeExec(func(entries map[string]*nodestbl.Entry) error { - debugNodesTblContent(entries) - return nil - }) - - //////////////////// P2P MESSAGES PUBLISHING //////////////////// - - limits := map[string]map[string]float64{} - - _nodestbl.SafeExec(func(entries map[string]*nodestbl.Entry) error { - for _, nodeID := range _recalc.nodeIDs { - strNodeID := nodeID.String() - - entry, present := entries[strNodeID] - if present { - // If this node has sent me some messages before, i send him the - // limits according to the nodestbl - limits[strNodeID] = map[string]float64{} - for funcName, funcData := range entry.FuncsData { - limits[strNodeID][funcName] = funcData.LimitIn - } - } else { - // If this node has not sent me anything before, i send him all - // the functions i have, but with all limits set to zero - limits[strNodeID] = map[string]float64{} - for funcName := range _recalc.funcs { - limits[strNodeID][funcName] = 0 - } - } - } - - return nil - }) - - msg := MsgNodeInfo{ - MsgType: StrMsgNodeInfoType, - HAProxyHost: _config.HAProxyHost, - HAProxyPort: _config.HAProxyPort, - FuncLimits: limits, - } - debugMsgNodeInfo(msg) - - err = communication.MarshAndPublish(msg) - if err != nil { - return err - } - //////////////////// IF EVERYTHING OK, RETURN NIL //////////////////// - - return nil -} - -func recalcStep2() error { - var err error - logger := logging.Logger() - millisNow := time.Now().UnixNano() / 1000000 - logger.Debugf("#################### RECALC: STEP 2 (UnixMillis %d) ####################", millisNow) - - //////////////////// CALC WEIGHTS FOR FUNCTIONS IN OVERLOAD MODE //////////////////// - - for funcName, ovrld := range _recalc.overloads { - if ovrld { - // Calculate the weights for this function - _nodestbl.SafeExec(func(entries map[string]*nodestbl.Entry) error { - totLimitsOut := float64(0) - - // Loop on all node in _nodestbl, check if that node - // has this function running; if is present sum the amount of - // req/sec forwardable to this node. - for _, entry := range entries { - funcData, present := entry.FuncsData[funcName] - if present { - totLimitsOut += funcData.LimitOut - } - } - - if totLimitsOut <= 0 { - // If no node is available to help me with this function, i - // set totLimitsOut to 1, only to avoid division by zero - // problems. All the weights will be zero anyway - totLimitsOut = 1 - } - - // Loop on all all node in _nodestbl, if function funcName is present in this node - // that is in "oveload" state, is present also in i-th node, calculate - // weight for the instance of function in i-th node. - // Weight is based on LimitOut (number of req/sec forwardable to this node) - // divided by total forwardable request. - // All multiplied by 100, that is the sum of weights; this op allow to - // express weights as the percentage of requests forwarded by this node to - // other functions that runs on other nodes. - for _, entry := range entries { - funcData, present := entry.FuncsData[funcName] - if present { - funcData.NodeWeight = uint(funcData.LimitOut * constants.HAProxyMaxWeight / totLimitsOut) - } - } - - return nil - }) - } - } - - //////////////////// PRINT CONTENT OF NODESTBL //////////////////// - - _nodestbl.SafeExec(func(entries map[string]*nodestbl.Entry) error { - debugNodesTblContent(entries) - return nil - }) - - //////////////////// UPDATE HAPROXY CONFIGURATION //////////////////// - - strMyself := _p2pHost.ID().String() - - var hacfg *HACfg - _nodestbl.SafeExec(func(entries map[string]*nodestbl.Entry) error { - hacfg = createHACfgObject( - strMyself, - _config.OpenFaaSHost, - _config.OpenFaaSPort, - _config.HttpServerHost, - _config.HttpServerPort, - _config.RecalcPeriod, - entries, - _recalc.funcs, - ) - return nil - }) - - err = updateHAProxyConfig(hacfg) - if err != nil { - return err - } - - //////////////////// IF EVERYTHING OK, RETURN NIL //////////////////// - - return nil -} diff --git a/dfaasagent/agent/logic/recalcstrategy.go b/dfaasagent/agent/logic/recalcstrategy.go new file mode 100644 index 0000000..1bfdc45 --- /dev/null +++ b/dfaasagent/agent/logic/recalcstrategy.go @@ -0,0 +1,681 @@ +package logic + +import ( + "fmt" + "time" + "encoding/json" + pubsub "github.com/libp2p/go-libp2p-pubsub" + "github.com/bcicen/go-haproxy" + "github.com/libp2p/go-libp2p-core/peer" + "github.com/pkg/errors" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/communication" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/hacfgupd" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/constants" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/hasock" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/ofpromq" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/offuncs" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/logging" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/nodestbl" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/utils/p2phostutils" +) + +// In this file is implemented the Recalc strategy + + +// Struct representing a RecalcStrategy instance, which implements the Strategy interface +type RecalcStrategy struct { + hacfgupdater hacfgupd.Updater + nodestbl *nodestbl.TableRecalc + ofpromqClient ofpromq.Client + offuncsClient offuncs.Client + hasockClient haproxy.HAProxyClient + recalc recalc + it int // = 0 // Number of agent loop iterations +} + +// Private struct containing variables specific to the recalc algorithm, which +// need to be shared amongst the two recalc steps +type recalc struct { + nodeIDs []peer.ID // IDs of the connected p2p nodes + stats []*haproxy.Stat // HAProxy stats + funcs map[string]uint // Our OpenFaaS functions with dfaas.maxrate limits + userRates map[string]float64 // Invocation rates for users only (in req/s) (from HAProxy stick-tables) + afet map[string]float64 // Average Function Execution Times (from Prometheus) + invoc map[string]map[string]float64 // Invocation rates (in req/s) (from Prometheus) + serviceCount map[string]int + cpuUsage map[string]float64 + ramUsage map[string]float64 + perFuncCpuUsage map[string]float64 + perFuncRamUsage map[string]float64 + + // For each function, the value is true if the node is currently in overload + // mode (req/s >= maxrate), false if underload + overloads map[string]bool +} + +//////////////////// PUBLIC FUNCTIONS FOR RECALC //////////////////// + +// RunStrategy handles the periodic execution of the recalculation function. It +// should run in a goroutine +func (strategy *RecalcStrategy) RunStrategy() error { + var millisNow, millisSleep int64 + var err error + + millisInterval := int64(_config.RecalcPeriod / time.Millisecond) + millisIntervalHalf := millisInterval / 2 + + for { + millisNow = time.Now().UnixNano() / 1000000 + millisSleep = millisInterval - (millisNow % millisInterval) + time.Sleep(time.Duration(millisSleep) * time.Millisecond) + + err = strategy.recalcStep1() + if err != nil { + return err + } + + millisNow = time.Now().UnixNano() / 1000000 + millisSleep = millisInterval - ((millisNow + millisIntervalHalf) % millisInterval) + time.Sleep(time.Duration(millisSleep) * time.Millisecond) + + err = strategy.recalcStep2() + if err != nil { + return err + } + } +} + +// OnReceived should be executed every time a message from a peer is received +func (strategy *RecalcStrategy) OnReceived(msg *pubsub.Message) error { + var msgForType struct{ MsgType string } + err := json.Unmarshal(msg.GetData(), &msgForType) + if err != nil { + return errors.Wrap(err, "Error while deserializing a message from the PubSub subscription") + } + + switch msgForType.MsgType { + case StrMsgTextType: + var objMsg MsgText + err := json.Unmarshal(msg.GetData(), &objMsg) + if err != nil { + return errors.Wrap(err, "Error while deserializing a message from the PubSub subscription") + } + + processMsgText(msg.GetFrom().String(), &objMsg) + case StrMsgNodeInfoTypeRecalc: + var objMsg MsgNodeInfoRecalc + err := json.Unmarshal(msg.GetData(), &objMsg) + if err != nil { + return errors.Wrap(err, "Error while deserializing a message from the PubSub subscription") + } + + strategy.processMsgNodeInfoRecalc(msg.GetFrom().String(), &objMsg) + } + + return nil +} + +//////////////////// PRIVATE FUNCTIONS FOR RECALC //////////////////// + +func (strategy *RecalcStrategy) recalcStep1() error { + var err error + logger := logging.Logger() + millisNow := time.Now().UnixNano() / 1000000 + logger.Debugf("#################### RECALC: STEP 1 (UnixMillis %d) ####################", millisNow) + + //////////////////// EXAMPLE TEXT MESSAGE //////////////////// + + //err := communication.MarshAndPublish(MsgText{ + // MsgType: StrMsgTextType, + // Text: "I'm alive!", + //}) + //if err != nil { + // return err + //} + + //////////////////// GET LIST OF CONNECTED NODES //////////////////// + + strategy.recalc.nodeIDs = p2phostutils.GetConnNodeIDsUniq(_p2pHost) + debugConnectedNodes(strategy.recalc.nodeIDs) + + //////////////////// GATHER HAPROXY STATS //////////////////// + + //_recalc.stats, err = _hasockClient.Stats() + //if err != nil { + // return errors.Wrap(err, "Error while gathering HAProxy stats from socket") + //} + //debugHAProxyStats(_recalc.stats) + + //////////////////// GATHER INFO ABOUT OPENFAAS FUNCTIONS //////////////////// + + strategy.recalc.funcs, err = strategy.offuncsClient.GetFuncsWithMaxRates() + if err != nil { + return errors.Wrap(err, "Error while getting functions info from OpenFaaS") + } + debugFuncs(strategy.recalc.funcs) + + //////////////////// GATHER INFO FROM HAPROXY STICKTABLES st_users_func_* //////////////////// + + strategy.recalc.userRates = map[string]float64{} + + for funcName := range strategy.recalc.funcs { + stName := fmt.Sprintf("st_users_func_%s", funcName) + stContent, err := hasock.ReadStickTable(&strategy.hasockClient, stName) + + if err != nil { + errWrap := errors.Wrap(err, "Error while reading the stick-table \""+stName+"\" from the HAProxy socket") + logger.Error(errWrap) + logger.Warn("Not changing userRates for stick-table \"" + stName + "\" but this should be ok") + } else { + for _, stEntry := range stContent { + // There should be only one line, with key "80", which is the port of the HAProxy frontend + strategy.recalc.userRates[funcName] = float64(stEntry.HTTPReqCnt) / float64(_config.RecalcPeriod/time.Second) * 2 + // Note: the whole formula is multiplied by two at the end because we know we restarted HAProxy at the end of recalcStep2 + } + } + + debugStickTable(stName, stContent) + } + debugHAProxyUserRates(strategy.recalc.userRates) + + //////////////////// [NEW] GATHER INFO FROM HAPROXY STICKTABLES st_local_func_* //////////////////// + + for funcName := range strategy.recalc.funcs { + stName := fmt.Sprintf("st_local_func_%s", funcName) + stContent, err := hasock.ReadStickTable(&strategy.hasockClient, stName) + + if err != nil { + errWrap := errors.Wrap(err, "Error while reading the stick-table \""+stName+"\" from the HAProxy socket") + logger.Error(errWrap) + logger.Warn("Not changing local rates for stick-table \"" + stName + "\" but this should be ok") + } + + debugStickTable(stName, stContent) + } + + //////////////////// [NEW] GATHER INFO FOR STICKTABLES OF DATA FROM OTHER NODES //////////////////// + /* + for funcName := range _recalc.funcs { + for _, nodeID := range _recalc.nodeIDs { + stName := fmt.Sprintf("st_other_node_%s_%s", funcName, nodeID.String()) + stContent, err := hasock.ReadStickTable(&_hasockClient, stName) + + if err != nil { + errWrap := errors.Wrap(err, "Error while reading the stick-table \""+stName+"\" from the HAProxy socket") + logger.Error(errWrap) + logger.Warn("Not changing other nodes rates for stick-table \"" + stName + "\" but this should be ok") + } + + debugStickTable(stName, stContent) + } + } + */ + //////////////////// GATHER INFO FROM PROMETHEUS //////////////////// + + strategy.recalc.afet, err = strategy.ofpromqClient.QueryAFET(_config.RecalcPeriod) + if err != nil { + return errors.Wrap(err, "Error while execting Prometheus query") + } + debugPromAFET(_config.RecalcPeriod, strategy.recalc.afet) + + strategy.recalc.invoc, err = strategy.ofpromqClient.QueryInvoc(_config.RecalcPeriod) + if err != nil { + return errors.Wrap(err, "Error while executing Prometheus query") + } + debugPromInvoc(_config.RecalcPeriod, strategy.recalc.invoc) + + strategy.recalc.serviceCount, err = strategy.ofpromqClient.QueryServiceCount() + if err != nil { + return errors.Wrap(err, "Error while executing Prometheus query") + } + debugPromServiceCount(strategy.recalc.serviceCount) + + strategy.recalc.cpuUsage, err = strategy.ofpromqClient.QueryCPUusage(_config.RecalcPeriod) + if err != nil { + return errors.Wrap(err, "Error while executing Prometheus query") + } + debugPromCPUusage(_config.RecalcPeriod, strategy.recalc.cpuUsage) + + strategy.recalc.ramUsage, err = strategy.ofpromqClient.QueryRAMusage(_config.RecalcPeriod) + if err != nil { + return errors.Wrap(err, "Error while executing Prometheus query") + } + debugPromRAMusage(_config.RecalcPeriod, strategy.recalc.ramUsage) + + if len(strategy.recalc.funcs) > 0 { + // Get function's name as a slice. + funcNames := make([]string, len(strategy.recalc.funcs)) + i := 0 + for k := range strategy.recalc.funcs { + funcNames[i] = k + i++ + } + + strategy.recalc.perFuncCpuUsage, err = strategy.ofpromqClient.QueryCPUusagePerFunction(_config.RecalcPeriod, funcNames) + if err != nil { + return errors.Wrap(err, "Error while executing Prometheus query") + } + debugPromCPUusagePerFunction(_config.RecalcPeriod, strategy.recalc.perFuncCpuUsage) + + strategy.recalc.perFuncRamUsage, err = strategy.ofpromqClient.QueryRAMusagePerFunction(_config.RecalcPeriod, funcNames) + if err != nil { + return errors.Wrap(err, "Error while executing Prometheus query") + } + debugPromRAMusagePerFunction(_config.RecalcPeriod, strategy.recalc.perFuncRamUsage) + } + + //////////////////// OVERLOAD / UNDERLOAD MODE DECISION //////////////////// + + strategy.recalc.overloads = map[string]bool{} + + for funcName, maxRate := range strategy.recalc.funcs { + logger.Debugf("Computing if %s function is on overload", funcName) + invocRate, present := strategy.recalc.userRates[funcName] + + if !present || invocRate < float64(maxRate) { + strategy.recalc.overloads[funcName] = false + } else { + strategy.recalc.overloads[funcName] = true + } + } + debugOverloads(strategy.recalc.overloads) // Debug purpose. + + strategy.it++ + + //////////////////// LIMITS AND WEIGHTS CALCULATIONS //////////////////// + + for funcName, ovrld := range strategy.recalc.overloads { + logger.Debugf("Calculating limits and weights for %s function", funcName) + if ovrld { + // Set all funcData.LimitIn to zero for this function + logger.Debugf("%s function is on overload! Setting LimitIn to 0", funcName) + strategy.nodestbl.SafeExec(func(entries map[string]*nodestbl.EntryRecalc) error { + for _, entry := range entries { + funcData, present := entry.FuncsData[funcName] + if present { + funcData.LimitIn = 0 + } + } + + return nil + }) + } else { + // Calculate the rate margin + logger.Debugf("Calculating rate margin for %s function", funcName) + invocRate, present := strategy.recalc.userRates[funcName] + maxRate := strategy.recalc.funcs[funcName] + logger.Debugf("%s function invocation rate is %f", funcName, invocRate) + logger.Debugf("%s function max rate is %d", funcName, maxRate) + var margin uint + if present { + margin = maxRate - uint(invocRate) + } else { + margin = maxRate + } + + logger.Debugf("%s function margin equal to %d", funcName, margin) + + // Set all funcData.Weight to zero for this function, and set the + // LimitIn for each node + logger.Debugf("Setting Weight to 0 for %s function and setting LimitIn for each node", funcName) + strategy.nodestbl.SafeExec(func(entries map[string]*nodestbl.EntryRecalc) error { + nNodes := uint(0) + + for _, entry := range entries { + funcData, present := entry.FuncsData[funcName] + if present { + // Weights represent likelihood of send a request toward i-th + // function instance. + // Considering that this function instance is labelled as "underload" + // it is not necessary to send request towards other nodes. + funcData.NodeWeight = 0 + nNodes++ + logger.Debugf("Set Weight to 0 for %s function", funcName) + } + } + + // Note: if nNodes == 0, it means that (for now) i am the only + // one to have this function, so i don't have to set the LimitIn + // for anyone because no one needs it. Note also that the + // nodestbl.SetReceivedValues() function sets the LimitIn to + // zero, so not setting it here is ok + + if nNodes > 0 { + limitIn := margin / nNodes // Equal distribution! May be + // replaced in the future with a more efficient algorithm + + for _, entry := range entries { + funcData, present := entry.FuncsData[funcName] + if present { + funcData.LimitIn = float64(limitIn) + logger.Debugf("Set LiminIn to %f for %s function", funcData.LimitIn, funcName) + } + } + } + + return nil + }) + } + } + + //////////////////// PRINT CONTENT OF NODESTBL //////////////////// + + strategy.nodestbl.SafeExec(func(entries map[string]*nodestbl.EntryRecalc) error { + debugNodesTblContent(entries) + return nil + }) + + //////////////////// P2P MESSAGES PUBLISHING //////////////////// + + limits := map[string]map[string]float64{} + + strategy.nodestbl.SafeExec(func(entries map[string]*nodestbl.EntryRecalc) error { + for _, nodeID := range strategy.recalc.nodeIDs { + strNodeID := nodeID.String() + + entry, present := entries[strNodeID] + if present { + // If this node has sent me some messages before, i send him the + // limits according to the nodestbl + limits[strNodeID] = map[string]float64{} + for funcName, funcData := range entry.FuncsData { + limits[strNodeID][funcName] = funcData.LimitIn + } + } else { + // If this node has not sent me anything before, i send him all + // the functions i have, but with all limits set to zero + limits[strNodeID] = map[string]float64{} + for funcName := range strategy.recalc.funcs { + limits[strNodeID][funcName] = 0 + } + } + } + + return nil + }) + + msg := MsgNodeInfoRecalc{ + MsgType: StrMsgNodeInfoTypeRecalc, + HAProxyHost: _config.HAProxyHost, + HAProxyPort: _config.HAProxyPort, + FuncLimits: limits, + } + debugMsgNodeInfoRecalc(msg) + + err = communication.MarshAndPublish(msg) + if err != nil { + return err + } + //////////////////// IF EVERYTHING OK, RETURN NIL //////////////////// + + return nil +} + +func (strategy *RecalcStrategy) recalcStep2() error { + var err error + logger := logging.Logger() + millisNow := time.Now().UnixNano() / 1000000 + logger.Debugf("#################### RECALC: STEP 2 (UnixMillis %d) ####################", millisNow) + + //////////////////// CALC WEIGHTS FOR FUNCTIONS IN OVERLOAD MODE //////////////////// + + for funcName, ovrld := range strategy.recalc.overloads { + if ovrld { + // Calculate the weights for this function + strategy.nodestbl.SafeExec(func(entries map[string]*nodestbl.EntryRecalc) error { + totLimitsOut := float64(0) + + // Loop on all node in _nodestbl, check if that node + // has this function running; if is present sum the amount of + // req/sec forwardable to this node. + for _, entry := range entries { + funcData, present := entry.FuncsData[funcName] + if present { + totLimitsOut += funcData.LimitOut + } + } + + if totLimitsOut <= 0 { + // If no node is available to help me with this function, i + // set totLimitsOut to 1, only to avoid division by zero + // problems. All the weights will be zero anyway + totLimitsOut = 1 + } + + // Loop on all all node in _nodestbl, if function funcName is present in this node + // that is in "oveload" state, is present also in i-th node, calculate + // weight for the instance of function in i-th node. + // Weight is based on LimitOut (number of req/sec forwardable to this node) + // divided by total forwardable request. + // All multiplied by 100, that is the sum of weights; this op allow to + // express weights as the percentage of requests forwarded by this node to + // other functions that runs on other nodes. + for _, entry := range entries { + funcData, present := entry.FuncsData[funcName] + if present { + funcData.NodeWeight = uint(funcData.LimitOut * constants.HAProxyMaxWeight / totLimitsOut) + } + } + + return nil + }) + } + } + + //////////////////// PRINT CONTENT OF NODESTBL //////////////////// + + strategy.nodestbl.SafeExec(func(entries map[string]*nodestbl.EntryRecalc) error { + debugNodesTblContent(entries) + return nil + }) + + //////////////////// UPDATE HAPROXY CONFIGURATION //////////////////// + + strMyself := _p2pHost.ID().String() + + var hacfg *HACfgRecalc + strategy.nodestbl.SafeExec(func(entries map[string]*nodestbl.EntryRecalc) error { + hacfg = strategy.createHACfgObject( + strMyself, + _config.OpenFaaSHost, + _config.OpenFaaSPort, + _config.HttpServerHost, + _config.HttpServerPort, + _config.RecalcPeriod, + entries, + strategy.recalc.funcs, + ) + return nil + }) + + err = strategy.updateHAProxyConfig(hacfg) + if err != nil { + return err + } + + //////////////////// IF EVERYTHING OK, RETURN NIL //////////////////// + + return nil +} + +// processMsgNodeInfoRecalc processes a node info message received from pubsub +func (strategy *RecalcStrategy) processMsgNodeInfoRecalc(sender string, msg *MsgNodeInfoRecalc) error { + logger := logging.Logger() + myself := _p2pHost.ID().String() + + if sender == myself { + return nil // Ignore ourselves + } + + if logging.GetDebugMode() { + logger.Debugf("Received node info message from node %s", sender) + for _nodeID, _limits := range msg.FuncLimits { + logger.Debugf("Functions limits for node %s:", _nodeID) + for funcName := range _limits { + logger.Debugf(" Function %s LimitOut: %f", funcName, _limits[funcName]) + } + } + } + + // Note: if the sender node do not "know" us (we aren't in his FuncLimits) we just ignore his message + funcLimits, present := msg.FuncLimits[myself] + if present { + logger.Debugf("Setting received values for node %s into table", sender) + return strategy.nodestbl.SafeExec(func(entries map[string]*nodestbl.EntryRecalc) error { + // If the message arrives from a sender node with ID nodeID that is + // not present in _nodesbl yet, it is added to the table. + _, present := entries[sender] + if !present { + entries[sender] = &nodestbl.EntryRecalc{ + FuncsData: map[string]*nodestbl.FuncData{}, + } + logger.Debugf("Node %s was not present and has been added to the table", sender) + } + + entries[sender].TAlive = time.Now() + + entries[sender].HAProxyHost = msg.HAProxyHost + entries[sender].HAProxyPort = msg.HAProxyPort + + // Remove from my table the functions limits which are no more present + // in the new updated message + logger.Debugf("Removing functions limits no more present in the received message from node %s", sender) + for funcName := range entries[sender].FuncsData { + // Once this routine executed a message from another node of the + // p2p net has been received. + // If I (and I am the receiver node) stored in _nodestbl functions + // that are not more present in sender node, identified by the fact + // that they are not more present in received message, I can remove them + // from my local table. + _, present := funcLimits[funcName] + if !present { + delete(entries[sender].FuncsData, funcName) + logger.Debugf("%s function is no more present in the received message from node %s and has been removed", funcName, sender) + } + } + + // Update the functions limits with the received values (also add new + // functions which weren't present before) + logger.Debugf("Updating functions limits with received values from node %s", sender) + for funcName, limit := range funcLimits { + _, present := entries[sender].FuncsData[funcName] + if present { + // For each function received by sender node, updates + // corrisponding line of _nodestbl table. + // If entry for sender node is present, updates LimitOut + // for that node with received limit. + // LimitOut means number of req/sec that I can fwd + // toward this node. + // Note: this LimitOut is updated on the base of LimitIn + // for this function received by i-th node (sender). + entries[sender].FuncsData[funcName].LimitOut = limit + logger.Debugf("Updated LimitOut to %f for %s function of node %s", limit, funcName, sender) + } else { + entries[sender].FuncsData[funcName] = &nodestbl.FuncData{ + LimitIn: 0, + LimitOut: limit, + NodeWeight: 0, + } + logger.Debugf("Set LimitOut to %f, LimitIn to 0 and NodeWeight to 0 for %s function of node %s", limit, funcName, sender) + } + } + + return nil + }) + } + + return nil +} + +// updateHAProxyConfig updates the HAProxy config file with the provided object. +// Note: Go templates sort maps by key (see https://stackoverflow.com/questions/33860961/sorted-map-iteration-in-go-templates#comment76560806_33862260) +func (strategy *RecalcStrategy) updateHAProxyConfig(hacfg *HACfgRecalc) error { + hacfg.Now = time.Now() + + // hacfg is a struct of type HACfgRecalc, that is use as content + // for writing template file. + // Indeed, in template file is possible to access fields + // of this struct (see file of template .tmpl). + // Template is referred to a data structure, in that case HACfgRecalc type. + // See https://golang.org/pkg/text/template/. + return strategy.hacfgupdater.UpdateHAConfig(hacfg) +} + +// Method which creates and returns the HACfgRecalc object, +// used from method updateHAProxyConfig to update the HAProxy configuration +func (strategy *RecalcStrategy) createHACfgObject( + myNodeID string, + openFaaSHost string, + openFaaSPort uint, + httpServerHost string, + httpServerPort uint, + recalcPeriod time.Duration, + entries map[string]*nodestbl.EntryRecalc, + funcLimits map[string]uint, +) *HACfgRecalc { + hacfg := &HACfgRecalc{ + HACfg: HACfg{ + MyNodeID: myNodeID, + OpenFaaSHost: openFaaSHost, + OpenFaaSPort: openFaaSPort, + }, + + HttpServerHost: httpServerHost, + HttpServerPort: httpServerPort, + + StrRecalc: recalcPeriod.String(), + SecsRecalc: uint(recalcPeriod / time.Second), + + Nodes: map[string]*HACfgNodeRecalc{}, + Functions: map[string]*HACfgFuncRecalc{}, + } + + // For each function in this node set limit (maxrate). + for funcName, limit := range funcLimits { + hacfg.Functions[funcName] = &HACfgFuncRecalc{ + Limit: limit, + Weights: map[string]uint{}, + LimitsIn: map[string]uint{}, + } + } + + // For each node write Host and port. + for nodeID, entry := range entries { + hacfg.Nodes[nodeID] = &HACfgNodeRecalc{ + HAProxyHost: entry.HAProxyHost, + HAProxyPort: entry.HAProxyPort, + } + + // For each function on selected node check if this function + // is also present in that node. + // If it is not present on this node set limit to 0 and + // weight and Limit in empty. + for funcName, funcData := range entry.FuncsData { + _, present := hacfg.Functions[funcName] + + if !present { + // We do not have this function on our OpenFaaS. + // Set limit (maxrate) to 0 --> can't accept request for + // this function in local FaaS cluster, but can + // fwd to another node. + hacfg.Functions[funcName] = &HACfgFuncRecalc{ + Limit: 0, + Weights: map[string]uint{}, + LimitsIn: map[string]uint{}, + } + } + + // For the function funcName in nodeID set weights and LimitsIn written + // previously during the 2 phases of racalc algo. + hacfg.Functions[funcName].Weights[nodeID] = funcData.NodeWeight + hacfg.Functions[funcName].LimitsIn[nodeID] = uint(funcData.LimitIn) // Note: Seems that is not written in template file. + + // Weight are used in template file for load-balancing, with custom + // weights toward other nodes of p2p net. + // See: https://serverfault.com/questions/113637/haproxy-roundrobin-weights + // Also doc: http://cbonte.github.io/haproxy-dconv/configuration-1.4.html#5-weight + } + } + + return hacfg +} diff --git a/dfaasagent/agent/logic/reception.go b/dfaasagent/agent/logic/reception.go deleted file mode 100644 index 2a660f4..0000000 --- a/dfaasagent/agent/logic/reception.go +++ /dev/null @@ -1,86 +0,0 @@ -package logic - -import ( - "encoding/json" - - pubsub "github.com/libp2p/go-libp2p-pubsub" - "github.com/pkg/errors" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/logging" -) - -//////////////////// PUBLIC FUNCTIONS FOR RECEPTION //////////////////// - -// OnReceived should be executed every time a message from a peer is received -func OnReceived(msg *pubsub.Message) error { - var msgForType struct{ MsgType string } - err := json.Unmarshal(msg.GetData(), &msgForType) - if err != nil { - return errors.Wrap(err, "Error while deserializing a message from the PubSub subscription") - } - - switch msgForType.MsgType { - case StrMsgTextType: - var objMsg MsgText - err := json.Unmarshal(msg.GetData(), &objMsg) - if err != nil { - return errors.Wrap(err, "Error while deserializing a message from the PubSub subscription") - } - - processMsgText(msg.GetFrom().String(), &objMsg) - case StrMsgNodeInfoType: - var objMsg MsgNodeInfo - err := json.Unmarshal(msg.GetData(), &objMsg) - if err != nil { - return errors.Wrap(err, "Error while deserializing a message from the PubSub subscription") - } - - processMsgNodeInfo(msg.GetFrom().String(), &objMsg) - } - - return nil -} - -//////////////////// PRIVATE FUNCTIONS FOR RECEPTION //////////////////// - -// processMsgText processes a text message received from pubsub -func processMsgText(sender string, msg *MsgText) error { - logger := logging.Logger() - myself := _p2pHost.ID().String() - - if sender == myself { - return nil // Ignore ourselves - } - - logger.Debugf("Received text message from node %s: %s", sender, msg.Text) - - return nil -} - -// processMsgNodeInfo processes a node info message received from pubsub -func processMsgNodeInfo(sender string, msg *MsgNodeInfo) error { - logger := logging.Logger() - myself := _p2pHost.ID().String() - - if sender == myself { - return nil // Ignore ourselves - } - - if logging.GetDebugMode() { - logger.Debugf("Received node info message from node %s", sender) - for _nodeID, _limits := range msg.FuncLimits { - logger.Debugf("Functions limits for node %s:", _nodeID) - for funcName := range _limits { - logger.Debugf(" Function %s LimitOut: %f", funcName, _limits[funcName]) - } - } - } - - // Note: if the sender node do not "know" us (we aren't in his FuncLimits) we just ignore his message - funcLimits, present := msg.FuncLimits[myself] - if present { - // Pass to receive function only limits regarding myself. - _nodestbl.SetReceivedValues(sender, msg.HAProxyHost, msg.HAProxyPort, funcLimits) - } - - return nil -} diff --git a/dfaasagent/agent/logic/strategyfactory.go b/dfaasagent/agent/logic/strategyfactory.go new file mode 100644 index 0000000..c6c4641 --- /dev/null +++ b/dfaasagent/agent/logic/strategyfactory.go @@ -0,0 +1,109 @@ +package logic + +import ( + "github.com/bcicen/go-haproxy" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/hacfgupd" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/nodestbl" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/forecaster" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/ofpromq" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/offuncs" +) + +// In this file is implemented the Factory creational pattern, +// useful to create the correct Strategy instance + +// strategyFactory is the interface which represents a generic strategy factory. +// Every factory for new strategies must implement this interface +type strategyFactory interface { + // Method to create a new Strategy instance + createStrategy() (Strategy, error) +} + +////////////////// RECALC STRATEGY FACTORY /////////////////// + +// Struct representing the factory for Recalc strategy, which implements strategyFactory interface +type recalcStrategyFactory struct {} + +// createStrategy creates and returns a new RecalcStrategy instance +func (strategyFactory *recalcStrategyFactory) createStrategy() (Strategy, error) { + strategy := &RecalcStrategy{} + + strategy.nodestbl = nodestbl.NewTableRecalc(_config.RecalcPeriod + (_config.RecalcPeriod / 5)) + + strategy.hacfgupdater = hacfgupd.Updater{ + HAConfigFilePath: _config.HAProxyConfigFile, + CmdOnUpdated: _config.HAProxyConfigUpdateCommand, + } + + err := strategy.hacfgupdater.LoadTemplate(_config.HAProxyTemplateFileRecalc) + if err != nil { + return nil, err + } + + strategy.hasockClient = haproxy.HAProxyClient{ + Addr: _config.HAProxySockPath, + } + + strategy.ofpromqClient = ofpromq.Client{ + Hostname: _config.PrometheusHost, + Port: _config.PrometheusPort, + } + + strategy.offuncsClient = offuncs.Client{ + Hostname: _config.OpenFaaSHost, + Port: _config.OpenFaaSPort, + Username: _config.OpenFaaSUser, + Password: _config.OpenFaaSPass, + } + + strategy.recalc = recalc{} + strategy.it = 0 + + return strategy, nil +} + +////////////////// NODE MARGIN STRATEGY FACTORY /////////////////// + +// Struct representing the factory for Node Margin strategy, which implements strategyFactory interface +type nodeMarginStrategyFactory struct {} + +// createStrategy creates and returns a new NodeMarginStrategy instance +func (strategyFactory *nodeMarginStrategyFactory) createStrategy() (Strategy, error) { + strategy := &NodeMarginStrategy{} + + strategy.nodestbl = nodestbl.NewTableNMS(_config.RecalcPeriod + (_config.RecalcPeriod / 5)) + + strategy.hacfgupdater = hacfgupd.Updater{ + HAConfigFilePath: _config.HAProxyConfigFile, + CmdOnUpdated: _config.HAProxyConfigUpdateCommand, + } + + err := strategy.hacfgupdater.LoadTemplate(_config.HAProxyTemplateFileNMS) + if err != nil { + return nil, err + } + + strategy.ofpromqClient = ofpromq.Client{ + Hostname: _config.PrometheusHost, + Port: _config.PrometheusPort, + } + + strategy.offuncsClient = offuncs.Client{ + Hostname: _config.OpenFaaSHost, + Port: _config.OpenFaaSPort, + Username: _config.OpenFaaSUser, + Password: _config.OpenFaaSPass, + } + + strategy.forecasterClient = forecaster.Client{ + Hostname: _config.ForecasterHost, + Port: _config.ForecasterPort, + } + + strategy.nodeInfo = nodeInfo{} + strategy.maxValues = make(map[string]float64) + strategy.targetNodes = make(map[string][]string) + strategy.weights = make(map[string]map[string]uint) + + return strategy, nil +} diff --git a/dfaasagent/agent/nodestbl/init.go b/dfaasagent/agent/nodestbl/init.go new file mode 100644 index 0000000..1ddb1ba --- /dev/null +++ b/dfaasagent/agent/nodestbl/init.go @@ -0,0 +1,18 @@ +package nodestbl + +import ( + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/config" +) + +// This package is for handling the information about the other nodes in the +// network, such as the max rate limits and the address and port of the relative +// HAProxy server instance + +//////////////////// MAIN PRIVATE VARS AND INIT FUNCTION //////////////////// + +var _config config.Configuration + +// Initialize initializes this package +func Initialize(config config.Configuration) { + _config = config +} diff --git a/dfaasagent/agent/nodestbl/nodestbl.go b/dfaasagent/agent/nodestbl/nodestbl.go deleted file mode 100644 index 7cdd555..0000000 --- a/dfaasagent/agent/nodestbl/nodestbl.go +++ /dev/null @@ -1,170 +0,0 @@ -package nodestbl - -import ( - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/logging" - "sync" - "time" -) - -// This package is for handling the information about the other nodes in the -// network, such as the max rate limits and the address and port of the relative -// HAProxy server instance - -//////////////////// PUBLIC STRUCT TYPES //////////////////// - -// FuncData represents information about a specific function (the name is not -// saved in the struct) running on a specific node, and the limits we put on it -type FuncData struct { - // Max req/s for this function FROM this node (we decide it) - LimitIn float64 - // Max req/s for this function TO this node (the node itself tells us) - LimitOut float64 - // Weight of this node for this function (we decide it) - NodeWeight uint -} - -// Entry represents a row in the table. It is relative to a node of the p2p -// network -type Entry struct { - ID string - - HAProxyHost string - HAProxyPort uint - - // Data about all the FaaS functions. The key is the function name - FuncsData map[string]*FuncData - - // Time of the last message received from the node - TAlive time.Time -} - -// Table is actually a list of instances of the Entry struct, which can be -// accessed with concurrency-safe methods only -type Table struct { - // The list of the entries. The key is the node ID - entries map[string]*Entry - mutex *sync.Mutex - - EntryValidity time.Duration -} - -//////////////////// PRIVATE METHODS //////////////////// - -// isExpired returns true if the entry is expired, according to -// tbl.EntryValidity and entry.TAlive -func (tbl *Table) isExpired(entry *Entry) bool { - return entry.TAlive.Add(tbl.EntryValidity).Before(time.Now()) -} - -//////////////////// PUBLIC METHODS //////////////////// - -// InitTable initializes a Table's fields if they are empty -func (tbl *Table) InitTable() { - logger := logging.Logger() - - if tbl.entries == nil { - tbl.entries = map[string]*Entry{} - logger.Debug("Initialized table entries") - } - - if tbl.mutex == nil { - tbl.mutex = &sync.Mutex{} - logger.Debug("Initialized table mutex") - } -} - -// SafeExec lets you execute a generic operation on the table entries atomically -// (in a critical section). You can safely pass the entries map by value to -// function, instead of a pointer, because a map is itself a pointer type -func (tbl *Table) SafeExec(function func(entries map[string]*Entry) error) error { - logger := logging.Logger() - tbl.mutex.Lock() - defer tbl.mutex.Unlock() - - tbl.InitTable() - - // Remove expired entries before doing anything - logger.Debug("Removing expired table entries") - for nodeID, entry := range tbl.entries { - if tbl.isExpired(entry) { - delete(tbl.entries, nodeID) - logger.Debugf("Entry %s for node %s is expired and has been deleted", entry.ID, nodeID) - } - } - - return function(tbl.entries) -} - -// SetReceivedValues should be executed when the data from the node is received -// and must be stored in the table. Updates everything except LimitIn and -// NodeWeight for functions which were already present -func (tbl *Table) SetReceivedValues( - nodeID string, - haProxyHost string, - haProxyPort uint, - funcLimits map[string]float64, -) error { - logger := logging.Logger() - logger.Debugf("Setting received values for node %s into table", nodeID) - return tbl.SafeExec(func(entries map[string]*Entry) error { - // If the message arrives from a sender node with ID nodeID that is - // not present in _nodesbl yet, it is added to the table. - _, present := entries[nodeID] - if !present { - entries[nodeID] = &Entry{ - FuncsData: map[string]*FuncData{}, - } - logger.Debugf("Node %s was not present and has been added to the table", nodeID) - } - - entries[nodeID].TAlive = time.Now() - - entries[nodeID].HAProxyHost = haProxyHost - entries[nodeID].HAProxyPort = haProxyPort - - // Remove from my table the functions limits which are no more present - // in the new updated message - logger.Debugf("Removing functions limits no more present in the received message from node %s", nodeID) - for funcName := range entries[nodeID].FuncsData { - // Once this routine executed a message from another node of the - // p2p net has been received. - // If I (and I am the receiver node) stored in _nodestbl functions - // that are not more present in sender node, identified by the fact - // that they are not more present in received message, I can remove them - // from my local table. - _, present := funcLimits[funcName] - if !present { - delete(entries[nodeID].FuncsData, funcName) - logger.Debugf("%s function is no more present in the received message from node %s and has been removed", funcName, nodeID) - } - } - - // Update the functions limits with the received values (also add new - // functions which weren't present before) - logger.Debugf("Updating functions limits with received values from node %s", nodeID) - for funcName, limit := range funcLimits { - _, present := entries[nodeID].FuncsData[funcName] - if present { - // For each function received by sender node, updates - // corrisponding line of _nodestbl table. - // If entry for sender node is present, updates LimitOut - // for that node with received limit. - // LimitOut means number of req/sec that I can fwd - // toward this node. - // Note: this LimitOut is updated on the base of LimitIn - // for this function received by i-th node (sender). - entries[nodeID].FuncsData[funcName].LimitOut = limit - logger.Debugf("Updated LimitOut to %f for %s function of node %s", limit, funcName, nodeID) - } else { - entries[nodeID].FuncsData[funcName] = &FuncData{ - LimitIn: 0, - LimitOut: limit, - NodeWeight: 0, - } - logger.Debugf("Set LimitOut to %f, LimitIn to 0 and NodeWeight to 0 for %s function of node %s", limit, funcName, nodeID) - } - } - - return nil - }) -} diff --git a/dfaasagent/agent/nodestbl/nodestblnms.go b/dfaasagent/agent/nodestbl/nodestblnms.go new file mode 100644 index 0000000..99d23dd --- /dev/null +++ b/dfaasagent/agent/nodestbl/nodestblnms.go @@ -0,0 +1,106 @@ +package nodestbl + +import ( + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/logging" + "sync" + "time" +) + +// In this file are defined types and methods to manage nodestbl information +// specific for the Node Margin Strategy + +//////////////////// PUBLIC STRUCT TYPES //////////////////// + +// Load represents information about the requests load on a certain node +type Load struct { + RateHighUsage float64 // Rate for functions in "high usage" group + RateLowUsage float64 // Rate for functions in "low usage" group + RateMediumUsage float64 // Rate for functions in "medium usage" group +} + +// EntryNMS represents an entry with data of a certain node for Node Margin Strategy +type EntryNMS struct { + // Node's ID + ID string + // Time of the last message received from the node + TAlive time.Time + // Node's HAProxy host and port + HAProxyHost string + HAProxyPort uint + // Specifies if the node has at least a function in common + CommonNeighbour bool + // Type of the node (light, mid or heavy) + NodeType int + // Node's functions + Funcs []string + // Node's load + Load Load + // Node's margin + Margin float64 +} + +// TableNMS is actually a list of instances of the EntryNMS struct, which can be +// accessed with concurrency-safe methods only +type TableNMS struct { + mutex *sync.Mutex + EntryValidity time.Duration + // The list of the entries. The key is the node ID + entries map[string]*EntryNMS +} + +//////////////////// PRIVATE METHODS //////////////////// + +// InitTable initializes a TableNMS's fields if they are empty +func (tbl *TableNMS) initTable() { + logger := logging.Logger() + + if tbl.entries == nil { + tbl.entries = map[string]*EntryNMS{} + logger.Debug("Initialized table entries") + } + + if tbl.mutex == nil { + tbl.mutex = &sync.Mutex{} + logger.Debug("Initialized table mutex") + } +} + +// isExpired returns true if the EntryNMS is expired, according to +// tbl.EntryValidity and entry.TAlive +func (tbl *TableNMS) isExpired(entry *EntryNMS) bool { + return entry.TAlive.Add(tbl.EntryValidity).Before(time.Now()) +} + +//////////////////// PUBLIC METHODS //////////////////// + +// NewTableNMS creates and initializes a new TableNMS returning a pointer to the table +func NewTableNMS(entryValidity time.Duration) *TableNMS { + tbl := &TableNMS{ + EntryValidity: entryValidity, + } + tbl.initTable() + + return tbl +} + +// SafeExec lets you execute a generic operation on the TableNMS entries atomically +// (in a critical section). You can safely pass the entries map by value to +// function, instead of a pointer, because a map is itself a pointer type +func (tbl *TableNMS) SafeExec(function func(entries map[string]*EntryNMS) error) error { + logger := logging.Logger() + tbl.mutex.Lock() + defer tbl.mutex.Unlock() + + tbl.initTable() + + // Remove expired entries before doing anything + logger.Debug("Removing expired table entries") + for nodeID, entry := range tbl.entries { + if tbl.isExpired(entry) { + delete(tbl.entries, nodeID) + logger.Debugf("Entry %s for node %s is expired and has been deleted", entry.ID, nodeID) + } + } + + return function(tbl.entries) +} diff --git a/dfaasagent/agent/nodestbl/nodestblrecalc.go b/dfaasagent/agent/nodestbl/nodestblrecalc.go new file mode 100644 index 0000000..e3d421b --- /dev/null +++ b/dfaasagent/agent/nodestbl/nodestblrecalc.go @@ -0,0 +1,102 @@ +package nodestbl + +import ( + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/logging" + "sync" + "time" +) + +// In this file are defined types and methods to manage nodestbl information +// specific for the Recalc Strategy + +//////////////////// PUBLIC STRUCT TYPES //////////////////// + +// FuncData represents information about a specific function (the name is not +// saved in the struct) running on a specific node, and the limits we put on it +type FuncData struct { + // Max req/s for this function FROM this node (we decide it) + LimitIn float64 + // Max req/s for this function TO this node (the node itself tells us) + LimitOut float64 + // Weight of this node for this function (we decide it) + NodeWeight uint +} + +// EntryRecalc represents an entry with data of a certain node for Recalc Strategy +type EntryRecalc struct { + // Node's ID + ID string + // Time of the last message received from the node + TAlive time.Time + // Node's HAProxy host and port + HAProxyHost string + HAProxyPort uint + // Data about all the FaaS functions. The key is the function name + FuncsData map[string]*FuncData +} + +// TableRecalc is actually a list of instances of the EntryRecalc struct, which can be +// accessed with concurrency-safe methods only +type TableRecalc struct { + mutex *sync.Mutex + EntryValidity time.Duration + // The list of the entries. The key is the node ID + entries map[string]*EntryRecalc +} + +//////////////////// PRIVATE METHODS //////////////////// + +// InitTable initializes a TableRecalc's fields if they are empty +func (tbl *TableRecalc) initTable() { + logger := logging.Logger() + + if tbl.entries == nil { + tbl.entries = map[string]*EntryRecalc{} + logger.Debug("Initialized table entries") + } + + if tbl.mutex == nil { + tbl.mutex = &sync.Mutex{} + logger.Debug("Initialized table mutex") + } +} + +// isExpired returns true if the EntryRecalc is expired, according to +// tbl.EntryValidity and entry.TAlive +func (tbl *TableRecalc) isExpired(entry *EntryRecalc) bool { + return entry.TAlive.Add(tbl.EntryValidity).Before(time.Now()) +} + +//////////////////// PUBLIC METHODS //////////////////// + +// NewTableRecalc creates and initializes a new TableRecalc returning a pointer to the table +func NewTableRecalc(entryValidity time.Duration) *TableRecalc { + tbl := &TableRecalc{ + EntryValidity: entryValidity, + } + tbl.initTable() + + return tbl +} + +// SafeExec lets you execute a generic operation on the TableRecalc entries atomically +// (in a critical section). You can safely pass the entries map by value to +// function, instead of a pointer, because a map is itself a pointer type +func (tbl *TableRecalc) SafeExec(function func(entries map[string]*EntryRecalc) error) error { + logger := logging.Logger() + tbl.mutex.Lock() + defer tbl.mutex.Unlock() + + tbl.initTable() + + // Remove expired entries before doing anything + logger.Debug("Removing expired table entries") + for nodeID, entry := range tbl.entries { + if tbl.isExpired(entry) { + delete(tbl.entries, nodeID) + logger.Debugf("Entry %s for node %s is expired and has been deleted", entry.ID, nodeID) + } + } + + return function(tbl.entries) +} diff --git a/dfaasoperator.env b/dfaasoperator.env index 61b8014..d93e8e7 100644 --- a/dfaasoperator.env +++ b/dfaasoperator.env @@ -1,6 +1,5 @@ NODES=172.16.238.10:172.16.238.11:172.16.238.12 -FUNCS_NAMES=figlet -FUNCS_IMAGES=functions/figlet:latest -FUNCS_MAXRATES=30 +FUNCS_NAMES=figlet:curl +FUNCS_IMAGES=functions/figlet:ghcr.io/openfaas/curl OPENFAAS_GATEWAY_USER=admin OPENFAAS_GATEWAY_PWD=admin diff --git a/docker/dfaas-node.dockerfile b/docker/dfaas-node.dockerfile index 46f8842..cd50951 100644 --- a/docker/dfaas-node.dockerfile +++ b/docker/dfaas-node.dockerfile @@ -70,8 +70,9 @@ RUN systemctl enable forecaster.service WORKDIR /agent COPY files/dfaasagent/dfaasagent.service /etc/systemd/system/dfaasagent.service RUN systemctl enable dfaasagent.service -COPY --from=dfaas-agent-builder:latest /go/src/dfaasagent/haproxycfg.tmpl ./haproxycfg.tmpl -COPY --from=dfaas-agent-builder:latest /go/src/dfaasagent/group_list.json . +COPY --from=dfaas-agent-builder:latest /go/src/dfaasagent/agent/logic/haproxycfgrecalc.tmpl ./haproxycfgrecalc.tmpl +COPY --from=dfaas-agent-builder:latest /go/src/dfaasagent/agent/logic/haproxycfgnms.tmpl ./haproxycfgnms.tmpl +COPY --from=dfaas-agent-builder:latest /go/src/dfaasagent/agent/groupsreader/group_list.json . COPY --from=dfaas-agent-builder:latest /go/src/dfaasagent/dfaasagent ./dfaasagent ### End Agent diff --git a/docker/files/operator_entrypoint.sh b/docker/files/operator_entrypoint.sh index 65c8e72..e402606 100644 --- a/docker/files/operator_entrypoint.sh +++ b/docker/files/operator_entrypoint.sh @@ -5,7 +5,6 @@ MAX_TRIES=25 IFS=: read -r -a nodes <<< "$NODES" IFS=: read -r -a funcs_names <<< "$FUNCS_NAMES" IFS=: read -r -a funcs_images <<< "$FUNCS_IMAGES" -IFS=: read -r -a funcs_maxrates <<< "$FUNCS_MAXRATES" for node in "${nodes[@]}" do @@ -30,7 +29,7 @@ do for i in "${!funcs_names[@]}" do echo -e "Deploying function "${funcs_names[$i]}"...\n"; - if [[ "$(curl -s -w '%{http_code}' -o /dev/null -H "Content-Type: application/json" -X POST -d "{\"service\":\""${funcs_names[$i]}"\",\"image\":\""${funcs_images[$i]}"\",\"labels\":{\"dfaas.maxrate\":\""${funcs_maxrates[$i]}"\"}}" "${FUNCS_ENDPOINT}")" -eq 200 ]] + if [[ "$(curl -s -w '%{http_code}' -o /dev/null -H "Content-Type: application/json" -X POST -d "{\"service\":\""${funcs_names[$i]}"\",\"image\":\""${funcs_images[$i]}"\"}" "${FUNCS_ENDPOINT}")" -eq 200 ]] then echo -e "Function "${funcs_names[$i]}" successfully deployed to node ${node}.\n"; else @@ -44,7 +43,7 @@ export VEGFOLDER="/vegeta-results/$(date +%Y-%m-%d-%H%M%S)" mkdir -p $VEGFOLDER jq -ncM '{method: "GET", url: "http://172.16.238.10/function/figlet", body: "Hello DFaaS world!" | @base64, header: {"Content-Type": ["text/plain"]}}' | \ - vegeta attack -duration=1m -rate=50 -format=json | \ + vegeta attack -duration=3m -rate=600 -format=json | \ tee $VEGFOLDER/results.bin | \ vegeta report -every=200ms From 4d126a3bc296d0db1cc4fb5777dca2619567b021 Mon Sep 17 00:00:00 2001 From: Stefano Cattaneo Date: Sun, 14 Jul 2024 15:50:04 +0200 Subject: [PATCH 07/25] WIP: modify Ansible playbook and operator entrypoint --- dfaasoperator.env | 1 + docker/files/operator_entrypoint.sh | 54 ++++++++++++++++++++--------- setup_playbook.yaml | 23 ++++++++++-- 3 files changed, 59 insertions(+), 19 deletions(-) diff --git a/dfaasoperator.env b/dfaasoperator.env index d93e8e7..044e7cf 100644 --- a/dfaasoperator.env +++ b/dfaasoperator.env @@ -1,3 +1,4 @@ +MODE=test NODES=172.16.238.10:172.16.238.11:172.16.238.12 FUNCS_NAMES=figlet:curl FUNCS_IMAGES=functions/figlet:ghcr.io/openfaas/curl diff --git a/docker/files/operator_entrypoint.sh b/docker/files/operator_entrypoint.sh index e402606..234e555 100644 --- a/docker/files/operator_entrypoint.sh +++ b/docker/files/operator_entrypoint.sh @@ -1,7 +1,10 @@ #!/bin/bash MAX_TRIES=25 +MAX_TRIES_DEPLOY=10 +DEPLOY_FAILED=0 +IFS=: read -r -a mode <<< "$MODE" IFS=: read -r -a nodes <<< "$NODES" IFS=: read -r -a funcs_names <<< "$FUNCS_NAMES" IFS=: read -r -a funcs_images <<< "$FUNCS_IMAGES" @@ -28,34 +31,51 @@ do for i in "${!funcs_names[@]}" do + TRIES_DEPLOY=0 echo -e "Deploying function "${funcs_names[$i]}"...\n"; - if [[ "$(curl -s -w '%{http_code}' -o /dev/null -H "Content-Type: application/json" -X POST -d "{\"service\":\""${funcs_names[$i]}"\",\"image\":\""${funcs_images[$i]}"\"}" "${FUNCS_ENDPOINT}")" -eq 200 ]] + + until [[ "$(curl -s -w '%{http_code}' -o /dev/null -H "Content-Type: application/json" -X POST -d "{\"service\":\""${funcs_names[$i]}"\",\"image\":\""${funcs_images[$i]}"\"}" "${FUNCS_ENDPOINT}")" -eq 200 || $TRIES_DEPLOY -eq $MAX_TRIES_DEPLOY ]] + do + echo -e "Failed to deploy function "${funcs_names[$i]}" to node ${node}. Retrying in 2 seconds...\n"; + sleep 2; + ((TRIES_DEPLOY+=1)); + done + if [[ $TRIES_DEPLOY -eq $MAX_TRIES_DEPLOY ]] then - echo -e "Function "${funcs_names[$i]}" successfully deployed to node ${node}.\n"; - else echo -e "Failed to deploy function "${funcs_names[$i]}" to node ${node}.\n"; + ((DEPLOY_FAILED+=1)); + else + echo -e "Function "${funcs_names[$i]}" successfully deployed to node ${node}.\n"; fi done fi done -export VEGFOLDER="/vegeta-results/$(date +%Y-%m-%d-%H%M%S)" -mkdir -p $VEGFOLDER +if [[ $mode = "test" ]] +then + if [[ $DEPLOY_FAILED -eq 0 ]] + then + export VEGFOLDER="/vegeta-results/$(date +%Y-%m-%d-%H%M%S)" + mkdir -p $VEGFOLDER -jq -ncM '{method: "GET", url: "http://172.16.238.10/function/figlet", body: "Hello DFaaS world!" | @base64, header: {"Content-Type": ["text/plain"]}}' | \ - vegeta attack -duration=3m -rate=600 -format=json | \ - tee $VEGFOLDER/results.bin | \ - vegeta report -every=200ms + jq -ncM '{method: "GET", url: "http://172.16.238.10/function/figlet", body: "Hello DFaaS world!" | @base64, header: {"Content-Type": ["text/plain"]}}' | \ + vegeta attack -duration=3m -rate=600 -format=json | \ + tee $VEGFOLDER/results.bin | \ + vegeta report -every=200ms -# Encode results as JSON -cat $VEGFOLDER/results.bin | vegeta encode > $VEGFOLDER/results.json + # Encode results as JSON + cat $VEGFOLDER/results.bin | vegeta encode > $VEGFOLDER/results.json -# Create plot with vegeta -cat $VEGFOLDER/results.bin | vegeta plot > $VEGFOLDER/plot.html + # Create plot with vegeta + cat $VEGFOLDER/results.bin | vegeta plot > $VEGFOLDER/plot.html -# 1st arg: path int results.json -# 2nd arg: path output plot -# 3rd arg: rate req/s used for the attack -#./utils/plot.py $VEGFOLDER/results.json $VEGFOLDER/plot.png 50 + # 1st arg: path int results.json + # 2nd arg: path output plot + # 3rd arg: rate req/s used for the attack + #./utils/plot.py $VEGFOLDER/results.json $VEGFOLDER/plot.png 50 + else + echo -e "Cannot run tests. Failed to deploy ${DEPLOY_FAILED} functions." + fi +fi exit 0; diff --git a/setup_playbook.yaml b/setup_playbook.yaml index 5b3b445..00ac367 100644 --- a/setup_playbook.yaml +++ b/setup_playbook.yaml @@ -61,8 +61,8 @@ state: present update_cache: true loop: - - docker-ce=5:25.0.1-1~ubuntu.{{ ansible_lsb.release }}~{{ ansible_lsb.codename }} - - docker-ce-cli=5:25.0.1-1~ubuntu.{{ ansible_lsb.release }}~{{ ansible_lsb.codename }} + - docker-ce=5:27.0.3-1~ubuntu.{{ ansible_lsb.release }}~{{ ansible_lsb.codename }} + - docker-ce-cli=5:27.0.3-1~ubuntu.{{ ansible_lsb.release }}~{{ ansible_lsb.codename }} - containerd.io - docker-buildx-plugin - docker-compose-plugin @@ -115,3 +115,22 @@ make: chdir: ./shiftfs-{{ shiftfs_ver }} file: Makefile.dkms + - name: Git clone dfaas repository + git: + repo: https://github.com/UNIMIBInside/dfaas.git + dest: ./dfaas-repo + single_branch: yes + version: stecattaneo-dev + - name: Build Docker images + ansible.builtin.command: + chdir: ./dfaas-repo + cmd: "{{ item }}" + loop: + - "docker build -t dfaas-agent-builder:latest -f docker/dfaas-agent-builder.dockerfile dfaasagent" + - "docker build -t dfaas-node:latest -f docker/dfaas-node.dockerfile docker" + - "docker build -t dfaas-operator:latest -f docker/dfaas-operator.dockerfile docker" + - name: Deploy Docker Compose stack + ansible.builtin.command: + chdir: ./dfaas-repo + cmd: docker compose up -d + \ No newline at end of file From 51dae9b9889243ab93bc2f6614df3910d1c04ee6 Mon Sep 17 00:00:00 2001 From: Stefano Cattaneo Date: Mon, 5 Aug 2024 14:58:49 +0200 Subject: [PATCH 08/25] Fix config for Kademlia --- dfaasagent/agent/agent.go | 10 +++++++++- dfaasagent/agent/config/config.go | 15 ++++++--------- dfaasagent/agent/discovery/kademlia/kademlia.go | 15 +++++++++++---- 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/dfaasagent/agent/agent.go b/dfaasagent/agent/agent.go index fa490d1..d70e3ce 100644 --- a/dfaasagent/agent/agent.go +++ b/dfaasagent/agent/agent.go @@ -155,11 +155,19 @@ func runAgent(config config.Configuration) error { ////////// KADEMLIA DHT INITIALIZATION ////////// + bootstrapConfig := kademlia.BootstrapConfiguration{ + BootstrapNodes: config.BootstrapNodes, + PublicBootstrapNodes: config.PublicBootstrapNodes, + BootstrapNodesList: config.BootstrapNodesList, + BootstrapNodesFile: config.BootstrapNodesFile, + BootstrapForce: config.BootstrapForce, + } + // Kademlia and DHT initialization, with connection to bootstrap nodes err = kademlia.Initialize( ctx, _p2pHost, - config.BoostrapConfig, + bootstrapConfig, config.Rendezvous, config.KadIdleTime, ) diff --git a/dfaasagent/agent/config/config.go b/dfaasagent/agent/config/config.go index 4298ac3..f8dc37a 100644 --- a/dfaasagent/agent/config/config.go +++ b/dfaasagent/agent/config/config.go @@ -5,14 +5,6 @@ import ( "time" ) -type BootstrapConfiguration struct { - BootstrapNodes bool `mapstructure:"AGENT_BOOTSTRAP_NODES"` - PublicBoostrapNodes bool `mapstructure:"AGENT_PUBLIC_BOOTSTRAP_NODES"` - BootstrapNodesList []string `mapstructure:"AGENT_BOOTSTRAP_NODES_LIST"` - BootstrapNodesFile string `mapstructure:"AGENT_BOOTSTRAP_NODES_FILE"` - BootstrapForce bool `mapstructure:"AGENT_BOOTSTRAP_FORCE"` -} - // Configuration holds the post-processed configuration values type Configuration struct { DebugMode bool `mapstructure:"AGENT_DEBUG"` @@ -22,7 +14,12 @@ type Configuration struct { Listen []string `mapstructure:"AGENT_LISTEN"` PrivateKeyFile string `mapstructure:"AGENT_PRIVATE_KEY_FILE"` - BoostrapConfig BootstrapConfiguration + BootstrapNodes bool `mapstructure:"AGENT_BOOTSTRAP_NODES"` + PublicBootstrapNodes bool `mapstructure:"AGENT_PUBLIC_BOOTSTRAP_NODES"` + BootstrapNodesList []string `mapstructure:"AGENT_BOOTSTRAP_NODES_LIST"` + BootstrapNodesFile string `mapstructure:"AGENT_BOOTSTRAP_NODES_FILE"` + BootstrapForce bool `mapstructure:"AGENT_BOOTSTRAP_FORCE"` + Rendezvous string `mapstructure:"AGENT_RENDEZVOUS"` MDNSInterval time.Duration `mapstructure:"AGENT_MDNS_INTERVAL"` KadIdleTime time.Duration `mapstructure:"AGENT_KAD_IDLE_TIME"` diff --git a/dfaasagent/agent/discovery/kademlia/kademlia.go b/dfaasagent/agent/discovery/kademlia/kademlia.go index 61bcb70..eac10a5 100644 --- a/dfaasagent/agent/discovery/kademlia/kademlia.go +++ b/dfaasagent/agent/discovery/kademlia/kademlia.go @@ -3,7 +3,6 @@ package kademlia import ( "context" "github.com/multiformats/go-multiaddr" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/config" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/utils/maddrhelp" "sync" "time" @@ -18,6 +17,14 @@ import ( // This package handles the Kademlia peer discovery process +type BootstrapConfiguration struct { + BootstrapNodes bool + PublicBootstrapNodes bool + BootstrapNodesList []string + BootstrapNodesFile string + BootstrapForce bool +} + // kademliaDebugLogging decides wheather to enable or disable logging for this pakcage const kademliaDebugLogging = true @@ -30,7 +37,7 @@ var _routingDisc *discovery.RoutingDiscovery // Initialize initializes the Kademlia DHT peer discovery engine. If // bootstrapForce = true, then this function fails if any of the bootstrap peers // cannot be contacted for some reason. -func Initialize(ctx context.Context, p2pHost host.Host, bootstrapConfig config.BootstrapConfiguration, rendezvous string, idleTime time.Duration) error { +func Initialize(ctx context.Context, p2pHost host.Host, bootstrapConfig BootstrapConfiguration, rendezvous string, idleTime time.Duration) error { logger := logging.Logger() // Start a DHT, for use in peer discovery. We can't just make a new DHT @@ -145,12 +152,12 @@ func RunDiscovery() error { } } -func BuildBoostrapNodes(configuration config.BootstrapConfiguration) ([]multiaddr.Multiaddr, error) { +func BuildBoostrapNodes(configuration BootstrapConfiguration) ([]multiaddr.Multiaddr, error) { var maddrs []multiaddr.Multiaddr var err error if configuration.BootstrapNodes { - if configuration.PublicBoostrapNodes { + if configuration.PublicBootstrapNodes { // Use libp2p public bootstrap peers list maddrs = dht.DefaultBootstrapPeers } else if len(configuration.BootstrapNodesList) > 0 { From 644ee8950713f1ff3fcfd4087d1b552d3a02b7b9 Mon Sep 17 00:00:00 2001 From: Stefano Cattaneo Date: Tue, 6 Aug 2024 10:58:25 +0200 Subject: [PATCH 09/25] Rename package logic to loadbalancer and include groupsreader in loadbalancer --- dfaasagent/agent/agent.go | 15 ++++-------- .../{logic => loadbalancer}/dbglogging.go | 4 ++-- .../group_list.json | 0 .../groupsreader.go | 14 ++--------- .../{logic => loadbalancer}/hacfgtypes.go | 2 +- .../haproxycfgnms.tmpl | 0 .../haproxycfgrecalc.tmpl | 0 .../logic.go => loadbalancer/loadbalancer.go} | 2 +- .../agent/{logic => loadbalancer}/msgtypes.go | 2 +- .../nodemarginstrategy.go | 24 +++++++++++++++---- .../{logic => loadbalancer}/recalcstrategy.go | 2 +- .../strategyfactory.go | 2 +- docker/dfaas-node.dockerfile | 6 ++--- 13 files changed, 36 insertions(+), 37 deletions(-) rename dfaasagent/agent/{logic => loadbalancer}/dbglogging.go (99%) rename dfaasagent/agent/{groupsreader => loadbalancer}/group_list.json (100%) rename dfaasagent/agent/{groupsreader => loadbalancer}/groupsreader.go (76%) rename dfaasagent/agent/{logic => loadbalancer}/hacfgtypes.go (99%) rename dfaasagent/agent/{logic => loadbalancer}/haproxycfgnms.tmpl (100%) rename dfaasagent/agent/{logic => loadbalancer}/haproxycfgrecalc.tmpl (100%) rename dfaasagent/agent/{logic/logic.go => loadbalancer/loadbalancer.go} (95%) rename dfaasagent/agent/{logic => loadbalancer}/msgtypes.go (98%) rename dfaasagent/agent/{logic => loadbalancer}/nodemarginstrategy.go (97%) rename dfaasagent/agent/{logic => loadbalancer}/recalcstrategy.go (99%) rename dfaasagent/agent/{logic => loadbalancer}/strategyfactory.go (99%) diff --git a/dfaasagent/agent/agent.go b/dfaasagent/agent/agent.go index d70e3ce..abdcc15 100644 --- a/dfaasagent/agent/agent.go +++ b/dfaasagent/agent/agent.go @@ -18,11 +18,10 @@ import ( "github.com/libp2p/go-libp2p-core/host" "github.com/pkg/errors" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/communication" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/groupsreader" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/discovery/kademlia" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/discovery/mdns" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/logging" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/logic" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/loadbalancer" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/utils/maddrhelp" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/httpserver" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/nodestbl" @@ -127,18 +126,14 @@ func runAgent(config config.Configuration) error { logger.Info(" ", i+1, ". ", addr) } - ////////// GROUPSREADER INITIALIZATION ////////// + ////////// LOAD BALANCER INITIALIZATION ////////// - groupsreader.Initialize(config) - - ////////// LOGIC INITIALIZATION ////////// - - logic.Initialize(_p2pHost, config) + loadbalancer.Initialize(_p2pHost, config) // Get the Strategy instance (which is a singleton) of type // dependent on the strategy specified in the configuration - var strategy logic.Strategy - strategy, err = logic.GetStrategyInstance() + var strategy loadbalancer.Strategy + strategy, err = loadbalancer.GetStrategyInstance() if err != nil { return errors.Wrap(err, "Error while getting strategy instance") } diff --git a/dfaasagent/agent/logic/dbglogging.go b/dfaasagent/agent/loadbalancer/dbglogging.go similarity index 99% rename from dfaasagent/agent/logic/dbglogging.go rename to dfaasagent/agent/loadbalancer/dbglogging.go index 384b5f0..e0f1b03 100644 --- a/dfaasagent/agent/logic/dbglogging.go +++ b/dfaasagent/agent/loadbalancer/dbglogging.go @@ -1,4 +1,4 @@ -package logic +package loadbalancer import ( "sort" @@ -339,7 +339,7 @@ func debugNodesTblContentNMS(entries map[string]*nodestbl.EntryNMS) { entry.Load.RateHighUsage, entry.Load.RateMediumUsage, entry.Load.RateLowUsage) logger.Debugf(" - FUNCTIONS:") - for funcName := range entry.Funcs { + for _, funcName := range entry.Funcs { logger.Debugf(" FUNC: %s", funcName) } } diff --git a/dfaasagent/agent/groupsreader/group_list.json b/dfaasagent/agent/loadbalancer/group_list.json similarity index 100% rename from dfaasagent/agent/groupsreader/group_list.json rename to dfaasagent/agent/loadbalancer/group_list.json diff --git a/dfaasagent/agent/groupsreader/groupsreader.go b/dfaasagent/agent/loadbalancer/groupsreader.go similarity index 76% rename from dfaasagent/agent/groupsreader/groupsreader.go rename to dfaasagent/agent/loadbalancer/groupsreader.go index 76c0cb0..f227ad3 100644 --- a/dfaasagent/agent/groupsreader/groupsreader.go +++ b/dfaasagent/agent/loadbalancer/groupsreader.go @@ -1,4 +1,4 @@ -package groupsreader +package loadbalancer import ( "encoding/json" @@ -6,22 +6,12 @@ import ( "io/ioutil" "github.com/pkg/errors" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/config" ) -// This package is used to read function groups from the group_list.json file, +// In this file are implemented functionalities to read function groups from the group_list.json file, // where, for each group (high usage, medium usage, low usage), there is a list // of functions belonging to that group -//////////////////// MAIN PRIVATE VARS AND INIT FUNCTION //////////////////// - -var _config config.Configuration - -// Initialize initializes this package -func Initialize(config config.Configuration) { - _config = config -} - //////////////////// PUBLIC STRUCT TYPES //////////////////// // Struct to read functions groups from group_list.json diff --git a/dfaasagent/agent/logic/hacfgtypes.go b/dfaasagent/agent/loadbalancer/hacfgtypes.go similarity index 99% rename from dfaasagent/agent/logic/hacfgtypes.go rename to dfaasagent/agent/loadbalancer/hacfgtypes.go index 04fb75f..1278e0b 100644 --- a/dfaasagent/agent/logic/hacfgtypes.go +++ b/dfaasagent/agent/loadbalancer/hacfgtypes.go @@ -1,4 +1,4 @@ -package logic +package loadbalancer import ( "time" diff --git a/dfaasagent/agent/logic/haproxycfgnms.tmpl b/dfaasagent/agent/loadbalancer/haproxycfgnms.tmpl similarity index 100% rename from dfaasagent/agent/logic/haproxycfgnms.tmpl rename to dfaasagent/agent/loadbalancer/haproxycfgnms.tmpl diff --git a/dfaasagent/agent/logic/haproxycfgrecalc.tmpl b/dfaasagent/agent/loadbalancer/haproxycfgrecalc.tmpl similarity index 100% rename from dfaasagent/agent/logic/haproxycfgrecalc.tmpl rename to dfaasagent/agent/loadbalancer/haproxycfgrecalc.tmpl diff --git a/dfaasagent/agent/logic/logic.go b/dfaasagent/agent/loadbalancer/loadbalancer.go similarity index 95% rename from dfaasagent/agent/logic/logic.go rename to dfaasagent/agent/loadbalancer/loadbalancer.go index 24e9b0a..7b7ab8d 100644 --- a/dfaasagent/agent/logic/logic.go +++ b/dfaasagent/agent/loadbalancer/loadbalancer.go @@ -1,4 +1,4 @@ -package logic +package loadbalancer import ( "sync" diff --git a/dfaasagent/agent/logic/msgtypes.go b/dfaasagent/agent/loadbalancer/msgtypes.go similarity index 98% rename from dfaasagent/agent/logic/msgtypes.go rename to dfaasagent/agent/loadbalancer/msgtypes.go index 33dd26e..055b0a1 100644 --- a/dfaasagent/agent/logic/msgtypes.go +++ b/dfaasagent/agent/loadbalancer/msgtypes.go @@ -1,4 +1,4 @@ -package logic +package loadbalancer import ( "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/logging" diff --git a/dfaasagent/agent/logic/nodemarginstrategy.go b/dfaasagent/agent/loadbalancer/nodemarginstrategy.go similarity index 97% rename from dfaasagent/agent/logic/nodemarginstrategy.go rename to dfaasagent/agent/loadbalancer/nodemarginstrategy.go index a790c96..ac7a622 100644 --- a/dfaasagent/agent/logic/nodemarginstrategy.go +++ b/dfaasagent/agent/loadbalancer/nodemarginstrategy.go @@ -1,4 +1,4 @@ -package logic +package loadbalancer import ( "time" @@ -12,7 +12,6 @@ import ( "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/logging" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/hacfgupd" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/nodestbl" - "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/groupsreader" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/forecaster" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/ofpromq" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/offuncs" @@ -35,7 +34,7 @@ type NodeMarginStrategy struct { forecasterClient forecaster.Client nodeInfo nodeInfo // Functions groups - funcsGroups groupsreader.Groups + funcsGroups Groups // Map with a metric name as key // and max threshold values used to determine if the node is in overload maxValues map[string]float64 @@ -83,7 +82,22 @@ func (strategy *NodeMarginStrategy) RunStrategy() error { strategy.nodeInfo.nodeType = _config.NodeType strategy.nodeInfo.overload = false + var cpuUsage = make(map[string]float64) + var ramUsage = make(map[string]float64) + for { + cpuUsage, err = strategy.ofpromqClient.QueryCPUusage(_config.RecalcPeriod) + if err != nil { + return errors.Wrap(err, "Error while executing Prometheus query") + } + debugPromCPUusage(_config.RecalcPeriod, cpuUsage) + + ramUsage, err = strategy.ofpromqClient.QueryRAMusage(_config.RecalcPeriod) + if err != nil { + return errors.Wrap(err, "Error while executing Prometheus query") + } + debugPromRAMusage(_config.RecalcPeriod, ramUsage) + err = strategy.publishNodeInfo() if err != nil { return err @@ -93,7 +107,7 @@ func (strategy *NodeMarginStrategy) RunStrategy() error { strategy.nodeInfo.funcsRates, err = strategy.getFunctionsRates() - strategy.funcsGroups, err = groupsreader.GetFuncsGroups() + strategy.funcsGroups, err = GetFuncsGroups() if err != nil { return err } @@ -664,7 +678,7 @@ func (strategy *NodeMarginStrategy) processMsgNodeInfoNMS(sender string, msg *Ms logger.Debugf("Received node info message from node %s", sender) logger.Debugf("Node %s type: %d", sender, msg.NodeType) logger.Debugf("Node %s HAProxyHost: %s", sender, msg.HAProxyHost) - logger.Debugf("Node %s HAProxyPort: %s", sender, msg.HAProxyPort) + logger.Debugf("Node %s HAProxyPort: %d", sender, msg.HAProxyPort) var funcs string for i := 0; i < len(msg.Functions); i++ { diff --git a/dfaasagent/agent/logic/recalcstrategy.go b/dfaasagent/agent/loadbalancer/recalcstrategy.go similarity index 99% rename from dfaasagent/agent/logic/recalcstrategy.go rename to dfaasagent/agent/loadbalancer/recalcstrategy.go index 1bfdc45..b2c2040 100644 --- a/dfaasagent/agent/logic/recalcstrategy.go +++ b/dfaasagent/agent/loadbalancer/recalcstrategy.go @@ -1,4 +1,4 @@ -package logic +package loadbalancer import ( "fmt" diff --git a/dfaasagent/agent/logic/strategyfactory.go b/dfaasagent/agent/loadbalancer/strategyfactory.go similarity index 99% rename from dfaasagent/agent/logic/strategyfactory.go rename to dfaasagent/agent/loadbalancer/strategyfactory.go index c6c4641..dcb9076 100644 --- a/dfaasagent/agent/logic/strategyfactory.go +++ b/dfaasagent/agent/loadbalancer/strategyfactory.go @@ -1,4 +1,4 @@ -package logic +package loadbalancer import ( "github.com/bcicen/go-haproxy" diff --git a/docker/dfaas-node.dockerfile b/docker/dfaas-node.dockerfile index cd50951..ab2571d 100644 --- a/docker/dfaas-node.dockerfile +++ b/docker/dfaas-node.dockerfile @@ -70,9 +70,9 @@ RUN systemctl enable forecaster.service WORKDIR /agent COPY files/dfaasagent/dfaasagent.service /etc/systemd/system/dfaasagent.service RUN systemctl enable dfaasagent.service -COPY --from=dfaas-agent-builder:latest /go/src/dfaasagent/agent/logic/haproxycfgrecalc.tmpl ./haproxycfgrecalc.tmpl -COPY --from=dfaas-agent-builder:latest /go/src/dfaasagent/agent/logic/haproxycfgnms.tmpl ./haproxycfgnms.tmpl -COPY --from=dfaas-agent-builder:latest /go/src/dfaasagent/agent/groupsreader/group_list.json . +COPY --from=dfaas-agent-builder:latest /go/src/dfaasagent/agent/loadbalancer/haproxycfgrecalc.tmpl ./haproxycfgrecalc.tmpl +COPY --from=dfaas-agent-builder:latest /go/src/dfaasagent/agent/loadbalancer/haproxycfgnms.tmpl ./haproxycfgnms.tmpl +COPY --from=dfaas-agent-builder:latest /go/src/dfaasagent/agent/loadbalancer/group_list.json ./group_list.json COPY --from=dfaas-agent-builder:latest /go/src/dfaasagent/dfaasagent ./dfaasagent ### End Agent From f750ebb05cb7c5222ef21b4793036212102ca606 Mon Sep 17 00:00:00 2001 From: Stefano Cattaneo Date: Fri, 18 Oct 2024 16:43:06 +0200 Subject: [PATCH 10/25] Fix loadbalancer --- dfaasagent/agent/loadbalancer/dbglogging.go | 8 +- dfaasagent/agent/loadbalancer/hacfgtypes.go | 4 + .../agent/loadbalancer/haproxycfgnms.tmpl | 25 +++- .../agent/loadbalancer/haproxycfgrecalc.tmpl | 27 +++- dfaasagent/agent/loadbalancer/msgtypes.go | 2 +- .../agent/loadbalancer/nodemarginstrategy.go | 129 +++++++++--------- .../agent/loadbalancer/recalcstrategy.go | 1 + .../agent/loadbalancer/strategyfactory.go | 6 +- 8 files changed, 125 insertions(+), 77 deletions(-) diff --git a/dfaasagent/agent/loadbalancer/dbglogging.go b/dfaasagent/agent/loadbalancer/dbglogging.go index e0f1b03..c1f86f9 100644 --- a/dfaasagent/agent/loadbalancer/dbglogging.go +++ b/dfaasagent/agent/loadbalancer/dbglogging.go @@ -395,7 +395,7 @@ func debugMsgNodeInfoNMS(msg MsgNodeInfoNMS) { } } -func debugFuncsLoad(load groupsLoad) { +func debugFuncsLoad(load GroupsLoad) { if !logging.GetDebugMode() { return } @@ -403,9 +403,9 @@ func debugFuncsLoad(load groupsLoad) { logger := logging.Logger() logger.Debugf("Node's Load: High Usage=%.2f req/s, Low Usage=%.2f req/s, Medium Usage=%.2f req/s", - load.rateHighUsage, - load.rateLowUsage, - load.rateMediumUsage) + load.RateHighUsage, + load.RateLowUsage, + load.RateMediumUsage) } func debugNodeMetricPredictions(predictions map[string]float64) { diff --git a/dfaasagent/agent/loadbalancer/hacfgtypes.go b/dfaasagent/agent/loadbalancer/hacfgtypes.go index 1278e0b..79e3419 100644 --- a/dfaasagent/agent/loadbalancer/hacfgtypes.go +++ b/dfaasagent/agent/loadbalancer/hacfgtypes.go @@ -15,6 +15,7 @@ type HACfg struct { Now time.Time MyNodeID string + HAProxyHost string OpenFaaSHost string OpenFaaSPort uint } @@ -84,6 +85,9 @@ type HACfgNMS struct { HttpServerHost string HttpServerPort uint + // String representation of RecalPeriod (e.g. "5s") + StrRecalc string + // The key is the node ID Nodes map[string]*HACfgNodeNMS diff --git a/dfaasagent/agent/loadbalancer/haproxycfgnms.tmpl b/dfaasagent/agent/loadbalancer/haproxycfgnms.tmpl index ab80470..f23efa4 100644 --- a/dfaasagent/agent/loadbalancer/haproxycfgnms.tmpl +++ b/dfaasagent/agent/loadbalancer/haproxycfgnms.tmpl @@ -16,6 +16,13 @@ defaults timeout client 50000 timeout server 50000 +{{/* #################### STICK-TABLES #################### */ -}} + +{{range $funcName, $func := .Functions -}} +backend st_users_func_{{$funcName}} + stick-table type integer size 10 expire {{$.StrRecalc}} store http_req_cnt,http_req_rate(1s) +{{end}} + {{/* #################### FRONTEND #################### */ -}} frontend fe_main @@ -75,7 +82,11 @@ frontend fe_main use_backend be_{{$funcName}} if is_func_{{$funcName}} !has_nodeid_hdr {{end}} - default_backend be_ok + {{/* ########## TRACKING WITH STICK TABLES ########## */ -}} + + {{range $funcName, $_ := .Functions -}} + http-request track-sc1 dst_port table st_users_func_{{$funcName}} if is_func_{{$funcName}} !has_nodeid_hdr {{- /* Using Sticky-Counter #1 */}} + {{end}} {{/* #################### BACKEND FOR SIMPLE 200 RESPONSES #################### */ -}} @@ -118,7 +129,10 @@ backend be_myself {{/* Add DFaaS-Node-ID header (in any case) */ -}} http-request add-header DFaaS-Node-ID {{$.MyNodeID}} - server myself {{$.OpenFaaSHost}}:{{$.OpenFaaSPort}} check + {{/* Add X-Server header to response to know which server served the request */ -}} + http-response set-header X-Server %s + + server {{$.HAProxyHost}} {{$.OpenFaaSHost}}:{{$.OpenFaaSPort}} check {{/* #################### BACKEND FOR OPENFAAS FUNCTIONS #################### */ -}} @@ -140,11 +154,14 @@ backend be_{{$funcName}} {{/* Add DFaaS-Node-ID header (in any case) */ -}} http-request add-header DFaaS-Node-ID {{$.MyNodeID}} + {{/* Add X-Server header to response to know which server served the request */ -}} + http-response set-header X-Server %s + {{range $nodeID, $weight := $func.Weights -}} {{if (eq $nodeID $.MyNodeID) -}} - server myself {{$.OpenFaaSHost}}:{{$.OpenFaaSPort}} weight {{$weight}} check + server {{$.HAProxyHost}} {{$.OpenFaaSHost}}:{{$.OpenFaaSPort}} weight {{$weight}} check {{else -}} - server {{$nodeID}} {{(index $.Nodes $nodeID).HAProxyHost}}:{{(index $.Nodes $nodeID).HAProxyPort}} weight {{$weight}} check + server {{(index $.Nodes $nodeID).HAProxyHost}} {{(index $.Nodes $nodeID).HAProxyHost}}:{{(index $.Nodes $nodeID).HAProxyPort}} weight {{$weight}} check {{end -}} {{end}} {{end}} diff --git a/dfaasagent/agent/loadbalancer/haproxycfgrecalc.tmpl b/dfaasagent/agent/loadbalancer/haproxycfgrecalc.tmpl index 5aabd02..067308e 100644 --- a/dfaasagent/agent/loadbalancer/haproxycfgrecalc.tmpl +++ b/dfaasagent/agent/loadbalancer/haproxycfgrecalc.tmpl @@ -62,12 +62,13 @@ frontend fe_main acl is_path_root path / acl is_path_healthz path /healthz acl is_path_haproxy path_beg /haproxy + acl is_path_system_funcs path /system/functions acl is_path_function path_beg /function/ {{/* Deny requests which are not directed to a function or / (root) or the stats page (note: the root path is needed for health checks by other nodes) or to /healthz */ -}} - http-request deny unless is_path_root or is_path_healthz or is_path_haproxy or is_path_function + http-request deny unless is_path_root or is_path_healthz or is_path_haproxy or is_path_system_funcs or is_path_function {{/* Capture some request headers in log */ -}} http-request capture req.hdr(Host) len 50 @@ -155,6 +156,7 @@ frontend fe_main use_backend be_ok if is_path_root use_backend be_healthz if is_path_healthz + use_backend be_system_funcs if is_path_system_funcs {{range $funcName, $func := .Functions -}} {{/* [NEW] Select backend for request that exeeds limitsIn */ -}} @@ -168,8 +170,6 @@ frontend fe_main {{end}} - default_backend be_ok - {{/* #################### BACKEND FOR SIMPLE 200 RESPONSES #################### */ -}} backend be_ok @@ -182,6 +182,17 @@ backend be_healthz option httpchk GET /healthz server healthz {{.HttpServerHost}}:{{.HttpServerPort}} check +{{/* #################### BACKEND FOR MANAGING OPENFAAS FUNCTIONS #################### */ -}} + +backend be_system_funcs + {{/* Perform HTTP health checks */ -}} + option httpchk GET / + {{/* Enable HTTP connection closing on the server side. This provides the lowest latency + on the client side (slow network) and the fastest session reuse on the server side + to save server resources */ -}} + option http-server-close + server system_funcs {{.OpenFaaSHost}}:{{.OpenFaaSPort}} check + {{/* #################### BACKEND FOR SELF OPENFAAS INSTANCE #################### */ -}} backend be_myself @@ -221,7 +232,10 @@ backend be_myself {{end}} - server myself {{.OpenFaaSHost}}:{{.OpenFaaSPort}} check + {{/* Add X-Server header to response to know which server served the request */ -}} + http-response set-header X-Server %s + + server {{$.HAProxyHost}} {{.OpenFaaSHost}}:{{.OpenFaaSPort}} check {{/* #################### BACKEND FOR OTHER NODES' HAPROXIES #################### */ -}} @@ -242,9 +256,12 @@ backend be_others_func_{{$funcName}} {{/* Add DFaaS-Node-ID header (in any case) */ -}} http-request add-header DFaaS-Node-ID {{$.MyNodeID}} + {{/* Add X-Server header to response to know which server served the request */ -}} + http-response set-header X-Server %s + {{range $nodeID, $weight := $func.Weights -}} {{if (gt $weight 0) -}} - server {{$nodeID}} {{(index $.Nodes $nodeID).HAProxyHost}}:{{(index $.Nodes $nodeID).HAProxyPort}} weight {{$weight}} check + server {{(index $.Nodes $nodeID).HAProxyHost}} {{(index $.Nodes $nodeID).HAProxyHost}}:{{(index $.Nodes $nodeID).HAProxyPort}} weight {{$weight}} check {{end -}} {{end}} {{end}} diff --git a/dfaasagent/agent/loadbalancer/msgtypes.go b/dfaasagent/agent/loadbalancer/msgtypes.go index 055b0a1..ae49337 100644 --- a/dfaasagent/agent/loadbalancer/msgtypes.go +++ b/dfaasagent/agent/loadbalancer/msgtypes.go @@ -53,7 +53,7 @@ type MsgNodeMarginInfoNMS struct { MsgType string Margin float64 - Load groupsLoad + Load GroupsLoad } // StrMsgNodeMarginInfoTypeNMS value for MsgNodeMarginInfoNMS.MsgType diff --git a/dfaasagent/agent/loadbalancer/nodemarginstrategy.go b/dfaasagent/agent/loadbalancer/nodemarginstrategy.go index ac7a622..87bebc1 100644 --- a/dfaasagent/agent/loadbalancer/nodemarginstrategy.go +++ b/dfaasagent/agent/loadbalancer/nodemarginstrategy.go @@ -1,11 +1,12 @@ package loadbalancer import ( + "fmt" "time" - "strings" "math" "encoding/json" pubsub "github.com/libp2p/go-libp2p-pubsub" + "github.com/bcicen/go-haproxy" "github.com/pkg/errors" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/communication" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/constants" @@ -15,6 +16,7 @@ import ( "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/forecaster" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/ofpromq" "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/offuncs" + "gitlab.com/team-dfaas/dfaas/node-stack/dfaasagent/agent/infogath/hasock" ) // In this file is implemented the Node Margin strategy @@ -31,6 +33,7 @@ type NodeMarginStrategy struct { nodestbl *nodestbl.TableNMS ofpromqClient ofpromq.Client offuncsClient offuncs.Client + hasockClient haproxy.HAProxyClient forecasterClient forecaster.Client nodeInfo nodeInfo // Functions groups @@ -47,17 +50,17 @@ type NodeMarginStrategy struct { } // groupsLoad represents the invocation rates for each group of functions on a node -type groupsLoad struct { - rateHighUsage float64 - rateLowUsage float64 - rateMediumUsage float64 +type GroupsLoad struct { + RateHighUsage float64 + RateLowUsage float64 + RateMediumUsage float64 } // Private struct containing info about us type nodeInfo struct { nodeType int // Node type (heavy=0, mid=1, light=2) funcs []string // Our OpenFaaS functions - funcsGroupsLoad groupsLoad // Load rates for each group of functions + funcsGroupsLoad GroupsLoad // Load rates for each group of functions commonNeighboursNum int // Number of neighbours with at least a function in common funcsRates map[string]float64 // Map with function name as key, and invocation rate as value margin float64 // Node's margin @@ -248,51 +251,50 @@ func (strategy *NodeMarginStrategy) updateCommonNeighbours() { }) } -// Obtain functions invocation rates of the last RecalcPeriod from Prometheus +// Obtain functions invocation rates of the last RecalcPeriod from HAProxy func (strategy *NodeMarginStrategy) getFunctionsRates() (map[string]float64, error) { - var invocRates map[string]map[string]float64 // Invocation rates (in req/s) (from Prometheus) + var functionRates = make(map[string]float64) - invocRates, err := strategy.ofpromqClient.QueryInvoc(_config.RecalcPeriod) - if err != nil { - return nil, errors.Wrap(err, "Error while executing Prometheus query") - } - debugPromInvoc(_config.RecalcPeriod, invocRates) + for _, funcName := range strategy.nodeInfo.funcs { + stName := fmt.Sprintf("st_users_func_%s", funcName) + stContent, err := hasock.ReadStickTable(&strategy.hasockClient, stName) - var functionRates = make(map[string]float64) - for funcName, item := range invocRates { - clearFuncName := strings.ReplaceAll(funcName, ".openfaas-fn", "") - functionRates[clearFuncName] = 0 - for _, rate := range item { - functionRates[clearFuncName] += rate + if err != nil { + return nil, err + } else { + for _, stEntry := range stContent { + functionRates[funcName] = float64(stEntry.HTTPReqRate) + } } } + return functionRates, nil } // Calculate invocation rate for each group of functions -// NOTE: at the moment invocation rates on node are gathered from Prometheus. In future +// NOTE: at the moment invocation rates on node are gathered from HAProxy. In future // they should be gathered from the Forecaster, which predicts the future load received from the node -func (strategy *NodeMarginStrategy) getFuncsGroupsLoad() (groupsLoad, error) { +func (strategy *NodeMarginStrategy) getFuncsGroupsLoad() (GroupsLoad, error) { var err error strategy.nodeInfo.funcsRates, err = strategy.getFunctionsRates() if err != nil { - return groupsLoad{}, err + return GroupsLoad{}, err } - var nodeGroupsLoad groupsLoad + var nodeGroupsLoad GroupsLoad - nodeGroupsLoad.rateHighUsage = 0.0 - nodeGroupsLoad.rateLowUsage = 0.0 - nodeGroupsLoad.rateMediumUsage = 0.0 + nodeGroupsLoad.RateHighUsage = 0.0 + nodeGroupsLoad.RateLowUsage = 0.0 + nodeGroupsLoad.RateMediumUsage = 0.0 for funcName, rate := range strategy.nodeInfo.funcsRates { if contains(strategy.funcsGroups.HighUsage, funcName) { - nodeGroupsLoad.rateHighUsage += rate + nodeGroupsLoad.RateHighUsage += rate } else if contains(strategy.funcsGroups.MediumUsage, funcName) { - nodeGroupsLoad.rateMediumUsage += rate + nodeGroupsLoad.RateMediumUsage += rate } else if contains(strategy.funcsGroups.LowUsage, funcName) { - nodeGroupsLoad.rateLowUsage += rate + nodeGroupsLoad.RateLowUsage += rate } } @@ -302,14 +304,14 @@ func (strategy *NodeMarginStrategy) getFuncsGroupsLoad() (groupsLoad, error) { } // Get node metric predictions from Forecaster -func (strategy *NodeMarginStrategy) getNodeMetricPredictions(nodeType int, load groupsLoad) (map[string]float64, error) { +func (strategy *NodeMarginStrategy) getNodeMetricPredictions(nodeType int, load GroupsLoad) (map[string]float64, error) { var err error var req forecaster.NodeMetricPredReq req.Node_type = nodeType - req.Rate_group_HIGH_USAGE = load.rateHighUsage - req.Rate_group_LOW_USAGE = load.rateLowUsage - req.Rate_group_MEDIUM_USAGE = load.rateMediumUsage + req.Rate_group_HIGH_USAGE = load.RateHighUsage + req.Rate_group_LOW_USAGE = load.RateLowUsage + req.Rate_group_MEDIUM_USAGE = load.RateMediumUsage var resp forecaster.NodeMetricPredRes resp, err = strategy.forecasterClient.GetNodeUsagePredictions(req) @@ -393,7 +395,7 @@ func (strategy *NodeMarginStrategy) sendMarginToNeighbours() error { if strategy.nodeInfo.margin > 0.0 { marginMsg.Load = strategy.nodeInfo.funcsGroupsLoad } else { - marginMsg.Load = groupsLoad{} + marginMsg.Load = GroupsLoad{} } err = communication.MarshAndPublish(marginMsg) @@ -424,7 +426,7 @@ func (strategy *NodeMarginStrategy) calculateWeights() (map[string]map[string]ui var overload bool var myNodeID string var mainteined = make(map[string]float64) - var mainteinedGroupsLoad groupsLoad + var mainteinedGroupsLoad GroupsLoad var fwdRequests = make(map[string]map[string]float64) var weights = make(map[string]map[string]uint) var iterator = make(map[string]int) @@ -438,9 +440,9 @@ func (strategy *NodeMarginStrategy) calculateWeights() (map[string]map[string]ui } // Copy funcsGroupsLoad in mainteinedGroupsLoad - mainteinedGroupsLoad.rateHighUsage = strategy.nodeInfo.funcsGroupsLoad.rateHighUsage - mainteinedGroupsLoad.rateMediumUsage = strategy.nodeInfo.funcsGroupsLoad.rateMediumUsage - mainteinedGroupsLoad.rateLowUsage = strategy.nodeInfo.funcsGroupsLoad.rateLowUsage + mainteinedGroupsLoad.RateHighUsage = strategy.nodeInfo.funcsGroupsLoad.RateHighUsage + mainteinedGroupsLoad.RateMediumUsage = strategy.nodeInfo.funcsGroupsLoad.RateMediumUsage + mainteinedGroupsLoad.RateLowUsage = strategy.nodeInfo.funcsGroupsLoad.RateLowUsage err := strategy.nodestbl.SafeExec(func(entries map[string]*nodestbl.EntryNMS) error { // Init fwdRequests @@ -485,10 +487,10 @@ func (strategy *NodeMarginStrategy) calculateWeights() (map[string]map[string]ui if mainteined[funcTo] > 0.0 { // Get nodeTo usage percentage with its original load - var load groupsLoad - load.rateHighUsage = entries[nodeTo].Load.RateHighUsage - load.rateMediumUsage = entries[nodeTo].Load.RateMediumUsage - load.rateLowUsage = entries[nodeTo].Load.RateLowUsage + var load GroupsLoad + load.RateHighUsage = entries[nodeTo].Load.RateHighUsage + load.RateMediumUsage = entries[nodeTo].Load.RateMediumUsage + load.RateLowUsage = entries[nodeTo].Load.RateLowUsage logger.Debugf("Before requests forwarding (node %s):", nodeTo) nodeToPredictions, err := strategy.getNodeMetricPredictions(entries[nodeTo].NodeType, load) @@ -500,25 +502,25 @@ func (strategy *NodeMarginStrategy) calculateWeights() (map[string]map[string]ui reqToTransfer := (mainteined[funcTo] * 0.01) // Update the rate group load in request to Forecaster corresponding to the group of funcTo - var newLoad groupsLoad - newLoad.rateHighUsage = entries[nodeTo].Load.RateHighUsage - newLoad.rateMediumUsage = entries[nodeTo].Load.RateMediumUsage - newLoad.rateLowUsage = entries[nodeTo].Load.RateLowUsage + var newLoad GroupsLoad + newLoad.RateHighUsage = entries[nodeTo].Load.RateHighUsage + newLoad.RateMediumUsage = entries[nodeTo].Load.RateMediumUsage + newLoad.RateLowUsage = entries[nodeTo].Load.RateLowUsage if contains(strategy.funcsGroups.HighUsage, funcTo) { - newLoad.rateHighUsage += reqToTransfer + newLoad.RateHighUsage += reqToTransfer } else if contains(strategy.funcsGroups.MediumUsage, funcTo) { - newLoad.rateMediumUsage += reqToTransfer + newLoad.RateMediumUsage += reqToTransfer } else if contains(strategy.funcsGroups.LowUsage, funcTo) { - newLoad.rateLowUsage += reqToTransfer + newLoad.RateLowUsage += reqToTransfer } for fun, rate := range fwdRequests[nodeTo] { if contains(strategy.funcsGroups.HighUsage, fun) { - newLoad.rateHighUsage += rate + newLoad.RateHighUsage += rate } else if contains(strategy.funcsGroups.MediumUsage, fun) { - newLoad.rateMediumUsage += rate + newLoad.RateMediumUsage += rate } else if contains(strategy.funcsGroups.LowUsage, fun) { - newLoad.rateLowUsage += rate + newLoad.RateLowUsage += rate } } logger.Debugf("After requests forwarding (node %s):", nodeTo) @@ -535,11 +537,11 @@ func (strategy *NodeMarginStrategy) calculateWeights() (map[string]map[string]ui fwdRequests[nodeTo][funcTo] += reqToTransfer if contains(strategy.funcsGroups.HighUsage, funcTo) { - mainteinedGroupsLoad.rateHighUsage -= reqToTransfer + mainteinedGroupsLoad.RateHighUsage -= reqToTransfer } else if contains(strategy.funcsGroups.MediumUsage, funcTo) { - mainteinedGroupsLoad.rateMediumUsage -= reqToTransfer + mainteinedGroupsLoad.RateMediumUsage -= reqToTransfer } else if contains(strategy.funcsGroups.LowUsage, funcTo) { - mainteinedGroupsLoad.rateLowUsage -= reqToTransfer + mainteinedGroupsLoad.RateLowUsage -= reqToTransfer } logger.Debugf("This node's state after requests forwarding: ") @@ -652,6 +654,7 @@ func (strategy *NodeMarginStrategy) setProxyWeights() error { _config.OpenFaaSPort, _config.HttpServerHost, _config.HttpServerPort, + _config.RecalcPeriod, entries, strategy.weights, ) @@ -724,10 +727,8 @@ func (strategy *NodeMarginStrategy) processMsgNodeMarginInfoNMS(sender string, m if logging.GetDebugMode() { logger.Debugf("Received margin info message from node %s", sender) logger.Debugf("Margin: %f", msg.Margin) - if msg.Load != (groupsLoad{}) { - logger.Debugf("Load: High Usage=%f, Low Usage=%f, Medium Usage=%f", - msg.Load.rateHighUsage, msg.Load.rateLowUsage, msg.Load.rateMediumUsage) - } + logger.Debugf("Load: High Usage=%f, Low Usage=%f, Medium Usage=%f", + msg.Load.RateHighUsage, msg.Load.RateLowUsage, msg.Load.RateMediumUsage) } logger.Debugf("Setting received values for node %s into table", sender) @@ -736,9 +737,9 @@ func (strategy *NodeMarginStrategy) processMsgNodeMarginInfoNMS(sender string, m if exists { entries[sender].TAlive = time.Now() entries[sender].Margin = msg.Margin - entries[sender].Load.RateHighUsage = msg.Load.rateHighUsage - entries[sender].Load.RateMediumUsage = msg.Load.rateLowUsage - entries[sender].Load.RateMediumUsage = msg.Load.rateLowUsage + entries[sender].Load.RateHighUsage = msg.Load.RateHighUsage + entries[sender].Load.RateMediumUsage = msg.Load.RateLowUsage + entries[sender].Load.RateMediumUsage = msg.Load.RateLowUsage } } else { logger.Debugf("Ignore margin info message from node %s (not a common neighbour)", sender) @@ -771,12 +772,14 @@ func (strategy *NodeMarginStrategy) createHACfgObject( openFaaSPort uint, httpServerHost string, httpServerPort uint, + recalcPeriod time.Duration, entries map[string]*nodestbl.EntryNMS, funcsWeights map[string]map[string]uint, ) *HACfgNMS { hacfg := &HACfgNMS{ HACfg: HACfg{ MyNodeID: myNodeID, + HAProxyHost: _config.HAProxyHost, OpenFaaSHost: openFaaSHost, OpenFaaSPort: openFaaSPort, }, @@ -784,6 +787,8 @@ func (strategy *NodeMarginStrategy) createHACfgObject( HttpServerHost: httpServerHost, HttpServerPort: httpServerPort, + StrRecalc: recalcPeriod.String(), + Nodes: map[string]*HACfgNodeNMS{}, Functions: map[string]*HACfgFuncNMS{}, } diff --git a/dfaasagent/agent/loadbalancer/recalcstrategy.go b/dfaasagent/agent/loadbalancer/recalcstrategy.go index b2c2040..36fb768 100644 --- a/dfaasagent/agent/loadbalancer/recalcstrategy.go +++ b/dfaasagent/agent/loadbalancer/recalcstrategy.go @@ -616,6 +616,7 @@ func (strategy *RecalcStrategy) createHACfgObject( hacfg := &HACfgRecalc{ HACfg: HACfg{ MyNodeID: myNodeID, + HAProxyHost: _config.HAProxyHost, OpenFaaSHost: openFaaSHost, OpenFaaSPort: openFaaSPort, }, diff --git a/dfaasagent/agent/loadbalancer/strategyfactory.go b/dfaasagent/agent/loadbalancer/strategyfactory.go index dcb9076..a5635f4 100644 --- a/dfaasagent/agent/loadbalancer/strategyfactory.go +++ b/dfaasagent/agent/loadbalancer/strategyfactory.go @@ -71,7 +71,7 @@ type nodeMarginStrategyFactory struct {} func (strategyFactory *nodeMarginStrategyFactory) createStrategy() (Strategy, error) { strategy := &NodeMarginStrategy{} - strategy.nodestbl = nodestbl.NewTableNMS(_config.RecalcPeriod + (_config.RecalcPeriod / 5)) + strategy.nodestbl = nodestbl.NewTableNMS(_config.RecalcPeriod * 2) strategy.hacfgupdater = hacfgupd.Updater{ HAConfigFilePath: _config.HAProxyConfigFile, @@ -95,6 +95,10 @@ func (strategyFactory *nodeMarginStrategyFactory) createStrategy() (Strategy, er Password: _config.OpenFaaSPass, } + strategy.hasockClient = haproxy.HAProxyClient{ + Addr: _config.HAProxySockPath, + } + strategy.forecasterClient = forecaster.Client{ Hostname: _config.ForecasterHost, Port: _config.ForecasterPort, From 38ceb60c8f12f83418c3f5f76abee680f537c77b Mon Sep 17 00:00:00 2001 From: Stefano Cattaneo Date: Tue, 22 Oct 2024 15:03:05 +0200 Subject: [PATCH 11/25] Fix node margin strategy implementation --- dfaasagent/agent/loadbalancer/msgtypes.go | 1 + .../agent/loadbalancer/nodemarginstrategy.go | 18 +++++++++++------- dfaasagent/agent/nodestbl/nodestblnms.go | 2 ++ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/dfaasagent/agent/loadbalancer/msgtypes.go b/dfaasagent/agent/loadbalancer/msgtypes.go index ae49337..601bdf9 100644 --- a/dfaasagent/agent/loadbalancer/msgtypes.go +++ b/dfaasagent/agent/loadbalancer/msgtypes.go @@ -41,6 +41,7 @@ type MsgNodeInfoNMS struct { HAProxyHost string HAProxyPort uint NodeType int + MaxValues map[string]float64 Functions []string } diff --git a/dfaasagent/agent/loadbalancer/nodemarginstrategy.go b/dfaasagent/agent/loadbalancer/nodemarginstrategy.go index 87bebc1..a00e247 100644 --- a/dfaasagent/agent/loadbalancer/nodemarginstrategy.go +++ b/dfaasagent/agent/loadbalancer/nodemarginstrategy.go @@ -127,7 +127,7 @@ func (strategy *NodeMarginStrategy) RunStrategy() error { strategy.nodeInfo.overload = strategy.isNodeOverloaded(strategy.nodeInfo.metricsPredictions) - strategy.nodeInfo.margin = strategy.calculateMargin() + strategy.nodeInfo.margin = strategy.calculateMargin(strategy.maxValues) err = strategy.sendMarginToNeighbours() if err != nil { @@ -202,6 +202,7 @@ func (strategy *NodeMarginStrategy) publishNodeInfo() error { HAProxyHost: _config.HAProxyHost, HAProxyPort: _config.HAProxyPort, NodeType: strategy.nodeInfo.nodeType, + MaxValues: strategy.maxValues, Functions: strategy.nodeInfo.funcs, } debugMsgNodeInfoNMS(msg) @@ -345,12 +346,12 @@ func (strategy *NodeMarginStrategy) isNodeOverloaded(metricsPredictions map[stri } // Calculate the node usage percentage (based on metrics prediction on node) -func (strategy *NodeMarginStrategy) calculateNodeUsagePercentage(metricsPredictions map[string]float64) float64 { +func (strategy *NodeMarginStrategy) calculateNodeUsagePercentage(metricsPredictions map[string]float64, thresholds map[string]float64) float64 { var metricsPercentage = make(map[string]float64) var nodeUsagePercentage = 0.0 for metric, _ := range metricsPredictions { - metricsPercentage[metric] = (metricsPredictions[metric] * 100) / strategy.maxValues[metric] + metricsPercentage[metric] = (metricsPredictions[metric] * 100) / thresholds[metric] } for _, value := range metricsPercentage { @@ -364,14 +365,14 @@ func (strategy *NodeMarginStrategy) calculateNodeUsagePercentage(metricsPredicti } // Calculate node's margin (based on information obtained with calculateNodeUsagePercentage function) -func (strategy *NodeMarginStrategy) calculateMargin() float64 { +func (strategy *NodeMarginStrategy) calculateMargin(thresholds map[string]float64) float64 { var nodeUsagePercentage float64 var margin = 0.0 if strategy.nodeInfo.overload { return margin } else { - nodeUsagePercentage = strategy.calculateNodeUsagePercentage(strategy.nodeInfo.metricsPredictions) + nodeUsagePercentage = strategy.calculateNodeUsagePercentage(strategy.nodeInfo.metricsPredictions, thresholds) if strategy.nodeInfo.commonNeighboursNum > 0 { margin = (100 - nodeUsagePercentage) / float64(strategy.nodeInfo.commonNeighboursNum) } @@ -497,7 +498,7 @@ func (strategy *NodeMarginStrategy) calculateWeights() (map[string]map[string]ui if err != nil { return err } - nodeToPercentage := strategy.calculateNodeUsagePercentage(nodeToPredictions) + nodeToPercentage := strategy.calculateNodeUsagePercentage(nodeToPredictions, entries[nodeTo].MaxValues) reqToTransfer := (mainteined[funcTo] * 0.01) @@ -528,7 +529,7 @@ func (strategy *NodeMarginStrategy) calculateWeights() (map[string]map[string]ui if err != nil { return err } - newNodeToPercentage := strategy.calculateNodeUsagePercentage(newNodeToPredictions) + newNodeToPercentage := strategy.calculateNodeUsagePercentage(newNodeToPredictions, entries[nodeTo].MaxValues) margin := entries[nodeTo].Margin @@ -682,6 +683,8 @@ func (strategy *NodeMarginStrategy) processMsgNodeInfoNMS(sender string, msg *Ms logger.Debugf("Node %s type: %d", sender, msg.NodeType) logger.Debugf("Node %s HAProxyHost: %s", sender, msg.HAProxyHost) logger.Debugf("Node %s HAProxyPort: %d", sender, msg.HAProxyPort) + logger.Debugf("Max Values: CPU=%f, RAM=%f, Power=%f", + msg.MaxValues[cpuUsageNodeMetric], msg.MaxValues[ramUsageNodeMetric], msg.MaxValues[powerUsageNodeMetric]) var funcs string for i := 0; i < len(msg.Functions); i++ { @@ -704,6 +707,7 @@ func (strategy *NodeMarginStrategy) processMsgNodeInfoNMS(sender string, msg *Ms entries[sender].HAProxyHost = msg.HAProxyHost entries[sender].HAProxyPort = msg.HAProxyPort entries[sender].NodeType = msg.NodeType + entries[sender].MaxValues = msg.MaxValues entries[sender].Funcs = msg.Functions return nil diff --git a/dfaasagent/agent/nodestbl/nodestblnms.go b/dfaasagent/agent/nodestbl/nodestblnms.go index 99d23dd..44b6bbc 100644 --- a/dfaasagent/agent/nodestbl/nodestblnms.go +++ b/dfaasagent/agent/nodestbl/nodestblnms.go @@ -31,6 +31,8 @@ type EntryNMS struct { CommonNeighbour bool // Type of the node (light, mid or heavy) NodeType int + // Node's max resources values + MaxValues map[string]float64 // Node's functions Funcs []string // Node's load From 7d4725fe7215a25d6afc496c3badb2614ad25340 Mon Sep 17 00:00:00 2001 From: Stefano Cattaneo Date: Mon, 28 Oct 2024 11:16:44 +0100 Subject: [PATCH 12/25] Add operator for load tests --- operator/dfaasoperator.env | 20 ++ operator/docker/dfaas-operator.dockerfile | 23 ++ operator/docker/files/operator_entrypoint.sh | 179 +++++++++++ operator/docker/files/plot-requirements.txt | 3 + operator/docker/files/plot-results.py | 300 +++++++++++++++++++ 5 files changed, 525 insertions(+) create mode 100644 operator/dfaasoperator.env create mode 100644 operator/docker/dfaas-operator.dockerfile create mode 100644 operator/docker/files/operator_entrypoint.sh create mode 100644 operator/docker/files/plot-requirements.txt create mode 100644 operator/docker/files/plot-results.py diff --git a/operator/dfaasoperator.env b/operator/dfaasoperator.env new file mode 100644 index 0000000..fa8079b --- /dev/null +++ b/operator/dfaasoperator.env @@ -0,0 +1,20 @@ +TEST_MODE=true +DEPLOY_MODE=true +DELETE_FUNCTIONS=false +DEPLOY_MAXRATES=false +# Following options are used to specify which functions deploy on which nodes +NODES=172.16.238.10:172.16.238.11:172.16.238.12 +FUNCS_NAMES=figlet +FUNCS_IMAGES=functions/figlet +FUNCS_LIMITS=200:450:700 # if multiple functions to deploy, specify in order all limits for first node and so on (e.g. figletLimNode1:func2LimNode1:figletLimNode2:func2LimNode2) +WAIT_TIME=90 # time to wait after deploying functions before starting tests +OPENFAAS_GATEWAY_USER=admin +OPENFAAS_GATEWAY_PWD=admin +# Following options must be specified in order for each parallel attack +ATTACKS_NAME=figlet-light-350:figlet-mid-100:figlet-heavy-100:figlet-mid-500 +ATTACKS_DELAY=0:300:300:600 # in seconds +ATTACKS_TARGET=172.16.238.10/function/figlet:172.16.238.11/function/figlet:172.16.238.12/function/figlet:172.16.238.11/function/figlet +ATTACKS_METHOD=GET:GET:GET:GET +ATTACKS_BODY=Hello DFaaS World!:Hello DFaaS World!:Hello DFaaS World!:Hello DFaaS World! +ATTACKS_RATE=350:100:100:500 +ATTACKS_DURATION=15:10:10:5 # in minutes diff --git a/operator/docker/dfaas-operator.dockerfile b/operator/docker/dfaas-operator.dockerfile new file mode 100644 index 0000000..5bfe209 --- /dev/null +++ b/operator/docker/dfaas-operator.dockerfile @@ -0,0 +1,23 @@ +FROM alpine:latest + +RUN apk update && apk add \ + python3 \ + py3-pip \ + curl \ + wget \ + bash \ + jq + +RUN wget https://github.com/tsenart/vegeta/releases/download/v12.8.4/vegeta_12.8.4_linux_amd64.tar.gz +RUN tar -xf vegeta_12.8.4_linux_amd64.tar.gz && rm vegeta_12.8.4_linux_amd64.tar.gz +RUN mv vegeta /usr/local/bin/ + +WORKDIR / +COPY files/plot-requirements.txt ./plot-requirements.txt +COPY files/plot-results.py ./plot-results.py +RUN pip3 install --break-system-packages -r plot-requirements.txt +RUN chmod +x plot-results.py + +COPY files/operator_entrypoint.sh ./operator_entrypoint.sh +RUN chmod +x operator_entrypoint.sh +ENTRYPOINT [ "./operator_entrypoint.sh" ] \ No newline at end of file diff --git a/operator/docker/files/operator_entrypoint.sh b/operator/docker/files/operator_entrypoint.sh new file mode 100644 index 0000000..87beccb --- /dev/null +++ b/operator/docker/files/operator_entrypoint.sh @@ -0,0 +1,179 @@ +#!/bin/bash + +MAX_TRIES=25 +MAX_TRIES_DEPLOY=10 +MAX_TRIES_DELETE=10 +DEPLOY_FAILED=0 +NODES_DOWN=0 + +IFS=: read -r -a nodes <<< "$NODES" +IFS=: read -r -a funcs_names <<< "$FUNCS_NAMES" +IFS=: read -r -a funcs_images <<< "$FUNCS_IMAGES" +IFS=: read -r -a funcs_limits <<< "$FUNCS_LIMITS" +IFS=: read -r -a attacks_names <<< "$ATTACKS_NAME" +IFS=: read -r -a delays <<< "$ATTACKS_DELAY" +IFS=: read -r -a targets <<< "$ATTACKS_TARGET" +IFS=: read -r -a methods <<< "$ATTACKS_METHOD" +IFS=: read -r -a bodies <<< "$ATTACKS_BODY" +IFS=: read -r -a rates <<< "$ATTACKS_RATE" +IFS=: read -r -a durations <<< "$ATTACKS_DURATION" + +# Function to perform a Vegeta attack +vegeta_attack () { + mkdir -p $VEGFOLDER/"$1" + sleep "$2" + + jq -ncM "{method: \"$4\", url: \"http://$3\", body: \"$5\" | @base64, header: {\"Content-Type\": [\"text/plain\"]}}" | \ + vegeta attack -name="$1" -duration=""$7"m" -rate="$6" -format=json | \ + tee $VEGFOLDER/"$1"/results.bin | \ + vegeta report -every=200ms + + # Plot attack's results + cat $VEGFOLDER/"$1"/results.bin | vegeta report -output $VEGFOLDER/"$1"/report.txt + cat $VEGFOLDER/"$1"/results.bin | vegeta encode > $VEGFOLDER/"$1"/results.json + cat $VEGFOLDER/"$1"/results.bin | vegeta plot > $VEGFOLDER/"$1"/plot.html + /plot-results.py $VEGFOLDER/"$1"/results.json $VEGFOLDER/"$1" "$6" False +} + + +# Perform health check on each node +for j in "${!nodes[@]}" +do + echo -e "Checking if node ${nodes[$j]} is healthy...\n"; + HEALTHZ_ENDPOINT="http://${nodes[$j]}/healthz" + TRIES=1 + + until [[ "$(curl -s -w '%{http_code}' -o /dev/null ${HEALTHZ_ENDPOINT})" -eq 200 || $TRIES -eq $MAX_TRIES ]] + do + echo -e "Node ${nodes[$j]} not ready yet.\nRetrying health check in 10 seconds...\n"; + sleep 10; + ((TRIES+=1)); + done + + if [[ $TRIES -eq $MAX_TRIES ]] + then + echo -e "Node ${nodes[$j]} is down.\n\n"; + ((NODES_DOWN+=1)); + fi +done + +# Proceeds only if all nodes are healthy +if [[ $NODES_DOWN -eq 0 ]] +then + if [[ $DEPLOY_MODE == "true" ]] + then + LIMITS_INDEX=0 + for j in "${!nodes[@]}" + do + echo -e "Deploying functions to node ${nodes[$j]}...\n"; + + for i in "${!funcs_names[@]}" + do + FUNCS_ENDPOINT="http://${OPENFAAS_GATEWAY_USER}:${OPENFAAS_GATEWAY_PWD}@${nodes[$j]}/system/functions" + TRIES_DEPLOY=0 + echo -e "Deploying function "${funcs_names[$i]}"...\n"; + + if [[ $DEPLOY_MAXRATES == "true" ]] + then + DEPLOY_REQ_BODY="{\"service\":\""${funcs_names[$i]}"\",\"image\":\""${funcs_images[$i]}"\",\"labels\":{\"dfaas.maxrate\":\""${funcs_limits[$LIMITS_INDEX]}"\"}}" + ((LIMITS_INDEX+=1)); + else + DEPLOY_REQ_BODY="{\"service\":\""${funcs_names[$i]}"\",\"image\":\""${funcs_images[$i]}"\"}" + fi + + until [[ "$(curl -s -w '%{http_code}' -o /dev/null -H "Content-Type: application/json" -X POST -d "${DEPLOY_REQ_BODY}" "${FUNCS_ENDPOINT}")" -eq 200 || $TRIES_DEPLOY -eq $MAX_TRIES_DEPLOY ]] + do + echo -e "Failed to deploy function "${funcs_names[$i]}" to node ${nodes[$j]}. Retrying in 10 seconds...\n"; + sleep 10; + ((TRIES_DEPLOY+=1)); + done + + if [[ $TRIES_DEPLOY -eq $MAX_TRIES_DEPLOY ]] + then + echo -e "Failed to deploy function "${funcs_names[$i]}" to node ${nodes[$j]}.\n"; + ((DEPLOY_FAILED+=1)); + else + echo -e "Function "${funcs_names[$i]}" successfully deployed to node ${nodes[$j]}.\n"; + fi + done + done + fi + + # Test phase + if [[ $TEST_MODE == "true" ]] + then + # Start test phase only if no errors occurred during functions' deploy + if [[ $DEPLOY_FAILED -eq 0 ]] + then + # Wait for the proxy to reconfigure if new functions were deployed + if [[ $DEPLOY_MODE == "true" ]] + then + echo -e "Wait for the proxy to reconfigure after deploying function for "$WAIT_TIME" seconds... "; + sleep $WAIT_TIME; + fi + + # Execute Vegeta attacks + export VEGFOLDER="/tests/vegeta-results/$(date +%Y-%m-%d-%H%M%S)" + mkdir -p $VEGFOLDER + + for i in "${!attacks_names[@]}" + do + echo -e "Attack "${attacks_names[$i]}" will start in "${delays[$i]}" seconds.\n"; + vegeta_attack "${attacks_names[$i]}" "${delays[$i]}" "${targets[$i]}" "${methods[$i]}" "${bodies[$i]}" "${rates[$i]}" "${durations[$i]}" & + done + + wait + echo -e "All attacks completed."; + + # Aggregate attack's results + echo -e "Merging attacks results...\n"; + RESULTS_FILES="" + + for i in "${!attacks_names[@]}" + do + RESULTS_FILES="${RESULTS_FILES} $VEGFOLDER/"${attacks_names[$i]}"/results.json" + done + + mkdir -p $VEGFOLDER/merged-results + cat $RESULTS_FILES > $VEGFOLDER/merged-results/merged-results.json + + /plot-results.py $VEGFOLDER/merged-results/merged-results.json $VEGFOLDER/merged-results 0 True + + echo -e "Results merged successfully."; + else + echo -e "Cannot run tests. Failed to deploy ${DEPLOY_FAILED} functions." + fi + + # Delete deployed functions + if [[ $DELETE_FUNCTIONS == "true" ]] + then + echo -e "Deleting functions from nodes...\n"; + + for k in "${!funcs_names[@]}" + do + for node in "${nodes[@]}" + do + echo -e "Deleting function "${funcs_names[$k]}" from node "$node"...\n"; + TRIES_DELETE=0 + FUNCS_ENDPOINT="http://${OPENFAAS_GATEWAY_USER}:${OPENFAAS_GATEWAY_PWD}@${node}/system/functions" + + until [[ "$(curl -s -w '%{http_code}' -o /dev/null -H "Content-Type: application/json" -X DELETE -d "{\"functionName\":\""${funcs_names[$k]}"\"}" "${FUNCS_ENDPOINT}")" -eq 200 || $TRIES_DELETE -eq $MAX_TRIES_DELETE ]] + do + echo -e "Failed to delete function "${funcs_names[$k]}" from node "${node}". Retrying in 10 seconds...\n"; + sleep 10; + ((TRIES_DELETE+=1)); + done + + if [[ $TRIES_DELETE -eq $MAX_TRIES_DELETE ]] + then + echo -e "Failed to delete function "${funcs_names[$k]}" from node "${node}".\n"; + else + echo -e "Function "${funcs_names[$k]}" successfully deleted from node "${node}".\n"; + fi + done + done + fi + fi +fi + +exit 0; diff --git a/operator/docker/files/plot-requirements.txt b/operator/docker/files/plot-requirements.txt new file mode 100644 index 0000000..fb0f9d3 --- /dev/null +++ b/operator/docker/files/plot-requirements.txt @@ -0,0 +1,3 @@ +numpy +pandas +matplotlib \ No newline at end of file diff --git a/operator/docker/files/plot-results.py b/operator/docker/files/plot-results.py new file mode 100644 index 0000000..716c34d --- /dev/null +++ b/operator/docker/files/plot-results.py @@ -0,0 +1,300 @@ +#!/usr/bin/env python3 + +import numpy as np +import pandas as pd +import sys +import os +import matplotlib.pyplot as plt + +# Dictionary with nodes' names and corresponding IP addresses +nodes_dict = { + 'Node light': '172.16.238.10', + 'Node mid': '172.16.238.11', + 'Node heavy': '172.16.238.12', +} + +# Necessary for plots of parallel attacks (merged results), specifies the maximum rate on a single node +max_load_on_node = 600 + +# Necessary for plots of parallel attacks (merged results), indicates the different phases of test, with duration and total rate of each phase +sectors_dict = { + '0': {'duration': '300', + 'rate': '350'}, + '1': {'duration': '300', + 'rate': '550'}, + '2': {'duration': '300', + 'rate': '1050'}, +} + +''' + Read json file containing vegeta export. + + This function takes only one param: the path of json file. + This function returns a dataframe containing status codes, timestamps, X-Server and URL headers values. + The returned dataframe represent one packet send for each row with respective response. +''' + +def read_json(path): + code_stream = os.popen('cat ' + path + ' | jq -r .code') + url_stream = os.popen('cat ' + path + ' | jq -r .url') + timestamp_stream = os.popen('cat ' + path + ' | jq -r .timestamp') + x_server_ok_stream = os.popen('cat ' + path + ' | jq -r \'select(.code == 200) | .headers."X-Server"[]\'') + timestamp_ok_stream = os.popen('cat ' + path + ' | jq -r \'select(.code == 200) | .timestamp\'') + + codes = code_stream.read().splitlines() + timestamp = timestamp_stream.read().splitlines() + x_server_ok = x_server_ok_stream.read().splitlines() + urls = url_stream.read().splitlines() + timestamp_ok = timestamp_ok_stream.read().splitlines() + + df = pd.DataFrame.from_dict( + {"timestamp": pd.to_datetime(timestamp), "code": codes, "url": urls}) + df_x_server_ok = pd.DataFrame.from_dict( + {"timestamp": pd.to_datetime(timestamp_ok), "X-Server": x_server_ok}) + + df = df.join(df_x_server_ok.set_index('timestamp'), on='timestamp') + df.sort_values("timestamp", inplace=True) + df.reset_index(drop=True, inplace=True) + + return df + + +''' + Compute one column each parameter. Each of this columns has 1 correpsonding to rows that returns this specific value, 0 otherwise. + "node_x_server" columns specify if the node has replied, "node_url_ok" ("node_url_err") columns specify if the request directed to the node has been + (hasn't been) succesfully processed, "node_forwarded_req" columns specifiy if the request directed to the node has been forwarded to another node + and then successfully processed. +''' + +def compute_df_columns(df): + df["Success"] = np.where(df["code"] == '200', 1, 0) + + df["Error"] = np.where(df["code"] != '200', 1, 0) + + for node in nodes_dict: + col_x_server = node + "_x_server" + df[col_x_server] = np.where(df["X-Server"] == nodes_dict[node], 1, 0) + col_url_ok = node + "_url_ok" + col_url_err = node + "_url_err" + df[col_url_ok] = np.where((df["url"].str.contains(nodes_dict[node])) & (df["code"] == '200'), 1, 0) + df[col_url_err] = np.where((df["url"].str.contains(nodes_dict[node])) & (df["code"] != '200'), 1, 0) + col_forwarded_req = node + "_forwarded_req" + df[col_forwarded_req] = np.where((df["url"].str.contains(nodes_dict[node])) & (df["code"] == '200') & (df["X-Server"] != nodes_dict[node]), 1, 0) + + return df + + +''' + Group row by 'rate', obtaining one row for each second of test. + This function takes as input the source dataset, the rate of the test attack, if the input file is a "merged results" file, and return grouped dataset. +''' + +def group_by_resp_for_seconds(df, rate, is_merged): + url_ok_cols = [] + url_err_cols = [] + x_server_cols = [] + forwarded_req_cols = [] + df_sectors = [] + + for node in nodes_dict: + x_server_cols.append(node + "_x_server") + url_ok_cols.append(node + "_url_ok") + url_err_cols.append(node + "_url_err") + forwarded_req_cols.append(node + "_forwarded_req") + + if not is_merged: + df_by_second = df.groupby(lambda x: x // rate)[['Success', 'Error'] + x_server_cols + url_ok_cols + url_err_cols + forwarded_req_cols].sum() + else: + start_index = 0 + for sector in sectors_dict: + rate = int(sectors_dict[sector]['rate']) + rows_num = int(sectors_dict[sector]['duration']) * rate + end_index = start_index + rows_num + df_sectors.append(df[start_index:end_index].groupby(lambda x: x // rate)[['Success', 'Error'] + x_server_cols + url_ok_cols + url_err_cols + forwarded_req_cols].sum()) + start_index = end_index + df_by_second = pd.concat(df_sectors, ignore_index=True) + + return df_by_second + + +''' + Compute nodes' responses subplots. +''' + +def compute_nodes_subplots(df, cols, labels, path, max_y, width, height): + colors = plt.rcParams["axes.prop_cycle"]() + f, axes = plt.subplots(len(cols), 1, sharey=True) + f.set_size_inches(width, height) + f.supxlabel('Time (s)') + f.supylabel('Response rate [resp/s]') + for i in range(len(cols)): + c = next(colors)["color"] + axes[i].set_ylim(0, max_y) + axes[i].plot(df.index, df[cols[i]], color=c, label=labels[i]) + axes[i].grid() + f.legend(loc='upper right') + plt.savefig(path) + + +''' + Compute nodes' responses and cumulatives subplots. +''' + +def compute_nodes_subplots_and_cumulatives(df, cols, labels, path, max_y, width, height, log=False): + colors = plt.rcParams["axes.prop_cycle"]() + f, axes = plt.subplots(len(cols) - 1, 1) + f.set_size_inches(width, height) + f.supxlabel('Time (s)') + f.supylabel('Response rate [resp/s]') + for i in range(len(cols) - 2): + c = next(colors)["color"] + axes[i].set_ylim(0, max_y) + axes[i].plot(df.index, df[cols[i]], color=c, label=labels[i]) + axes[i].grid() + f.legend(loc='upper right') + c = next(colors)["color"] + if log: + axes[len(cols) - 2].set_yscale('log') + axes[len(cols) - 2].set_ylim(0, 100000) + axes[len(cols) - 2].plot(df.index, np.cumsum(df[cols[len(cols) - 2]]), color='purple', label='Success') + axes[len(cols) - 2].plot(df.index, np.cumsum(df[cols[len(cols) - 1]]), color='red', label='Error') + axes[len(cols) - 2].set(ylabel='Cumulatives') + axes[len(cols) - 2].legend(loc='upper right') + axes[len(cols) - 2].grid() + plt.savefig(path) + + +''' + Compute nodes' client side success rate subplots with forwarded requests. +''' + +def compute_nodes_subplots_with_forwarded_req(df, cols, labels, path, max_y, width, height): + colors = plt.rcParams["axes.prop_cycle"]() + f, axes = plt.subplots(int(len(cols) / 2), 1, sharey=True) + f.set_size_inches(width, height) + f.supxlabel('Time (s)') + f.supylabel('Client side success rate [req/s]') + for i in range(int(len(cols) / 2)): + c = next(colors)["color"] + axes[i].set_ylim(0, max_y) + axes[i].plot(df.index, df[cols[i]], color=c, label=labels[i]) + axes[i].plot(df.index, df[cols[i + int(len(cols) / 2)]], color='gray', linestyle='dotted') + axes[i].grid() + f.legend(loc='upper right') + plt.savefig(path) + + +''' + Compute nodes' cumulatives subplots. +''' + +def compute_nodes_cumulatives_subplots(df, cols_succ, cols_err, path, width, height, log=False): + colors = plt.rcParams["axes.prop_cycle"]() + f, axes = plt.subplots(len(cols_succ), 1, sharey=True) + f.set_size_inches(width, height) + f.supxlabel('Time (s)') + f.supylabel('Cumulatives') + for i in range(len(cols_succ)): + c = next(colors)["color"] + if log: + axes[i].set_yscale('log') + axes[i].title.set_text(list(nodes_dict.keys())[i]) + axes[i].plot(df.index, np.cumsum(df[cols_succ[i]]), color=c, label='Success') + axes[i].plot(df.index, np.cumsum(df[cols_err[i]]), color='red', label='Error') + axes[i].legend(loc='upper right') + axes[i].grid() + plt.savefig(path) + + +''' + Compute cumulatives plot. +''' + +def compute_cumulatives_plot(df, cols, labels, path, width, height, log=False): + plt.figure(figsize=(width, height)) + plt.xlabel("Time (s)") + plt.ylabel("Cumulatives") + if log: + plt.yscale('log') + for i in range(len(cols)): + plt.plot(df.index, np.cumsum(df[cols[i]]), label=labels[i]) + plt.legend(loc="upper right") + plt.grid() + plt.savefig(path) + + +''' + Compute report with success rate values. + +''' + +def compute_report(input_file_path, output_dir_path, is_merged): + succ_responses_num = int(os.popen('cat ' + input_file_path + '| jq -r \'select(.code == 200) | .code\' | jq -s \'. | length\'').read()) + total_responses = int(os.popen('cat ' + input_file_path + '| jq -r \'.code\' | jq -s \'. | length\'').read()) + success_rate = ( succ_responses_num / total_responses ) * 100 + if is_merged: + nodes_succ_rate = {} + for node in nodes_dict: + succ_resp_num = int(os.popen('cat ' + input_file_path + '| jq -r \'select((.code == 200) and ( .url | contains(\"' + nodes_dict[node] + '\"))) | .code\' | jq -s \'. | length\'').read()) + tot_req = int(os.popen('cat ' + input_file_path + '| jq -r \'select(.url | contains(\"' + nodes_dict[node] + '\")) | .code\' | jq -s \'. | length\'').read()) + if tot_req > 0: + nodes_succ_rate[node] = ( succ_resp_num / tot_req ) * 100 + with open(output_dir_path + "/report_values.txt", "w") as text_file: + text_file.write(f'Success rate: {success_rate:.2f}%\n') + if is_merged: + for node in nodes_succ_rate: + text_file.write(f'Success rate {node}: {nodes_succ_rate[node]:.2f}%\n') + + +''' + The script takes as input the following parameters: 'results.json' file path, output directory, rate of the attack + and a boolean parameter that specifies if the input file has been obtained merging results files of multiple parallel attacks. + If merged is true, "Rate" parameter isn't used and can be set to any value. +''' + +def main(argv): + file_input, output_dir, rate, merged = str(argv[0]), str(argv[1]), int(argv[2]), eval(argv[3]) + + # Reading datasets from json file. + df1 = read_json(file_input) + + # Calcolate additional columns. + df1 = compute_df_columns(df1) + + # Group rows by 'rate' --> one for each second. + df_by_second1 = group_by_resp_for_seconds(df1, rate, merged) + + # Compute plots + if not merged: + cols = [] + for node in nodes_dict: + cols.append(node + "_x_server") + compute_nodes_subplots_and_cumulatives(df_by_second1, cols + ['Success', 'Error'], list(nodes_dict.keys()) + ['Success', 'Error'], output_dir + '/plot-nodes-responses-and-cumulatives.png', rate + 50, 10, 15, log=True) + compute_nodes_subplots(df_by_second1, cols, list(nodes_dict.keys()), output_dir + '/plot-nodes-responses.png', rate + 50, 10, 10) + compute_cumulatives_plot(df_by_second1, ['Success', 'Error'], ['Success', 'Error'], output_dir + '/plot-cumulatives.png', 10, 5) + compute_cumulatives_plot(df_by_second1, ['Success', 'Error'], ['Success', 'Error'], output_dir + '/plot-cumulatives-log.png', 10, 5, log=True) + else: + cols_succ = [] + cols_err = [] + cols_forwarded = [] + cols = [] + for node in nodes_dict: + cols_succ.append(node + "_url_ok") + cols_err.append(node + "_url_err") + cols_forwarded.append(node + "_forwarded_req") + cols.append(node + "_x_server") + compute_cumulatives_plot(df_by_second1, [node + "_url_ok", node + "_url_err"], ['Success', 'Error'], output_dir + f'/plot-cumulatives-log-{node}.png', 10, 5, log=True) + compute_nodes_subplots_with_forwarded_req(df_by_second1, cols_succ + cols_forwarded, list(nodes_dict.keys()), output_dir + '/plot-succ-by-node-with-forwarded.png', max_load_on_node + 20, 10, 10) + compute_nodes_subplots(df_by_second1, cols_succ, list(nodes_dict.keys()), output_dir + '/plot-succ-by-node.png', max_load_on_node + 20, 10, 10) + compute_nodes_subplots(df_by_second1, cols_err, list(nodes_dict.keys()), output_dir + '/plot-err-by-node.png', max_load_on_node + 20, 10, 10) + compute_nodes_cumulatives_subplots(df_by_second1, cols_succ, cols_err, output_dir + '/plot-cumulatives-by-node.png', 10, 10) + compute_nodes_cumulatives_subplots(df_by_second1, cols_succ, cols_err, output_dir + '/plot-cumulatives-by-node-log.png', 10, 10, log=True) + compute_nodes_subplots(df_by_second1, cols, list(nodes_dict.keys()), output_dir + '/plot-nodes-responses.png', max_load_on_node + 20, 10, 10) + compute_nodes_subplots_and_cumulatives(df_by_second1, cols + ['Success', 'Error'], list(nodes_dict.keys()) + ['Success', 'Error'], output_dir + '/plot-nodes-responses-and-cumulatives.png', max_load_on_node + 20, 10, 15, log=True) + + # Compute report with success rates + compute_report(file_input, output_dir, is_merged=merged) + + +if __name__ == '__main__': + main(sys.argv[1:]) From 8a136c318c7fceca0f30abbd5a53cb606722807a Mon Sep 17 00:00:00 2001 From: Stefano Cattaneo Date: Mon, 28 Oct 2024 11:32:13 +0100 Subject: [PATCH 13/25] Add multi VMs test environment files --- test_environment/dfaasagent-heavy.env | 50 ++++ test_environment/dfaasagent-light.env | 50 ++++ test_environment/dfaasagent-mid.env | 50 ++++ test_environment/inventory_example.yaml | 32 ++ test_environment/setup_playbook.yaml | 369 ++++++++++++++++++++++++ 5 files changed, 551 insertions(+) create mode 100644 test_environment/dfaasagent-heavy.env create mode 100644 test_environment/dfaasagent-light.env create mode 100644 test_environment/dfaasagent-mid.env create mode 100644 test_environment/inventory_example.yaml create mode 100644 test_environment/setup_playbook.yaml diff --git a/test_environment/dfaasagent-heavy.env b/test_environment/dfaasagent-heavy.env new file mode 100644 index 0000000..bd048b4 --- /dev/null +++ b/test_environment/dfaasagent-heavy.env @@ -0,0 +1,50 @@ +AGENT_DEBUG=true +AGENT_LOG_DATETIME=true +AGENT_LOG_COLORS=true + +AGENT_LISTEN="/ip4/172.16.238.12/tcp/6000" +AGENT_PRIVATE_KEY_FILE= + +AGENT_BOOTSTRAP_NODES=true +AGENT_PUBLIC_BOOTSTRAP_NODES=true +AGENT_BOOTSTRAP_NODES_LIST= +AGENT_BOOTSTRAP_NODES_FILE= +AGENT_BOOTSTRAP_FORCE=false +AGENT_RENDEZVOUS=dfaasagent +AGENT_MDNS_INTERVAL=1m +AGENT_KAD_IDLE_TIME=1m +AGENT_PUBSUB_TOPIC="/dfaasagent/1.0.0" + +AGENT_RECALC_PERIOD=1m + +AGENT_HAPROXY_TEMPLATE_FILE_NMS="/agent/haproxycfgnms.tmpl" +AGENT_HAPROXY_TEMPLATE_FILE_RECALC="/agent/haproxycfgrecalc.tmpl" +AGENT_HAPROXY_CONFIG_FILE="/etc/haproxy/haproxy.cfg" +AGENT_HAPROXY_CONFIG_UPDATE_COMMAND="/usr/bin/systemctl restart haproxy.service" +AGENT_HAPROXY_HOST=172.16.238.12 +AGENT_HAPROXY_PORT=80 +AGENT_HAPROXY_SOCK_PATH="unix:///run/haproxy/admin.sock" + +AGENT_OPENFAAS_HOST=127.0.0.1 +AGENT_OPENFAAS_PORT=8080 +AGENT_OPENFAAS_USER=admin +AGENT_OPENFAAS_PASS=admin + +AGENT_PROMETHEUS_HOST=127.0.0.1 +AGENT_PROMETHEUS_PORT=9090 + +AGENT_HTTPSERVER_HOST=127.0.0.1 +AGENT_HTTPSERVER_PORT=8008 + +AGENT_FORECASTER_HOST=127.0.0.1 +AGENT_FORECASTER_PORT=8000 + +AGENT_STRATEGY="nodemarginstrategy" + +AGENT_GROUP_LIST_FILE_NAME="/agent/group_list.json" + +AGENT_NODE_TYPE=0 # heavy=0 mid=1 light=2 + +AGENT_NMS_CPU_THRESHOLD=235.0 # max cpu usage percentage +AGENT_NMS_RAM_THRESHOLD=6000000000.0 # max ram usage in bytes +AGENT_NMS_POWER_THRESHOLD=3500000.0 # max power usage in microwatts \ No newline at end of file diff --git a/test_environment/dfaasagent-light.env b/test_environment/dfaasagent-light.env new file mode 100644 index 0000000..25858f8 --- /dev/null +++ b/test_environment/dfaasagent-light.env @@ -0,0 +1,50 @@ +AGENT_DEBUG=true +AGENT_LOG_DATETIME=true +AGENT_LOG_COLORS=true + +AGENT_LISTEN="/ip4/172.16.238.10/tcp/6000" +AGENT_PRIVATE_KEY_FILE= + +AGENT_BOOTSTRAP_NODES=true +AGENT_PUBLIC_BOOTSTRAP_NODES=true +AGENT_BOOTSTRAP_NODES_LIST= +AGENT_BOOTSTRAP_NODES_FILE= +AGENT_BOOTSTRAP_FORCE=false +AGENT_RENDEZVOUS=dfaasagent +AGENT_MDNS_INTERVAL=1m +AGENT_KAD_IDLE_TIME=1m +AGENT_PUBSUB_TOPIC="/dfaasagent/1.0.0" + +AGENT_RECALC_PERIOD=1m + +AGENT_HAPROXY_TEMPLATE_FILE_NMS="/agent/haproxycfgnms.tmpl" +AGENT_HAPROXY_TEMPLATE_FILE_RECALC="/agent/haproxycfgrecalc.tmpl" +AGENT_HAPROXY_CONFIG_FILE="/etc/haproxy/haproxy.cfg" +AGENT_HAPROXY_CONFIG_UPDATE_COMMAND="/usr/bin/systemctl restart haproxy.service" +AGENT_HAPROXY_HOST=172.16.238.10 +AGENT_HAPROXY_PORT=80 +AGENT_HAPROXY_SOCK_PATH="unix:///run/haproxy/admin.sock" + +AGENT_OPENFAAS_HOST=127.0.0.1 +AGENT_OPENFAAS_PORT=8080 +AGENT_OPENFAAS_USER=admin +AGENT_OPENFAAS_PASS=admin + +AGENT_PROMETHEUS_HOST=127.0.0.1 +AGENT_PROMETHEUS_PORT=9090 + +AGENT_HTTPSERVER_HOST=127.0.0.1 +AGENT_HTTPSERVER_PORT=8008 + +AGENT_FORECASTER_HOST=127.0.0.1 +AGENT_FORECASTER_PORT=8000 + +AGENT_STRATEGY="nodemarginstrategy" + +AGENT_GROUP_LIST_FILE_NAME="/agent/group_list.json" + +AGENT_NODE_TYPE=2 # heavy=0 mid=1 light=2 + +AGENT_NMS_CPU_THRESHOLD=104.0 # max cpu usage percentage +AGENT_NMS_RAM_THRESHOLD=4100000000.0 # max ram usage in bytes +AGENT_NMS_POWER_THRESHOLD=700000.0 # max power usage in microwatts \ No newline at end of file diff --git a/test_environment/dfaasagent-mid.env b/test_environment/dfaasagent-mid.env new file mode 100644 index 0000000..9a8bf32 --- /dev/null +++ b/test_environment/dfaasagent-mid.env @@ -0,0 +1,50 @@ +AGENT_DEBUG=true +AGENT_LOG_DATETIME=true +AGENT_LOG_COLORS=true + +AGENT_LISTEN="/ip4/172.16.238.11/tcp/6000" +AGENT_PRIVATE_KEY_FILE= + +AGENT_BOOTSTRAP_NODES=true +AGENT_PUBLIC_BOOTSTRAP_NODES=true +AGENT_BOOTSTRAP_NODES_LIST= +AGENT_BOOTSTRAP_NODES_FILE= +AGENT_BOOTSTRAP_FORCE=false +AGENT_RENDEZVOUS=dfaasagent +AGENT_MDNS_INTERVAL=1m +AGENT_KAD_IDLE_TIME=1m +AGENT_PUBSUB_TOPIC="/dfaasagent/1.0.0" + +AGENT_RECALC_PERIOD=1m + +AGENT_HAPROXY_TEMPLATE_FILE_NMS="/agent/haproxycfgnms.tmpl" +AGENT_HAPROXY_TEMPLATE_FILE_RECALC="/agent/haproxycfgrecalc.tmpl" +AGENT_HAPROXY_CONFIG_FILE="/etc/haproxy/haproxy.cfg" +AGENT_HAPROXY_CONFIG_UPDATE_COMMAND="/usr/bin/systemctl restart haproxy.service" +AGENT_HAPROXY_HOST=172.16.238.11 +AGENT_HAPROXY_PORT=80 +AGENT_HAPROXY_SOCK_PATH="unix:///run/haproxy/admin.sock" + +AGENT_OPENFAAS_HOST=127.0.0.1 +AGENT_OPENFAAS_PORT=8080 +AGENT_OPENFAAS_USER=admin +AGENT_OPENFAAS_PASS=admin + +AGENT_PROMETHEUS_HOST=127.0.0.1 +AGENT_PROMETHEUS_PORT=9090 + +AGENT_HTTPSERVER_HOST=127.0.0.1 +AGENT_HTTPSERVER_PORT=8008 + +AGENT_FORECASTER_HOST=127.0.0.1 +AGENT_FORECASTER_PORT=8000 + +AGENT_STRATEGY="nodemarginstrategy" + +AGENT_GROUP_LIST_FILE_NAME="/agent/group_list.json" + +AGENT_NODE_TYPE=1 # heavy=0 mid=1 light=2 + +AGENT_NMS_CPU_THRESHOLD=190.0 # max cpu usage percentage +AGENT_NMS_RAM_THRESHOLD=5500000000.0 # max ram usage in bytes +AGENT_NMS_POWER_THRESHOLD=2100000.0 # max power usage in microwatts \ No newline at end of file diff --git a/test_environment/inventory_example.yaml b/test_environment/inventory_example.yaml new file mode 100644 index 0000000..cb2afae --- /dev/null +++ b/test_environment/inventory_example.yaml @@ -0,0 +1,32 @@ +manager: + hosts: + : + ansible_port: + ansible_connection: ssh + ansible_user: + ansible_password: + ansible_ssh_extra_args: '-o StrictHostKeyChecking=no' + ansible_python_interpreter: '/usr/bin/python3' +worker: + hosts: + : + ansible_port: + ansible_connection: ssh + ansible_user: + ansible_password: + ansible_ssh_extra_args: '-o StrictHostKeyChecking=no' + ansible_python_interpreter: '/usr/bin/python3' + : + ansible_port: + ansible_connection: ssh + ansible_user: + ansible_password: + ansible_ssh_extra_args: '-o StrictHostKeyChecking=no' + ansible_python_interpreter: '/usr/bin/python3' + : + ansible_port: + ansible_connection: ssh + ansible_user: + ansible_password: + ansible_ssh_extra_args: '-o StrictHostKeyChecking=no' + ansible_python_interpreter: '/usr/bin/python3' diff --git a/test_environment/setup_playbook.yaml b/test_environment/setup_playbook.yaml new file mode 100644 index 0000000..fdc423d --- /dev/null +++ b/test_environment/setup_playbook.yaml @@ -0,0 +1,369 @@ +--- +- name: Setup Environment + hosts: all + become: true + vars: + arch_mapping: + x86_64: amd64 + aarch64: arm64 + + tasks: + - name: Update apt packages + apt: + update_cache: true + tags: + - installation + + - name: Install required system packages + apt: + name: "{{ item }}" + state: latest + update_cache: true + loop: + - jq + - ca-certificates + - curl + - wget + - gnupg + - make + - dkms + - lsb-release + - apt-transport-https + - software-properties-common + - git + - python3-pip + tags: + - installation + + - name: Install Docker python package + ansible.builtin.pip: + name: docker + tags: + - installation + + - name: Create directory for Docker's GPG key + file: + path: /etc/apt/keyrings + state: directory + mode: '0755' + tags: + - installation + + - name: Add Docker's official GPG key + apt_key: + url: https://download.docker.com/linux/ubuntu/gpg + keyring: /etc/apt/keyrings/docker.gpg + state: present + tags: + - installation + + - name: Change GPG key permissions + file: + path: /etc/apt/keyrings/docker.gpg + state: file + mode: 'a+r' + tags: + - installation + + - name: Set up the stable repository + apt_repository: + repo: deb [arch={{ arch_mapping[ansible_architecture] | default(ansible_architecture) }} signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu {{ ansible_lsb.codename }} stable + filename: docker + state: present + update_cache: true + tags: + - installation + + - name: Install Docker and related packages + apt: + name: "{{ item }}" + state: present + update_cache: true + allow_downgrade: true + loop: + - docker-ce=5:27.1.1-1~ubuntu.{{ ansible_lsb.release }}~{{ ansible_lsb.codename }} + - docker-ce-cli=5:27.1.1-1~ubuntu.{{ ansible_lsb.release }}~{{ ansible_lsb.codename }} + - containerd.io + - docker-buildx-plugin + - docker-compose-plugin + tags: + - installation + + - name: Add Docker group + group: + name: docker + state: present + tags: + - installation + + - name: Add user to docker group + user: + name: "{{ ansible_user_id }}" + groups: "docker" + append: true + tags: + - installation + + - name: Enable and start Docker services + systemd: + name: "{{ item }}" + enabled: true + state: started + loop: + - docker.service + - containerd.service + tags: + - installation + + - name: Create sysbox directory + file: + path: ./sysbox + state: directory + when: (ansible_hostname == 'node-light') or (ansible_hostname == 'node-mid') or (ansible_hostname == 'node-heavy') + tags: + - installation + + - name: Download sysbox package + get_url: + url: + https://downloads.nestybox.com/sysbox/releases/v{{ sysbox_ver }}/sysbox-ce_{{ sysbox_ver }}-0.linux_{{ arch_mapping[ansible_architecture] | default(ansible_architecture) }}.deb + dest: ./sysbox/sysbox-ce.deb + when: (ansible_hostname == 'node-light') or (ansible_hostname == 'node-mid') or (ansible_hostname == 'node-heavy') + tags: + - installation + + - name: Install sysbox package + apt: deb=./sysbox/sysbox-ce.deb + when: (ansible_hostname == 'node-light') or (ansible_hostname == 'node-mid') or (ansible_hostname == 'node-heavy') + tags: + - installation + + - name: Git clone shiftfs repository + git: + repo: https://github.com/toby63/shiftfs-dkms.git + dest: ./shiftfs-{{ shiftfs_ver }} + single_branch: yes + version: '{{ shiftfs_ver }}' + when: (ansible_hostname == 'node-light') or (ansible_hostname == 'node-mid') or (ansible_hostname == 'node-heavy') + tags: + - installation + + - name: Update kernel + shell: ./shiftfs-{{ shiftfs_ver }}/update1 + when: (ansible_hostname == 'node-light') or (ansible_hostname == 'node-mid') or (ansible_hostname == 'node-heavy') + tags: + - installation + + - name: Build Makefile + make: + chdir: ./shiftfs-{{ shiftfs_ver }} + file: Makefile.dkms + when: (ansible_hostname == 'node-light') or (ansible_hostname == 'node-mid') or (ansible_hostname == 'node-heavy') + tags: + - installation + + - name: Copy dfaasagent directory + ansible.builtin.copy: + src: ../dfaasagent + dest: ~/dfaas/ + when: (ansible_hostname == 'node-light') or (ansible_hostname == 'node-mid') or (ansible_hostname == 'node-heavy') + tags: + - deploy + + - name: Copy docker directory + ansible.builtin.copy: + src: ../docker + dest: ~/dfaas/ + when: (ansible_hostname == 'node-light') or (ansible_hostname == 'node-mid') or (ansible_hostname == 'node-heavy') + tags: + - deploy + + - name: Copy ENV file on light node + ansible.builtin.copy: + src: ./dfaasagent-light.env + dest: ~/dfaas/dfaasagent.env + when: ansible_hostname == 'node-light' + tags: + - deploy + + - name: Copy ENV file on mid node + ansible.builtin.copy: + src: ./dfaasagent-mid.env + dest: ~/dfaas/dfaasagent.env + when: ansible_hostname == 'node-mid' + tags: + - deploy + + - name: Copy ENV file on heavy node + ansible.builtin.copy: + src: ./dfaasagent-heavy.env + dest: ~/dfaas/dfaasagent.env + when: ansible_hostname == 'node-heavy' + tags: + - deploy + + - name: Copy Operator directory on operator node + ansible.builtin.copy: + src: ../operator + dest: ~/ + when: ansible_hostname == 'operator' + tags: + - deploy + - deploy-operator + + - name: Build Docker images + ansible.builtin.command: + chdir: ~/dfaas + cmd: "{{ item }}" + loop: + - "docker build -t dfaas-agent-builder:latest -f docker/dfaas-agent-builder.dockerfile dfaasagent" + - "docker build -t dfaas-node:latest -f docker/dfaas-node.dockerfile docker" + when: (ansible_hostname == 'node-light') or (ansible_hostname == 'node-mid') or (ansible_hostname == 'node-heavy') + tags: + - deploy + + - name: Build operator Docker image + ansible.builtin.command: + chdir: ~/operator + cmd: docker build -t dfaas-operator:latest -f docker/dfaas-operator.dockerfile docker + when: ansible_hostname == 'operator' + tags: + - deploy + - deploy-operator + + - name: Init a new swarm + community.docker.docker_swarm: + state: present + when: inventory_hostname in groups["manager"] + tags: + - deploy + + - name: Retrieve swarm worker token + shell: docker swarm join-token -q worker + register: swarm_worker_token + when: inventory_hostname in groups["manager"] + tags: + - deploy + + - name: Add nodes + community.docker.docker_swarm: + state: join + join_token: "{{ hostvars[groups['manager'][0]]['swarm_worker_token']['stdout'] }}" + remote_addrs: "{{ groups['manager'][0] }}:2377" + when: inventory_hostname in groups["worker"] + tags: + - deploy + + - name: Add operator to swarm cluster + community.docker.docker_swarm: + state: join + join_token: "{{ hostvars[groups['manager'][0]]['swarm_worker_token']['stdout'] }}" + remote_addrs: "{{ groups['manager'][0] }}:2377" + when: ansible_hostname == 'operator' + tags: + - deploy + + - name: Create overlay network + ansible.builtin.command: "docker network create -d overlay --attachable --subnet=172.16.238.0/24 p2p-overlay" + when: inventory_hostname in groups["manager"] + tags: + - start + + - name: Deploy DFaaS container on light node + ansible.builtin.command: + chdir: ~/dfaas + cmd: "docker container run -itd --env-file dfaasagent.env --runtime sysbox-runc --network=p2p-overlay --name node-light --ip=172.16.238.10 -p 80:80 -p 6000:6000 dfaas-node" + when: ansible_hostname == 'node-light' + tags: + - start + + - name: Deploy DFaaS container on mid node + ansible.builtin.command: + chdir: ~/dfaas + cmd: "docker container run -itd --env-file dfaasagent.env --runtime sysbox-runc --network=p2p-overlay --name node-mid --ip=172.16.238.11 -p 80:80 -p 6000:6000 dfaas-node" + when: ansible_hostname == 'node-mid' + tags: + - start + + - name: Deploy DFaaS container on heavy node + ansible.builtin.command: + chdir: ~/dfaas + cmd: "docker container run -itd --env-file dfaasagent.env --runtime sysbox-runc --network=p2p-overlay --name node-heavy --ip=172.16.238.12 -p 80:80 -p 6000:6000 dfaas-node" + when: ansible_hostname == 'node-heavy' + tags: + - start + + - name: Deploy operator container + ansible.builtin.command: + chdir: ~/operator + cmd: docker container run -itd -v ~/:/tests --env-file dfaasoperator.env --network=p2p-overlay --name operator --ip=172.16.238.13 dfaas-operator + when: ansible_hostname == 'operator' + tags: + - start-operator + + - name: Remove node light container + ansible.builtin.command: docker rm --force node-light + when: ansible_hostname == 'node-light' + tags: + - stop + + - name: Remove node mid container + ansible.builtin.command: docker rm --force node-mid + when: ansible_hostname == 'node-mid' + tags: + - stop + + - name: Remove node heavy container + ansible.builtin.command: docker rm --force node-heavy + when: ansible_hostname == 'node-heavy' + tags: + - stop + + - name: Remove overlay network + ansible.builtin.command: docker network rm p2p-overlay + when: ansible_hostname == 'node-light' + tags: + - stop + + - name: Leave Swarm + ansible.builtin.command: docker swarm leave --force + tags: + - leave-swarm + + - name: Remove DFaaS nodes images + ansible.builtin.command: + cmd: "{{ item }}" + loop: + - "docker image rm dfaas-node" + - "docker image rm dfaas-agent-builder" + when: (ansible_hostname == 'node-light') or (ansible_hostname == 'node-mid') or (ansible_hostname == 'node-heavy') + tags: + - remove + + - name: Remove DFaaS directory + ansible.builtin.command: + chdir: ~/ + cmd: rm -r dfaas + when: (ansible_hostname == 'node-light') or (ansible_hostname == 'node-mid') or (ansible_hostname == 'node-heavy') + tags: + - remove + + - name: Remove operator container + ansible.builtin.command: docker rm --force operator + when: ansible_hostname == 'operator' + tags: + - remove-operator + + - name: Remove DFaaS operator image + ansible.builtin.command: docker image rm dfaas-operator + when: ansible_hostname == 'operator' + tags: + - remove-operator + + - name: Remove Operator directory + ansible.builtin.command: + chdir: ~/ + cmd: rm -r operator + when: ansible_hostname == 'operator' + tags: + - remove-operator From 0917fd51c8ca7e59e219748f0527c7ed33b979f1 Mon Sep 17 00:00:00 2001 From: Stefano Cattaneo Date: Mon, 28 Oct 2024 13:01:20 +0100 Subject: [PATCH 14/25] Update readme and setup environment files --- README.md | 39 ++++++++------------ docker-compose.yml | 8 ++-- setup_playbook.yaml | 89 +++++++++++++++++++++++++++++++++++++++------ 3 files changed, 98 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 55c0016..f25f93e 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ This way, we can run several emulated edge nodes by simply executing multiple Do - Docker CE 25.0.1 - Sysbox CE 0.6.3 -#### Setup environment using the Ansible playbook +#### Setup environment and deploy using the Ansible playbook Install [Ansible](https://www.ansible.com/), an agentless automation tool that you install on a single host, referred to as the control node. Then, using the [setup_playbook.yaml](setup_playbook.yaml) file, your Ansible control node can setup the environment to execute DFaaS on the managed node(s) specified in an inventory file. @@ -69,13 +69,16 @@ Run the `ansible-playbook` command on the control node to execute the tasks spec `-i` : path to an inventory file `--extra-vars` : to specify the Sysbox version and shiftfs branch to be installed +`--tags` : to specify steps of the playbook to be executed > The following command assumes you are using Ubuntu 22.04 LTS with kernel version 5.15 or 5.16. ```shell -ansible-playbook -i inventory.yaml setup_playbook.yaml --extra-vars "sysbox_ver=0.6.3 shiftfs_ver=k5.16" +ansible-playbook -i inventory.yaml setup_playbook.yaml --extra-vars "sysbox_ver=0.6.3 shiftfs_ver=k5.16" --tags "installation, deploy" ``` +This Ansible playbook installs the required software and executes the [docker-compose.yml](docker-compose.yml), deploying three DFaaS nodes containers, and a fourth container called [operator](operator), which deploys functions on DFaaS nodes and starts specified load tests. + #### Manual _Ansible_ @@ -95,20 +98,6 @@ You can follow the [official user guide](https://github.com/nestybox/sysbox/blob > We instead recommend installing [shiftfs](https://github.com/nestybox/sysbox/blob/master/docs/user-guide/install-package.md#installing-shiftfs) > according to your kernel version as suggested by the Sysbox CE user guide. -### Build Docker images - -```shell -# Paths assume you are executing from the project root directory -docker build -t dfaas-agent-builder:latest -f docker/dfaas-agent-builder.dockerfile dfaasagent -docker build -t dfaas-node:latest -f docker/dfaas-node.dockerfile docker -``` - -### Run a 3 nodes network via Docker Compose -See the provided [docker-compose.yml](docker-compose.yml) file for technical details. -```shell -docker compose up -d -``` - ### Deploy functions This script deploy the same set of functions on each of the nodes by using [docker/files/deploy_functions.sh](docker/files/deploy_functions.sh). The [deploy_functions.sh](docker/files/deploy_functions.sh) script waits for the OpenFaaS gateway to be up (max 20 retries, 10s delay), @@ -125,6 +114,8 @@ the default name you get when using the provided docker-compose.yml file. ./utils/deploy-functions-to-nodes.sh 3 "dfaas-node-" "-1" ``` +Alternatively you can exploit the deployment functionalities of the [operator](operator). + ### Invoke a function Each node exposes port `808x:80` (e.g., `node-1` exposed port is `8081:80`), where port `80` is the HAProxy port. This example assumes you run DFaaS nodes via Docker Compose with the provided [docker-compose.yml](docker-compose.yml) file. @@ -163,10 +154,11 @@ jq -ncM '{method: "GET", url: "http://localhost:8081/function/figlet", body: "He vegeta report -every=200ms ``` +You can also start multiple parallel Vegeta attacks exploiting [operator](operator) functionalities. + ### Create plots from vegeta results -You can produce some plots from vegeta results by exploiting the `vegeta plot` command or -our [utils/plot.py](utils/plot.py) script. -To use our script, you need to install the required Python packages listed in [utils/plot-requirements.txt](utils/plot-requirements.txt). +You can produce some plots from vegeta results by exploiting the `vegeta plot` command or our [plot-results.py](operator/docker/files/plot-results.py) script, which is automatically executed after tests execution with the [operator](operator). +To use our script, you need to install the required Python packages listed in [plot-requirements.txt](operator/docker/files/plot-requirements.txt). ```shell # Encode results as JSON @@ -175,10 +167,11 @@ cat $VEGFOLDER/results.bin | vegeta encode > $VEGFOLDER/results.json # Create plot with vegeta cat cat $VEGFOLDER/results.bin | vegeta plot > $VEGFOLDER/plot.html -# 1st arg: path int results.json -# 2nd arg: path output plot -# 3rd arg: rate req/s used for the attack -./utils/plot.py $VEGFOLDER/results.json $VEGFOLDER/plot.png 50 +# 1st arg: path results.json +# 2nd arg: path output folder +# 3rd arg: rate req/s used for the attack (if merged is True specify rate=0) +# 4th arg: boolean merged (is the input file merged from multiple attacks?) +./operator/docker/files/plot-results.py $VEGFOLDER/results.json $VEGFOLDER/plots 50 False ``` ### Forwarding traffic as a malicious node diff --git a/docker-compose.yml b/docker-compose.yml index f1cbbe8..30f1676 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -51,12 +51,12 @@ services: operator: image: dfaas-operator:latest build: - context: ./docker - dockerfile: docker/dfaas-operator.dockerfile + context: ./operator/docker + dockerfile: ./operator/docker/dfaas-operator.dockerfile env_file: - - dfaasoperator.env + - ./operator/dfaasoperator.env volumes: - - $HOME/vegeta-results:/vegeta-results + - $HOME:/tests networks: p2p-overlay: diff --git a/setup_playbook.yaml b/setup_playbook.yaml index 00ac367..c510fe3 100644 --- a/setup_playbook.yaml +++ b/setup_playbook.yaml @@ -11,6 +11,8 @@ - name: Update apt packages apt: update_cache: true + tags: + - installation - name: Install required system packages apt: @@ -29,24 +31,32 @@ - apt-transport-https - software-properties-common - git + tags: + - installation - name: Create directory for Docker's GPG key file: path: /etc/apt/keyrings state: directory mode: '0755' + tags: + - installation - name: Add Docker's official GPG key apt_key: url: https://download.docker.com/linux/ubuntu/gpg keyring: /etc/apt/keyrings/docker.gpg state: present + tags: + - installation - name: Change GPG key permissions file: path: /etc/apt/keyrings/docker.gpg state: file mode: 'a+r' + tags: + - installation - name: Set up the stable repository apt_repository: @@ -54,6 +64,8 @@ filename: docker state: present update_cache: true + tags: + - installation - name: Install Docker and related packages apt: @@ -61,22 +73,28 @@ state: present update_cache: true loop: - - docker-ce=5:27.0.3-1~ubuntu.{{ ansible_lsb.release }}~{{ ansible_lsb.codename }} - - docker-ce-cli=5:27.0.3-1~ubuntu.{{ ansible_lsb.release }}~{{ ansible_lsb.codename }} + - docker-ce=5:27.1.1-1~ubuntu.{{ ansible_lsb.release }}~{{ ansible_lsb.codename }} + - docker-ce-cli=5:27.1.1-1~ubuntu.{{ ansible_lsb.release }}~{{ ansible_lsb.codename }} - containerd.io - docker-buildx-plugin - docker-compose-plugin + tags: + - installation - name: Add Docker group group: name: docker state: present + tags: + - installation - name: Add user to docker group user: name: "{{ ansible_user_id }}" groups: "docker" append: true + tags: + - installation - name: Enable and start Docker services systemd: @@ -86,20 +104,28 @@ loop: - docker.service - containerd.service + tags: + - installation - name: Create sysbox directory file: path: ./sysbox state: directory + tags: + - installation - name: Download sysbox package get_url: url: https://downloads.nestybox.com/sysbox/releases/v{{ sysbox_ver }}/sysbox-ce_{{ sysbox_ver }}-0.linux_{{ arch_mapping[ansible_architecture] | default(ansible_architecture) }}.deb dest: ./sysbox/sysbox-ce.deb + tags: + - installation - name: Install sysbox package apt: deb=./sysbox/sysbox-ce.deb + tags: + - installation - name: Git clone shiftfs repository git: @@ -107,30 +133,71 @@ dest: ./shiftfs-{{ shiftfs_ver }} single_branch: yes version: '{{ shiftfs_ver }}' + tags: + - installation - name: Update kernel shell: ./shiftfs-{{ shiftfs_ver }}/update1 + tags: + - installation - name: Build Makefile make: chdir: ./shiftfs-{{ shiftfs_ver }} file: Makefile.dkms - - name: Git clone dfaas repository - git: - repo: https://github.com/UNIMIBInside/dfaas.git - dest: ./dfaas-repo - single_branch: yes - version: stecattaneo-dev + tags: + - installation + + - name: Copy dfaasagent directory + ansible.builtin.copy: + src: ./dfaasagent + dest: ~/dfaas/ + tags: + - deploy + + - name: Copy docker directory + ansible.builtin.copy: + src: ./docker + dest: ~/dfaas/ + tags: + - deploy + + - name: Copy docker compose file + ansible.builtin.copy: + src: ./docker-compose.yml + dest: ~/dfaas/ + tags: + - deploy + + - name: Copy ENV file + ansible.builtin.copy: + src: ./dfaasagent.env + dest: ~/dfaas/dfaasagent.env + tags: + - deploy + + - name: Copy Operator directory + ansible.builtin.copy: + src: ./operator + dest: ~/dfaas/ + tags: + - deploy + - name: Build Docker images ansible.builtin.command: - chdir: ./dfaas-repo + chdir: ~/dfaas cmd: "{{ item }}" loop: - "docker build -t dfaas-agent-builder:latest -f docker/dfaas-agent-builder.dockerfile dfaasagent" - "docker build -t dfaas-node:latest -f docker/dfaas-node.dockerfile docker" - - "docker build -t dfaas-operator:latest -f docker/dfaas-operator.dockerfile docker" + - "docker build -t dfaas-operator:latest -f operator/docker/dfaas-operator.dockerfile operator/docker" + tags: + - deploy + - name: Deploy Docker Compose stack ansible.builtin.command: - chdir: ./dfaas-repo + chdir: ~/dfaas cmd: docker compose up -d + tags: + - deploy \ No newline at end of file From 44c1707fc48f7a49ce5670ccc14248cfdc94005f Mon Sep 17 00:00:00 2001 From: Stefano Cattaneo Date: Mon, 28 Oct 2024 13:03:01 +0100 Subject: [PATCH 15/25] Fix readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f25f93e..0929d66 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ ungrouped: Run the `ansible-playbook` command on the control node to execute the tasks specified in the playbook with the following options: `-i` : path to an inventory file -`--extra-vars` : to specify the Sysbox version and shiftfs branch to be installed +`--extra-vars` : to specify the Sysbox version and shiftfs branch to be installed `--tags` : to specify steps of the playbook to be executed > The following command assumes you are using Ubuntu 22.04 LTS with kernel version 5.15 or 5.16. From e584122e63d462217fdf4cda12984436f08a12d6 Mon Sep 17 00:00:00 2001 From: Stefano Cattaneo Date: Mon, 28 Oct 2024 15:25:47 +0100 Subject: [PATCH 16/25] Add operator and test environment readme --- README.md | 2 + dfaasoperator.env | 6 -- docker/dfaas-operator.dockerfile | 16 --- docker/files/operator_entrypoint.sh | 81 -------------- operator/README.md | 10 ++ test_environment/README.md | 31 ++++++ utils/plot-requirements.txt | 3 - utils/plot.py | 158 ---------------------------- 8 files changed, 43 insertions(+), 264 deletions(-) delete mode 100644 dfaasoperator.env delete mode 100644 docker/dfaas-operator.dockerfile delete mode 100644 docker/files/operator_entrypoint.sh create mode 100644 operator/README.md create mode 100644 test_environment/README.md delete mode 100644 utils/plot-requirements.txt delete mode 100755 utils/plot.py diff --git a/README.md b/README.md index 0929d66..cf82bf1 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,8 @@ ansible-playbook -i inventory.yaml setup_playbook.yaml --extra-vars "sysbox_ver= This Ansible playbook installs the required software and executes the [docker-compose.yml](docker-compose.yml), deploying three DFaaS nodes containers, and a fourth container called [operator](operator), which deploys functions on DFaaS nodes and starts specified load tests. +If you have four different VMs it's recommended to deploy the entire system exploiting the playbook and configuration files in [test_environment](test_environment). + #### Manual _Ansible_ diff --git a/dfaasoperator.env b/dfaasoperator.env deleted file mode 100644 index 044e7cf..0000000 --- a/dfaasoperator.env +++ /dev/null @@ -1,6 +0,0 @@ -MODE=test -NODES=172.16.238.10:172.16.238.11:172.16.238.12 -FUNCS_NAMES=figlet:curl -FUNCS_IMAGES=functions/figlet:ghcr.io/openfaas/curl -OPENFAAS_GATEWAY_USER=admin -OPENFAAS_GATEWAY_PWD=admin diff --git a/docker/dfaas-operator.dockerfile b/docker/dfaas-operator.dockerfile deleted file mode 100644 index 660ab36..0000000 --- a/docker/dfaas-operator.dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM alpine:latest - -RUN apk update && apk add \ - curl \ - wget \ - bash \ - jq - -RUN wget https://github.com/tsenart/vegeta/releases/download/v12.8.4/vegeta_12.8.4_linux_amd64.tar.gz -RUN tar -xf vegeta_12.8.4_linux_amd64.tar.gz && rm vegeta_12.8.4_linux_amd64.tar.gz -RUN mv vegeta /usr/local/bin/ - -WORKDIR / -COPY files/operator_entrypoint.sh ./operator_entrypoint.sh -RUN chmod +x operator_entrypoint.sh -ENTRYPOINT [ "./operator_entrypoint.sh" ] \ No newline at end of file diff --git a/docker/files/operator_entrypoint.sh b/docker/files/operator_entrypoint.sh deleted file mode 100644 index 234e555..0000000 --- a/docker/files/operator_entrypoint.sh +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/bash - -MAX_TRIES=25 -MAX_TRIES_DEPLOY=10 -DEPLOY_FAILED=0 - -IFS=: read -r -a mode <<< "$MODE" -IFS=: read -r -a nodes <<< "$NODES" -IFS=: read -r -a funcs_names <<< "$FUNCS_NAMES" -IFS=: read -r -a funcs_images <<< "$FUNCS_IMAGES" - -for node in "${nodes[@]}" -do - echo -e "Checking if node ${node} is healthy...\n"; - HEALTHZ_ENDPOINT="http://${node}/healthz" - FUNCS_ENDPOINT="http://${OPENFAAS_GATEWAY_USER}:${OPENFAAS_GATEWAY_PWD}@${node}/system/functions" - TRIES=1 - - until [[ "$(curl -s -w '%{http_code}' -o /dev/null ${HEALTHZ_ENDPOINT})" -eq 200 || $TRIES -eq $MAX_TRIES ]] - do - echo -e "Node ${node} not ready yet.\nRetrying health check in 10 seconds...\n"; - sleep 10; - ((TRIES+=1)); - done - - if [[ $TRIES -eq $MAX_TRIES ]] - then - echo -e "Node ${node} is down.\n\n"; - else - echo -e "Deploying functions to node ${node}...\n"; - - for i in "${!funcs_names[@]}" - do - TRIES_DEPLOY=0 - echo -e "Deploying function "${funcs_names[$i]}"...\n"; - - until [[ "$(curl -s -w '%{http_code}' -o /dev/null -H "Content-Type: application/json" -X POST -d "{\"service\":\""${funcs_names[$i]}"\",\"image\":\""${funcs_images[$i]}"\"}" "${FUNCS_ENDPOINT}")" -eq 200 || $TRIES_DEPLOY -eq $MAX_TRIES_DEPLOY ]] - do - echo -e "Failed to deploy function "${funcs_names[$i]}" to node ${node}. Retrying in 2 seconds...\n"; - sleep 2; - ((TRIES_DEPLOY+=1)); - done - if [[ $TRIES_DEPLOY -eq $MAX_TRIES_DEPLOY ]] - then - echo -e "Failed to deploy function "${funcs_names[$i]}" to node ${node}.\n"; - ((DEPLOY_FAILED+=1)); - else - echo -e "Function "${funcs_names[$i]}" successfully deployed to node ${node}.\n"; - fi - done - fi -done - -if [[ $mode = "test" ]] -then - if [[ $DEPLOY_FAILED -eq 0 ]] - then - export VEGFOLDER="/vegeta-results/$(date +%Y-%m-%d-%H%M%S)" - mkdir -p $VEGFOLDER - - jq -ncM '{method: "GET", url: "http://172.16.238.10/function/figlet", body: "Hello DFaaS world!" | @base64, header: {"Content-Type": ["text/plain"]}}' | \ - vegeta attack -duration=3m -rate=600 -format=json | \ - tee $VEGFOLDER/results.bin | \ - vegeta report -every=200ms - - # Encode results as JSON - cat $VEGFOLDER/results.bin | vegeta encode > $VEGFOLDER/results.json - - # Create plot with vegeta - cat $VEGFOLDER/results.bin | vegeta plot > $VEGFOLDER/plot.html - - # 1st arg: path int results.json - # 2nd arg: path output plot - # 3rd arg: rate req/s used for the attack - #./utils/plot.py $VEGFOLDER/results.json $VEGFOLDER/plot.png 50 - else - echo -e "Cannot run tests. Failed to deploy ${DEPLOY_FAILED} functions." - fi -fi - -exit 0; diff --git a/operator/README.md b/operator/README.md new file mode 100644 index 0000000..793fc23 --- /dev/null +++ b/operator/README.md @@ -0,0 +1,10 @@ +# Operator +The Operator container executes the [operator_entrypoint.sh](./docker/files/operator_entrypoint.sh) script to deploy functions on specified DFaaS nodes and execute load tests exploiting [Vegeta](https://github.com/tsenart/vegeta). + +The operator can be configured editing the [dfaasoperator.env](dfaasoperator.env), specifying the IP of the target nodes, the functions to deploy, and the configuration of each Vegeta attack. +When operator starts, it performs healthchecks on the target nodes, then deploys the selected functions. After that, it waits for a certain amount of time (specified in the configuration) allowing the nodes proxies to reconfigure with the new functions endpoints, then launches Vegeta attacks. +The operator can execute multiple parallel Vegeta attacks, specifying the amount of time to wait before starting each attack. For each attack is also necessary to specify duration, rate, and the HTTP request. +For single Vegeta attacks the operator generates some plots exploiting the [plot-results.py](docker/files/plot-results.py) script. When all the attacks are terminated, the operator merges all the `results.json` files generated by Vegeta, obtaining the `merged-results.json` file. This is used to generate other plots with the [plot-results.py](docker/files/plot-results.py) script, aggregating all attacks results. +If specified in the environment file, after load tests the operator deletes the deployed functions from target nodes. + +_Note: before deploying the operator it's also necessary to configure the [plot-results.py](docker/files/plot-results.py) script to generate correct plots for merged results._ \ No newline at end of file diff --git a/test_environment/README.md b/test_environment/README.md new file mode 100644 index 0000000..f01c396 --- /dev/null +++ b/test_environment/README.md @@ -0,0 +1,31 @@ +# Multiple VMs Environment +This environment has been exploited to execute some comparison tests beetween the old load balancing strategy adopted by the DFaaS Agent, and the newly implemented Node Margin Strategy. +It consists of three DFaaS nodes, called "Node Light" (2 CPU, 8 GB RAM), "Node Mid" (4 CPU, 16 GB RAM) and "Node Heavy" (6 CPU, 24 GB RAM), and an "Operator" node which automatically deploys functions on other nodes and starts load tests. The technical specifications of the three DFaaS nodes correspond to the specifications of the three nodes types on which the predictive models exploited by the Node Margin Strategy have been trained. +To deploy this environment you need three VMs with the specifications reported above, and antoher VM for the [Operator](../operator). + +## Setup and deploy the environment +Install [Ansible](https://www.ansible.com/), an agentless automation tool that you install on a single host, referred to as the control node. +Then, using the [setup_playbook.yaml](setup_playbook.yaml) file, your Ansible control node can setup the environment to execute DFaaS on the managed node(s) specified in an inventory file. + +Run the `ansible-playbook` command on the control node using an inventory file configured like [inventory_example.yaml](inventory_example.yaml), to execute the tasks specified in the playbook with the following options: + +`-i` : path to an inventory file +`--extra-vars` : to specify the Sysbox version and shiftfs branch to be installed +`--tags` : to specify steps of the playbook to be executed + +> The following command assumes you are using Ubuntu 20.04 LTS with kernel version 5.4. + +```shell +ansible-playbook -i inventory.yaml setup_playbook.yaml --extra-vars "sysbox_ver=0.5.2 shiftfs_ver=k5.4" --tags "installation, deploy, start" +``` + +Tags have the following meaning: +- `installation`: install required software +- `deploy`: copy files and build Docker images of DFaaS nodes on VMs +- `start`: run DFaaS nodes containers +- `deploy-operator`: copy files and build Docker image on Operator node VM +- `start-operator`: run DFaaS Operator container +- `stop`: stop DFaaS nodes running containers +- `leave-swarm`: each VM leaves the Docker Swarm cluster +- `remove`: delete from VMs DFaaS directory and Docker images +- `remove-operator`: delete from Operator node VM the operator directory and Docker image \ No newline at end of file diff --git a/utils/plot-requirements.txt b/utils/plot-requirements.txt deleted file mode 100644 index fb0f9d3..0000000 --- a/utils/plot-requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -numpy -pandas -matplotlib \ No newline at end of file diff --git a/utils/plot.py b/utils/plot.py deleted file mode 100755 index d72c5b8..0000000 --- a/utils/plot.py +++ /dev/null @@ -1,158 +0,0 @@ -#!/usr/bin/env python3 - -import numpy as np -import pandas as pd -import sys -import os -import matplotlib.pyplot as plt -import matplotlib.dates as mdates - -status_code_map = { - '0': '0 - Client/Library Error', - '200': '200 - Ok', - '261': '261 - Node 1 response', - '262': '262 - Node 2 response', - '263': '263 - Node 3 response', - '403': '403 - Forbidden', - '429': '429 - Too Many Requests', - '503': '503 - Service Unavailable', -} - -''' - Read json file containing vegeta export. - - This function takes only one param: the path of json file. - This function returns a dataframe containing status codes and timestamps. - The returned dataframe represent one packet send for each row with - respective response. -''' - - -def read_json(path): - code_stream = os.popen('cat ' + path + ' | jq -r .code') - codes = code_stream.read().splitlines() - timestamp_stream = os.popen('cat ' + path + ' | jq -r .timestamp') - timestamp = timestamp_stream.read().splitlines() - df = pd.DataFrame.from_dict( - {"timestamp": pd.to_datetime(timestamp), "code": codes}) - return df - - -''' - Compute one column for each status code in dataframe passaed as param. - - Each of this columns has 1 correpsonding to rows that returns this specific state, - 0 otherwise. -''' - - -def compute_df_columns(df): - for status_code in df["code"].unique(): - df[status_code] = np.where(df["code"] == status_code, 1, 0) - # print((df.sum(axis=1) == 1).all()) - return df - - -''' - Group row by 'rate', obtaining one row for each minute of test. - - Columns mantained are one for each status code, with number of times that - the code occurs in this minute (among 'rate' responses). - This function also add to new dataset a column containing timestamp for each second - of testing. This column is used as index in new dataset. - - This function takes as input the source dataset and return grouped dataset. -''' - - -def group_by_resp_for_minutes(df, rate): - df_by_second = df.groupby(lambda x: x // rate)[df["code"].unique()].sum() - # print((df_by_second.sum(axis=1) == 50).all()) - - # Attach for each second corresponding timestamp. - column = [df["timestamp"][i] for i in range(0, len(df), rate)] - # print(len(column)) - - df_by_second["start timestamp"] = column - df_by_second.set_index("start timestamp", inplace=True) - - # print(len(column) == len(df_by_second)) - - return df_by_second - - -''' - Setup plot congiguration. -''' - - -def setup_plot(): - plt.figure(figsize=(20, 10)) - plt.xlabel("Time - Format [Hour:Minutes]") - plt.ylabel("Respenses [rate resp/s]") - - -''' - Computer chart for each row in the dataset, passed as param. -''' - - -def compute_chart(df): - for col in sorted(df.columns): - plt.plot(df.index, df[col], label=status_code_map[col]) - - -''' - Export plot to png. -''' - - -def export_plot(path): - dtFmt = mdates.DateFormatter('%H:%M') # define the formatting - plt.gca().xaxis.set_major_formatter(dtFmt) - - plt.legend(loc="upper right") - plt.grid() - - # plt.show() - plt.savefig(path) - - -def main(argv): - file_input, file_output, rate = str(argv[0]), str(argv[1]), int(argv[2]) - - # Reading datasets from json files. - df1 = read_json(file_input) - # df2 = read_json('malicius-testing/2021-04-15-110614/results.json') - - # Calcolate additional columns (one for each error code.). - df1 = compute_df_columns(df1) - # df2 = compute_df_columns(df2) - - # Group rows by 'rate' --> one for each second. - df_by_second1 = group_by_resp_for_minutes(df1, rate) - # df_by_second2 = group_by_resp_for_minutes(df2) - - # Debugging. - # print("######### DF1 #########") - # print(df1.head(52)) - # print(df_by_second1) - # print(df_by_second1.columns) - # print() - # print("######### DF2 #########") - # print(df_by_second2) - # print(df_by_second2.columns) - - # Set fig size and axis label. - setup_plot() - - # Draw chart. - compute_chart(df_by_second1) - # compute_chart(df_by_second2) - - # Export on png file. - export_plot(file_output) - - -if __name__ == '__main__': - main(sys.argv[1:]) From de1f6fb88dc836f4f0dce1b856c7760a2207936e Mon Sep 17 00:00:00 2001 From: Stefano Cattaneo Date: Mon, 28 Oct 2024 16:14:08 +0100 Subject: [PATCH 17/25] Add test results --- test_environment/README.md | 64 +- .../figlet-light-250/plot-cumulatives-log.png | Bin 0 -> 24274 bytes .../figlet-light-250/plot-cumulatives.png | Bin 0 -> 33012 bytes .../plot-nodes-responses-and-cumulatives.png | Bin 0 -> 82701 bytes .../figlet-light-250/plot-nodes-responses.png | Bin 0 -> 60436 bytes .../figlet-light-250/plot.html | 5953 ++++++++++++ .../figlet-light-250/report.txt | 998 ++ .../figlet-light-250/report_values.txt | 1 + .../figlet-light-250/plot-cumulatives-log.png | Bin 0 -> 26539 bytes .../figlet-light-250/plot-cumulatives.png | Bin 0 -> 33641 bytes .../plot-nodes-responses-and-cumulatives.png | Bin 0 -> 81037 bytes .../figlet-light-250/plot-nodes-responses.png | Bin 0 -> 57878 bytes .../figlet-light-250/plot.html | 7487 +++++++++++++++ .../figlet-light-250/report.txt | 111 + .../figlet-light-250/report_values.txt | 1 + .../figlet-mid-100/plot-cumulatives-log.png | Bin 0 -> 19969 bytes .../figlet-mid-100/plot-cumulatives.png | Bin 0 -> 23481 bytes .../figlet-mid-100/plot-nodes-responses.png | Bin 0 -> 45786 bytes .../figlet-mid-100/plot.html | 4428 +++++++++ .../figlet-mid-100/report.txt | 50 + .../figlet-mid-100/report_values.txt | 1 + .../figlet-mid-200/plot-cumulatives-log.png | Bin 0 -> 19752 bytes .../figlet-mid-200/plot-cumulatives.png | Bin 0 -> 23013 bytes .../figlet-mid-200/plot-nodes-responses.png | Bin 0 -> 42281 bytes .../figlet-mid-200/plot.html | 4491 +++++++++ .../figlet-mid-200/report.txt | 100 + .../figlet-mid-200/report_values.txt | 1 + .../plot-cumulatives-by-node-log.png | Bin 0 -> 52409 bytes .../plot-cumulatives-by-node.png | Bin 0 -> 63442 bytes .../plot-cumulatives-log-Node heavy.png | Bin 0 -> 13738 bytes .../plot-cumulatives-log-Node light.png | Bin 0 -> 13738 bytes .../plot-cumulatives-log-Node mid.png | Bin 0 -> 25220 bytes .../merged-results/plot-err-by-node.png | Bin 0 -> 47746 bytes .../plot-nodes-responses-and-cumulatives.png | Bin 0 -> 71346 bytes .../merged-results/plot-nodes-responses.png | Bin 0 -> 49628 bytes .../plot-succ-by-node-with-forwarded.png | Bin 0 -> 53865 bytes .../merged-results/plot-succ-by-node.png | Bin 0 -> 49628 bytes .../merged-results/report_values.txt | 2 + .../shasum-mid-50/plot-cumulatives-log.png | Bin 0 -> 20570 bytes .../shasum-mid-50/plot-cumulatives.png | Bin 0 -> 23185 bytes .../shasum-mid-50/plot-nodes-responses.png | Bin 0 -> 40367 bytes .../shasum-mid-50/plot.html | 4294 +++++++++ .../shasum-mid-50/report.txt | 25 + .../shasum-mid-50/report_values.txt | 1 + .../figlet-mid-100/plot-cumulatives-log.png | Bin 0 -> 20784 bytes .../figlet-mid-100/plot-cumulatives.png | Bin 0 -> 23196 bytes .../figlet-mid-100/plot-nodes-responses.png | Bin 0 -> 63058 bytes .../static_strategy/figlet-mid-100/plot.html | 4964 ++++++++++ .../static_strategy/figlet-mid-100/report.txt | 22 + .../figlet-mid-100/report_values.txt | 1 + .../figlet-mid-200/plot-cumulatives-log.png | Bin 0 -> 21757 bytes .../figlet-mid-200/plot-cumulatives.png | Bin 0 -> 24564 bytes .../figlet-mid-200/plot-nodes-responses.png | Bin 0 -> 69450 bytes .../static_strategy/figlet-mid-200/plot.html | 8174 +++++++++++++++++ .../static_strategy/figlet-mid-200/report.txt | 31 + .../figlet-mid-200/report_values.txt | 1 + .../plot-cumulatives-by-node-log.png | Bin 0 -> 52327 bytes .../plot-cumulatives-by-node.png | Bin 0 -> 68180 bytes .../plot-cumulatives-log-Node heavy.png | Bin 0 -> 13738 bytes .../plot-cumulatives-log-Node light.png | Bin 0 -> 13738 bytes .../plot-cumulatives-log-Node mid.png | Bin 0 -> 26801 bytes .../merged-results/plot-err-by-node.png | Bin 0 -> 48456 bytes .../plot-nodes-responses-and-cumulatives.png | Bin 0 -> 79496 bytes .../merged-results/plot-nodes-responses.png | Bin 0 -> 56035 bytes .../plot-succ-by-node-with-forwarded.png | Bin 0 -> 57208 bytes .../merged-results/plot-succ-by-node.png | Bin 0 -> 49712 bytes .../merged-results/report_values.txt | 2 + .../shasum-mid-50/plot-cumulatives-log.png | Bin 0 -> 20338 bytes .../shasum-mid-50/plot-cumulatives.png | Bin 0 -> 23584 bytes .../shasum-mid-50/plot-nodes-responses.png | Bin 0 -> 39836 bytes .../static_strategy/shasum-mid-50/plot.html | 4269 +++++++++ .../static_strategy/shasum-mid-50/report.txt | 18 + .../shasum-mid-50/report_values.txt | 1 + .../figlet-heavy-100/plot-cumulatives-log.png | Bin 0 -> 20004 bytes .../figlet-heavy-100/plot-cumulatives.png | Bin 0 -> 23836 bytes .../figlet-heavy-100/plot-nodes-responses.png | Bin 0 -> 45739 bytes .../figlet-heavy-100/plot.html | 4403 +++++++++ .../figlet-heavy-100/report.txt | 31 + .../figlet-heavy-100/report_values.txt | 1 + .../figlet-light-350/plot-cumulatives-log.png | Bin 0 -> 21557 bytes .../figlet-light-350/plot-cumulatives.png | Bin 0 -> 25696 bytes .../figlet-light-350/plot-nodes-responses.png | Bin 0 -> 81421 bytes .../figlet-light-350/plot.html | 8174 +++++++++++++++++ .../figlet-light-350/report.txt | 6110 ++++++++++++ .../figlet-light-350/report_values.txt | 1 + .../figlet-mid-100/plot-cumulatives-log.png | Bin 0 -> 21210 bytes .../figlet-mid-100/plot-cumulatives.png | Bin 0 -> 24090 bytes .../figlet-mid-100/plot-nodes-responses.png | Bin 0 -> 71887 bytes .../figlet-mid-100/plot.html | 7073 ++++++++++++++ .../figlet-mid-100/report.txt | 717 ++ .../figlet-mid-100/report_values.txt | 1 + .../figlet-mid-500/plot-cumulatives-log.png | Bin 0 -> 22212 bytes .../figlet-mid-500/plot-cumulatives.png | Bin 0 -> 26012 bytes .../figlet-mid-500/plot-nodes-responses.png | Bin 0 -> 74181 bytes .../figlet-mid-500/plot.html | 8174 +++++++++++++++++ .../figlet-mid-500/report.txt | 2388 +++++ .../figlet-mid-500/report_values.txt | 1 + .../plot-cumulatives-by-node-log.png | Bin 0 -> 61804 bytes .../plot-cumulatives-by-node.png | Bin 0 -> 71897 bytes .../plot-cumulatives-log-Node heavy.png | Bin 0 -> 23080 bytes .../plot-cumulatives-log-Node light.png | Bin 0 -> 25537 bytes .../plot-cumulatives-log-Node mid.png | Bin 0 -> 25944 bytes .../merged-results/plot-err-by-node.png | Bin 0 -> 64974 bytes .../merged-results/plot-nodes-responses.png | Bin 0 -> 83961 bytes .../plot-succ-by-node-with-forwarded.png | Bin 0 -> 97009 bytes .../merged-results/plot-succ-by-node.png | Bin 0 -> 77729 bytes .../merged-results/report_values.txt | 4 + .../figlet-heavy-100/plot-cumulatives-log.png | Bin 0 -> 20152 bytes .../figlet-heavy-100/plot-cumulatives.png | Bin 0 -> 23990 bytes .../figlet-heavy-100/plot-nodes-responses.png | Bin 0 -> 45327 bytes .../figlet-heavy-100/plot.html | 4362 +++++++++ .../figlet-heavy-100/report.txt | 30 + .../figlet-heavy-100/report_values.txt | 1 + .../figlet-light-350/plot-cumulatives-log.png | Bin 0 -> 20430 bytes .../figlet-light-350/plot-cumulatives.png | Bin 0 -> 25110 bytes .../figlet-light-350/plot-nodes-responses.png | Bin 0 -> 71938 bytes .../figlet-light-350/plot.html | 8174 +++++++++++++++++ .../figlet-light-350/report.txt | 805 ++ .../figlet-light-350/report_values.txt | 1 + .../figlet-mid-100/plot-cumulatives-log.png | Bin 0 -> 21117 bytes .../figlet-mid-100/plot-cumulatives.png | Bin 0 -> 24375 bytes .../figlet-mid-100/plot-nodes-responses.png | Bin 0 -> 72212 bytes .../static_strategy/figlet-mid-100/plot.html | 7548 +++++++++++++++ .../static_strategy/figlet-mid-100/report.txt | 371 + .../figlet-mid-100/report_values.txt | 1 + .../figlet-mid-500/plot-cumulatives-log.png | Bin 0 -> 22661 bytes .../figlet-mid-500/plot-cumulatives.png | Bin 0 -> 26868 bytes .../figlet-mid-500/plot-nodes-responses.png | Bin 0 -> 75252 bytes .../static_strategy/figlet-mid-500/plot.html | 8174 +++++++++++++++++ .../static_strategy/figlet-mid-500/report.txt | 2102 +++++ .../figlet-mid-500/report_values.txt | 1 + .../plot-cumulatives-by-node-log.png | Bin 0 -> 62158 bytes .../plot-cumulatives-by-node.png | Bin 0 -> 71553 bytes .../plot-cumulatives-log-Node heavy.png | Bin 0 -> 23893 bytes .../plot-cumulatives-log-Node light.png | Bin 0 -> 24508 bytes .../plot-cumulatives-log-Node mid.png | Bin 0 -> 25598 bytes .../merged-results/plot-err-by-node.png | Bin 0 -> 53022 bytes .../merged-results/plot-nodes-responses.png | Bin 0 -> 72872 bytes .../plot-succ-by-node-with-forwarded.png | Bin 0 -> 90151 bytes .../merged-results/plot-succ-by-node.png | Bin 0 -> 61861 bytes .../merged-results/report_values.txt | 4 + 141 files changed, 114142 insertions(+), 1 deletion(-) create mode 100644 test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/plot-cumulatives-log.png create mode 100644 test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/plot-cumulatives.png create mode 100644 test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/plot-nodes-responses-and-cumulatives.png create mode 100644 test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/plot-nodes-responses.png create mode 100644 test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/plot.html create mode 100644 test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/report.txt create mode 100644 test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/report_values.txt create mode 100644 test_environment/tests_results/first_test/static_strategy/figlet-light-250/plot-cumulatives-log.png create mode 100644 test_environment/tests_results/first_test/static_strategy/figlet-light-250/plot-cumulatives.png create mode 100644 test_environment/tests_results/first_test/static_strategy/figlet-light-250/plot-nodes-responses-and-cumulatives.png create mode 100644 test_environment/tests_results/first_test/static_strategy/figlet-light-250/plot-nodes-responses.png create mode 100644 test_environment/tests_results/first_test/static_strategy/figlet-light-250/plot.html create mode 100644 test_environment/tests_results/first_test/static_strategy/figlet-light-250/report.txt create mode 100644 test_environment/tests_results/first_test/static_strategy/figlet-light-250/report_values.txt create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/figlet-mid-100/plot-cumulatives-log.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/figlet-mid-100/plot-cumulatives.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/figlet-mid-100/plot-nodes-responses.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/figlet-mid-100/plot.html create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/figlet-mid-100/report.txt create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/figlet-mid-100/report_values.txt create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/figlet-mid-200/plot-cumulatives-log.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/figlet-mid-200/plot-cumulatives.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/figlet-mid-200/plot-nodes-responses.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/figlet-mid-200/plot.html create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/figlet-mid-200/report.txt create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/figlet-mid-200/report_values.txt create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/merged-results/plot-cumulatives-by-node-log.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/merged-results/plot-cumulatives-by-node.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/merged-results/plot-cumulatives-log-Node heavy.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/merged-results/plot-cumulatives-log-Node light.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/merged-results/plot-cumulatives-log-Node mid.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/merged-results/plot-err-by-node.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/merged-results/plot-nodes-responses-and-cumulatives.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/merged-results/plot-nodes-responses.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/merged-results/plot-succ-by-node-with-forwarded.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/merged-results/plot-succ-by-node.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/merged-results/report_values.txt create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/shasum-mid-50/plot-cumulatives-log.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/shasum-mid-50/plot-cumulatives.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/shasum-mid-50/plot-nodes-responses.png create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/shasum-mid-50/plot.html create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/shasum-mid-50/report.txt create mode 100644 test_environment/tests_results/second_test/node_margin_strategy/shasum-mid-50/report_values.txt create mode 100644 test_environment/tests_results/second_test/static_strategy/figlet-mid-100/plot-cumulatives-log.png create mode 100644 test_environment/tests_results/second_test/static_strategy/figlet-mid-100/plot-cumulatives.png create mode 100644 test_environment/tests_results/second_test/static_strategy/figlet-mid-100/plot-nodes-responses.png create mode 100644 test_environment/tests_results/second_test/static_strategy/figlet-mid-100/plot.html create mode 100644 test_environment/tests_results/second_test/static_strategy/figlet-mid-100/report.txt create mode 100644 test_environment/tests_results/second_test/static_strategy/figlet-mid-100/report_values.txt create mode 100644 test_environment/tests_results/second_test/static_strategy/figlet-mid-200/plot-cumulatives-log.png create mode 100644 test_environment/tests_results/second_test/static_strategy/figlet-mid-200/plot-cumulatives.png create mode 100644 test_environment/tests_results/second_test/static_strategy/figlet-mid-200/plot-nodes-responses.png create mode 100644 test_environment/tests_results/second_test/static_strategy/figlet-mid-200/plot.html create mode 100644 test_environment/tests_results/second_test/static_strategy/figlet-mid-200/report.txt create mode 100644 test_environment/tests_results/second_test/static_strategy/figlet-mid-200/report_values.txt create mode 100644 test_environment/tests_results/second_test/static_strategy/merged-results/plot-cumulatives-by-node-log.png create mode 100644 test_environment/tests_results/second_test/static_strategy/merged-results/plot-cumulatives-by-node.png create mode 100644 test_environment/tests_results/second_test/static_strategy/merged-results/plot-cumulatives-log-Node heavy.png create mode 100644 test_environment/tests_results/second_test/static_strategy/merged-results/plot-cumulatives-log-Node light.png create mode 100644 test_environment/tests_results/second_test/static_strategy/merged-results/plot-cumulatives-log-Node mid.png create mode 100644 test_environment/tests_results/second_test/static_strategy/merged-results/plot-err-by-node.png create mode 100644 test_environment/tests_results/second_test/static_strategy/merged-results/plot-nodes-responses-and-cumulatives.png create mode 100644 test_environment/tests_results/second_test/static_strategy/merged-results/plot-nodes-responses.png create mode 100644 test_environment/tests_results/second_test/static_strategy/merged-results/plot-succ-by-node-with-forwarded.png create mode 100644 test_environment/tests_results/second_test/static_strategy/merged-results/plot-succ-by-node.png create mode 100644 test_environment/tests_results/second_test/static_strategy/merged-results/report_values.txt create mode 100644 test_environment/tests_results/second_test/static_strategy/shasum-mid-50/plot-cumulatives-log.png create mode 100644 test_environment/tests_results/second_test/static_strategy/shasum-mid-50/plot-cumulatives.png create mode 100644 test_environment/tests_results/second_test/static_strategy/shasum-mid-50/plot-nodes-responses.png create mode 100644 test_environment/tests_results/second_test/static_strategy/shasum-mid-50/plot.html create mode 100644 test_environment/tests_results/second_test/static_strategy/shasum-mid-50/report.txt create mode 100644 test_environment/tests_results/second_test/static_strategy/shasum-mid-50/report_values.txt create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-heavy-100/plot-cumulatives-log.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-heavy-100/plot-cumulatives.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-heavy-100/plot-nodes-responses.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-heavy-100/plot.html create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-heavy-100/report.txt create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-heavy-100/report_values.txt create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-light-350/plot-cumulatives-log.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-light-350/plot-cumulatives.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-light-350/plot-nodes-responses.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-light-350/plot.html create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-light-350/report.txt create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-light-350/report_values.txt create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-mid-100/plot-cumulatives-log.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-mid-100/plot-cumulatives.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-mid-100/plot-nodes-responses.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-mid-100/plot.html create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-mid-100/report.txt create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-mid-100/report_values.txt create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-mid-500/plot-cumulatives-log.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-mid-500/plot-cumulatives.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-mid-500/plot-nodes-responses.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-mid-500/plot.html create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-mid-500/report.txt create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/figlet-mid-500/report_values.txt create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/merged-results/plot-cumulatives-by-node-log.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/merged-results/plot-cumulatives-by-node.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/merged-results/plot-cumulatives-log-Node heavy.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/merged-results/plot-cumulatives-log-Node light.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/merged-results/plot-cumulatives-log-Node mid.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/merged-results/plot-err-by-node.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/merged-results/plot-nodes-responses.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/merged-results/plot-succ-by-node-with-forwarded.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/merged-results/plot-succ-by-node.png create mode 100644 test_environment/tests_results/third_test/node_margin_strategy/merged-results/report_values.txt create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-heavy-100/plot-cumulatives-log.png create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-heavy-100/plot-cumulatives.png create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-heavy-100/plot-nodes-responses.png create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-heavy-100/plot.html create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-heavy-100/report.txt create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-heavy-100/report_values.txt create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-light-350/plot-cumulatives-log.png create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-light-350/plot-cumulatives.png create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-light-350/plot-nodes-responses.png create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-light-350/plot.html create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-light-350/report.txt create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-light-350/report_values.txt create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-mid-100/plot-cumulatives-log.png create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-mid-100/plot-cumulatives.png create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-mid-100/plot-nodes-responses.png create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-mid-100/plot.html create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-mid-100/report.txt create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-mid-100/report_values.txt create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-mid-500/plot-cumulatives-log.png create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-mid-500/plot-cumulatives.png create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-mid-500/plot-nodes-responses.png create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-mid-500/plot.html create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-mid-500/report.txt create mode 100644 test_environment/tests_results/third_test/static_strategy/figlet-mid-500/report_values.txt create mode 100644 test_environment/tests_results/third_test/static_strategy/merged-results/plot-cumulatives-by-node-log.png create mode 100644 test_environment/tests_results/third_test/static_strategy/merged-results/plot-cumulatives-by-node.png create mode 100644 test_environment/tests_results/third_test/static_strategy/merged-results/plot-cumulatives-log-Node heavy.png create mode 100644 test_environment/tests_results/third_test/static_strategy/merged-results/plot-cumulatives-log-Node light.png create mode 100644 test_environment/tests_results/third_test/static_strategy/merged-results/plot-cumulatives-log-Node mid.png create mode 100644 test_environment/tests_results/third_test/static_strategy/merged-results/plot-err-by-node.png create mode 100644 test_environment/tests_results/third_test/static_strategy/merged-results/plot-nodes-responses.png create mode 100644 test_environment/tests_results/third_test/static_strategy/merged-results/plot-succ-by-node-with-forwarded.png create mode 100644 test_environment/tests_results/third_test/static_strategy/merged-results/plot-succ-by-node.png create mode 100644 test_environment/tests_results/third_test/static_strategy/merged-results/report_values.txt diff --git a/test_environment/README.md b/test_environment/README.md index f01c396..5a1a6ef 100644 --- a/test_environment/README.md +++ b/test_environment/README.md @@ -28,4 +28,66 @@ Tags have the following meaning: - `stop`: stop DFaaS nodes running containers - `leave-swarm`: each VM leaves the Docker Swarm cluster - `remove`: delete from VMs DFaaS directory and Docker images -- `remove-operator`: delete from Operator node VM the operator directory and Docker image \ No newline at end of file +- `remove-operator`: delete from Operator node VM the operator directory and Docker image + +# Executed tests +The results contained in [tests_results](tests_results) directory are referred to the executed experiments described below. + +#### Node Margin Strategy thresholds +Node Light: +- CPU: 104% +- RAM: 4.1 GB +- Power: 0.7 W + +Node Mid: +- CPU: 190% +- RAM: 5.5 GB +- Power: 2.1 W + +Node Heavy: +- CPU: 235% +- RAM: 6.0 GB +- Power: 3.5 W + +## First test +- `Duration`: 5 minutes +- `Load`: 250 req/s to _figlet_ function on Node Light + +#### Static Strategy maxrates +_figlet_: +- Node Light: 200 req/s +- Node Mid: 450 req/s +- Node Heavy: 700 req/s + +## Second test +- `Duration`: 10 minutes +### Phase 1 (minutes 0-5) +- `Load`: 100 req/s to _figlet_ function on Node Mid; 50 req/s to _shasum_ function on Node Mid +### Phase 2 (minutes 5-10) +- `Load`: 300 req/s to _figlet_ function on Node Mid; 50 req/s to _shasum_ function on Node Mid + +#### Static Strategy maxrates +_figlet_: +- Node Light: 100 req/s +- Node Mid: 225 req/s +- Node Heavy: 350 req/s + +_shasum_: +- Node Light: 100 req/s +- Node Mid: 225 req/s +- Node Heavy: 350 req/s + +## Third test +- `Duration`: 15 minutes +### Phase 1 (minutes 0-5) +- `Load`: 350 req/s to _figlet_ function on Node Light +### Phase 2 (minutes 5-10) +- `Load`: 350 req/s to _figlet_ function on Node Light; 100 req/s to _figlet_ function on Node Mid; 100 req/s to _figlet_ function on Node Heavy +### Phase 3 (minutes 10-15) +- `Load`: 350 req/s to _figlet_ function on Node Light; 600 req/s to _figlet_ function on Node Mid; 100 req/s to _figlet_ function on Node Heavy + +#### Static Strategy maxrates +_figlet_: +- Node Light: 200 req/s +- Node Mid: 450 req/s +- Node Heavy: 700 req/s diff --git a/test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/plot-cumulatives-log.png b/test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/plot-cumulatives-log.png new file mode 100644 index 0000000000000000000000000000000000000000..b2ed01f914285dd4ee9acbb9bc06589a26956ccb GIT binary patch literal 24274 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 H+YkL0a)X!P literal 0 HcmV?d00001 diff --git a/test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/plot-nodes-responses.png b/test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/plot-nodes-responses.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d3efc05bc927d1fff0ebe14ba7b219e09319cb GIT binary patch literal 60436 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 MsdzH!_?hef1)#QrtpET3 literal 0 HcmV?d00001 diff --git a/test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/plot.html b/test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/plot.html new file mode 100644 index 0000000..d1a4ad3 --- /dev/null +++ b/test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/plot.html @@ -0,0 +1,5953 @@ + + + + Vegeta Plot + + + + +
+ + + + + + diff --git a/test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/report.txt b/test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/report.txt new file mode 100644 index 0000000..e5fd538 --- /dev/null +++ b/test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/report.txt @@ -0,0 +1,998 @@ +Requests [total, rate, throughput] 75000, 250.00, 243.96 +Duration [total, attack, wait] 5m0s, 5m0s, 144.311ms +Latencies [min, mean, 50, 90, 95, 99, max] 332.13µs, 255.102ms, 110.688ms, 719.38ms, 906.119ms, 1.541s, 2.695s +Bytes In [total, mean] 37342710, 497.90 +Bytes Out [total, mean] 1318482, 17.58 +Success [ratio] 97.63% +Status Codes [code:count] 0:1751 200:73221 502:28 +Error Set: +502 Bad Gateway +Get "http://172.16.238.10/function/figlet": EOF +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42659->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42061->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38379->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52799->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": dial tcp 0.0.0.0:0->172.16.238.10:80: connect: connection refused +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49809->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40017->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41611->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35263->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60687->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34169->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56321->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35779->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47123->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55357->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38851->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59325->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50863->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44337->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38975->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51487->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39217->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35851->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49341->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36099->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59543->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33345->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60381->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33571->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41097->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39953->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50491->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44409->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49161->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59235->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41651->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43329->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44019->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34951->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39965->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59023->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41259->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40111->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44273->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55041->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42765->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51889->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49357->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60201->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34799->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52043->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42413->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35941->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52579->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41833->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60721->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46717->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60213->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54481->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37023->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40025->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48977->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44871->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37239->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52443->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36737->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49495->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43183->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41645->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33175->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52833->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34937->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50981->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54641->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44227->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46781->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56733->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56965->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33483->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58175->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50523->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37807->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51951->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42735->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41627->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40861->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44275->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36403->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50829->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34377->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49637->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36265->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38909->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37999->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55839->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47035->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59653->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45617->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59725->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58993->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47797->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39037->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43331->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42911->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33391->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58677->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52513->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54405->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49571->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37797->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59919->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54607->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48715->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49911->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43651->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58569->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39051->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34249->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44963->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47485->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39643->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53879->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43919->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57567->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50011->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60489->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57119->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53213->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45871->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42131->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36837->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53459->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60921->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33757->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52051->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55873->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40883->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52969->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39273->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47935->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41817->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36781->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56765->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52945->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35723->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43501->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45125->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50355->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53281->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34083->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34869->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56121->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49867->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49527->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48725->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56553->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47241->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40649->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48313->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59343->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51481->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39927->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35593->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48945->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55075->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42231->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:32959->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56969->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60653->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50441->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38095->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35931->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52583->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57659->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42301->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56931->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39343->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59751->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33183->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45441->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53321->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34153->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37487->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48097->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45971->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58495->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59393->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44425->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46761->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35811->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41111->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43373->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38123->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52937->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55697->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39719->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53669->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51515->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41621->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46523->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34457->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37197->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37855->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48695->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47323->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54479->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49109->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55317->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45261->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48741->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37749->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51343->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36905->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48947->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56207->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51183->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56003->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59099->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45403->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38565->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56475->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43943->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59225->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41559->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50595->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47691->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55647->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43101->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51845->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42257->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38465->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59855->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58353->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36961->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:32933->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60243->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35089->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52413->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34353->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35663->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60605->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47189->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45017->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39197->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47027->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33129->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44937->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60853->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49249->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40179->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35239->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44713->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38307->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34117->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37145->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52567->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49869->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51313->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41109->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34421->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48717->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55795->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39741->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54833->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58387->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41797->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37415->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56089->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40309->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37939->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50945->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41761->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55513->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49267->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41303->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50443->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46209->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36103->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46021->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34137->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40503->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55355->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41537->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43795->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42451->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47679->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51541->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50269->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44979->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60933->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47491->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41837->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58739->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38197->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47053->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54047->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42049->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38323->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47093->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51225->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57871->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38579->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41141->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35485->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36003->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37901->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34031->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56135->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38595->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44865->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52523->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41227->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52487->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55417->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34309->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45429->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58417->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33933->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56837->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41595->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59081->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34295->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50477->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45761->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59135->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59961->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47459->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41437->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55749->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57265->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54001->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58981->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49069->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50425->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34407->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54141->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48247->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46143->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60875->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53265->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42959->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44735->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41789->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58667->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54291->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45251->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40197->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54437->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39099->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54295->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56715->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52341->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50521->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46513->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45651->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54755->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53733->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42807->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44867->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40485->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36471->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45383->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44681->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46303->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57951->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60475->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53601->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45947->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55739->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59787->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60261->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39181->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39595->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43491->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36313->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51619->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51253->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46073->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38959->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37501->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33131->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38485->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56545->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44061->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53279->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58369->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44493->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54721->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60865->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55345->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52801->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35581->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36971->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52411->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35329->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50947->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:32943->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47645->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43133->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39171->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59197->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49839->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40571->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51753->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60689->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58407->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59257->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53881->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42221->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36705->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60481->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41213->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60401->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34183->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42437->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41513->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33749->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54219->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48931->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50643->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52963->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39447->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58201->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49073->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34033->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51427->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54387->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36657->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38365->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54309->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42853->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44855->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36109->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35307->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46955->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35387->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53033->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57579->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53929->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51093->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46219->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43323->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46625->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35909->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53947->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51509->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40505->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59895->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55365->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58479->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35633->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59583->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57085->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58767->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59263->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48221->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56217->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36483->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40609->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49643->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52809->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45887->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49387->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38969->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45581->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45703->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41989->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49103->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36603->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33179->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54135->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37345->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42573->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38385->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54155->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48679->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42475->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35861->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40457->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37821->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47275->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43263->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51467->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56625->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37669->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53863->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43173->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40259->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35055->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56627->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53597->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46763->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59371->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60637->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43719->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50197->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50045->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59459->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39737->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38775->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45085->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33255->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44295->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47917->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40445->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50623->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38665->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44443->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47727->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36593->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52135->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49287->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42263->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42887->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38415->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40753->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50941->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43957->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50583->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33507->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47589->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54523->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33927->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54679->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34281->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55443->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53331->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50181->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53123->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60223->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39461->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38453->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43799->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35073->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36255->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49645->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54147->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42613->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57521->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53283->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51049->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40251->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47525->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58587->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37321->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52959->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54237->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38155->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42197->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42379->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49493->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52875->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39693->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54283->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42935->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59079->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48647->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38681->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36897->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34437->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49233->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52773->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35305->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33453->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58483->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36711->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33191->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57685->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33429->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54681->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52099->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36129->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38821->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52783->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49143->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59987->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59091->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34527->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42277->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35777->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60123->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58573->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41601->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37201->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42687->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53715->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54103->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37671->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53423->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51211->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50773->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46119->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56487->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45553->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49799->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51393->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56657->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47783->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54285->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52803->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40955->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38117->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40123->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58889->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44169->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33361->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54157->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39993->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58823->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33121->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": dial tcp 0.0.0.0:0->172.16.238.10:80: connect: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48729->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42053->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44129->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45955->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60779->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53887->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45071->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46853->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42275->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40185->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51463->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44833->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60179->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58473->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46565->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45949->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58941->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36619->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51155->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51267->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36195->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41823->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38235->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36847->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48853->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35625->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40641->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59227->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52207->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60619->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56785->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37445->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55521->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56665->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48429->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57519->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54645->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48605->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60075->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": write tcp 172.16.238.13:56387->172.16.238.10:80: write: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33813->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50813->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56359->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39769->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58457->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57867->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43687->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44793->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51505->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54703->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34963->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55105->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56345->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38559->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34941->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35647->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48987->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53751->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45431->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41063->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45003->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41393->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57901->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38035->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36791->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60917->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46233->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34315->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37183->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54415->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50567->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53829->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56721->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40295->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55965->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45965->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55081->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41807->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44737->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33161->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38825->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49283->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57687->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60623->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53533->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48711->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38507->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51087->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58513->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53537->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48315->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47927->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51759->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37161->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49331->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45313->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50297->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36163->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56107->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40207->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57289->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39631->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36969->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46473->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60503->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47201->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45095->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33105->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36049->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50215->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39131->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48743->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47967->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45487->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50343->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50831->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33477->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40669->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34349->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45985->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56393->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47853->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34995->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47049->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46647->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53941->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52077->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41967->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38539->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45561->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46491->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56845->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47749->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35469->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49651->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58159->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33433->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43725->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44613->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39935->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47875->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57881->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37055->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56309->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48479->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45187->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43961->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42921->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37423->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51005->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51647->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34341->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44845->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41897->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52627->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:32803->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53149->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51535->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60087->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58279->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54139->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52865->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60743->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48201->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45517->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34639->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58121->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37937->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52559->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59045->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58845->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48775->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49093->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60955->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57447->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36957->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38693->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52069->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55239->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57203->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48701->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:32837->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49187->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33303->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35371->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50993->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44457->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49777->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38629->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55781->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50937->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56631->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41613->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57475->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50167->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45569->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60491->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58579->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58925->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50043->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58047->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48629->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39055->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55121->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33349->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48421->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58431->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43577->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56561->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59819->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33171->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52931->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38361->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44629->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34599->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38031->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40097->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55857->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39615->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53313->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37949->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41219->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44581->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57115->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36659->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53919->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53991->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57083->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44285->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34505->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60315->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42493->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46597->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33775->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52569->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49759->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48569->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38837->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47673->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37249->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34663->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36043->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43627->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48001->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45421->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42025->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40313->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41159->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58251->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59591->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50397->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35703->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52687->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55741->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51585->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57111->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36245->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57013->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38159->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51789->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44407->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47907->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33213->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52629->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50073->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54963->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43205->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60953->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34821->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37745->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60099->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55049->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50591->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34081->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57101->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:32885->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60895->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49909->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40959->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38929->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35705->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55815->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54343->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44051->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35017->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39635->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36731->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55087->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54961->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49955->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50543->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42189->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59993->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60259->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49553->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44389->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39853->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42937->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55427->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50409->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50607->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48397->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54855->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33951->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42557->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55743->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51699->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43653->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45283->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43533->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51337->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47671->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54129->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45853->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34525->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34607->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46323->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47819->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43509->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59157->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50645->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45531->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54073->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56629->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41813->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55661->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33523->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37105->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36623->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50821->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37491->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54051->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40929->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42695->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44141->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:32919->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52749->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48439->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50085->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52565->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40489->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40625->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37447->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35667->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42191->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37909->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43295->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41351->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52607->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41233->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43381->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51775->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40965->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48295->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42147->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41597->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33351->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35063->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33291->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35341->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58053->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49845->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37133->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53841->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48623->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47915->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38789->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52489->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43775->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55433->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:33195->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46363->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45575->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39213->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46843->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37933->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41717->172.16.238.10:80: read: connection reset by peer diff --git a/test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/report_values.txt b/test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/report_values.txt new file mode 100644 index 0000000..9d14356 --- /dev/null +++ b/test_environment/tests_results/first_test/node_margin_strategy/figlet-light-250/report_values.txt @@ -0,0 +1 @@ +Success rate: 97.63% diff --git a/test_environment/tests_results/first_test/static_strategy/figlet-light-250/plot-cumulatives-log.png b/test_environment/tests_results/first_test/static_strategy/figlet-light-250/plot-cumulatives-log.png new file mode 100644 index 0000000000000000000000000000000000000000..f09a551aa1e03571d2da63a370184bf1f204c0c8 GIT binary patch literal 26539 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 literal 0 HcmV?d00001 diff --git a/test_environment/tests_results/first_test/static_strategy/figlet-light-250/plot-nodes-responses-and-cumulatives.png b/test_environment/tests_results/first_test/static_strategy/figlet-light-250/plot-nodes-responses-and-cumulatives.png new file mode 100644 index 0000000000000000000000000000000000000000..4418192111c455f8a1091f17dbdead774b083c08 GIT binary patch literal 81037 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 z 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≥SnZQ)Q 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%0AgmNPl8@)~1vbxpBi%gdscQV#pOUmVjO57<=O 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 literal 0 HcmV?d00001 diff --git a/test_environment/tests_results/first_test/static_strategy/figlet-light-250/plot.html b/test_environment/tests_results/first_test/static_strategy/figlet-light-250/plot.html new file mode 100644 index 0000000..30bc37f --- /dev/null +++ b/test_environment/tests_results/first_test/static_strategy/figlet-light-250/plot.html @@ -0,0 +1,7487 @@ + + + + Vegeta Plot + + + + +
+ + + + + + diff --git a/test_environment/tests_results/first_test/static_strategy/figlet-light-250/report.txt b/test_environment/tests_results/first_test/static_strategy/figlet-light-250/report.txt new file mode 100644 index 0000000..554a051 --- /dev/null +++ b/test_environment/tests_results/first_test/static_strategy/figlet-light-250/report.txt @@ -0,0 +1,111 @@ +Requests [total, rate, throughput] 75000, 250.00, 238.92 +Duration [total, attack, wait] 5m0s, 5m0s, 53.834ms +Latencies [min, mean, 50, 90, 95, 99, max] 313.729µs, 128.921ms, 96.539ms, 265.827ms, 350.222ms, 679.422ms, 1.383s +Bytes In [total, mean] 36869493, 491.59 +Bytes Out [total, mean] 1342368, 17.90 +Success [ratio] 95.58% +Status Codes [code:count] 0:424 200:71687 503:2889 +Error Set: +503 Service Unavailable +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52557->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52991->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51949->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49179->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57647->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49087->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47473->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55597->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58065->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36643->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46421->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50377->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45433->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": dial tcp 0.0.0.0:0->172.16.238.10:80: connect: connection refused +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56437->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36517->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45595->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50619->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37849->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50369->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40987->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59447->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58753->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54067->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37251->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43115->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:32911->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56231->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41911->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:40441->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38029->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46697->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53053->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45105->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41983->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:59319->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43835->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58477->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35761->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42523->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41805->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57137->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39109->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:48555->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60299->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46845->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44715->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:58597->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:34861->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37897->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37409->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53723->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50779->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:41095->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55247->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:53253->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39701->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43675->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44113->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51701->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45977->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51389->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47787->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36797->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45535->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43599->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:49765->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38443->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38217->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35911->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:43039->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37129->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42943->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44687->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:47131->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38223->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42139->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35573->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:39191->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38245->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55895->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:36275->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:45679->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:51023->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:56073->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:50497->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:60579->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:52061->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55391->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:35665->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54661->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:55455->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:38525->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:37419->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:57483->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:46119->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:44059->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:54815->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": dial tcp 0.0.0.0:0->172.16.238.10:80: connect: connection reset by peer +Get "http://172.16.238.10/function/figlet": write tcp 172.16.238.13:45393->172.16.238.10:80: write: connection reset by peer +Get "http://172.16.238.10/function/figlet": read tcp 172.16.238.13:42757->172.16.238.10:80: read: connection reset by peer +Get "http://172.16.238.10/function/figlet": write tcp 172.16.238.13:49989->172.16.238.10:80: write: connection reset by peer diff --git a/test_environment/tests_results/first_test/static_strategy/figlet-light-250/report_values.txt b/test_environment/tests_results/first_test/static_strategy/figlet-light-250/report_values.txt new file mode 100644 index 0000000..801af6f --- /dev/null +++ b/test_environment/tests_results/first_test/static_strategy/figlet-light-250/report_values.txt @@ -0,0 +1 @@ +Success rate: 95.58% diff --git a/test_environment/tests_results/second_test/node_margin_strategy/figlet-mid-100/plot-cumulatives-log.png b/test_environment/tests_results/second_test/node_margin_strategy/figlet-mid-100/plot-cumulatives-log.png new file mode 100644 index 0000000000000000000000000000000000000000..e2f1bfc625e3ec7aeacf36473e096730b7b1649c GIT binary patch literal 19969 zcmeFZbyQVd+djHU=>`!A38l-ROV~;&B_e_}A|M^or63y-5D-xjDR}@X=}t)z0qJh( z?mqYO{l0g+zi*s##yGz-&VT0_IN;f9?X~8b^PYEH*LAND4K+nlA_gK93Pq}{gw{f# zu(pwZ1o-etTi^IA_$BUgOV{O|y@iXLiPK}$T@x1v8+#WUE7MEQ9y>W(+1p(c5Er=0 zcgfPl#lcxZP|)_@CkWU(JrQJ8!x@B&5IQJ5bVi}bO^|9T27DAZj$W%NyL_fIRM z9`4$+qcZDWyBr+R6#3Dl9DF9q6xdVGmkC}qW|wMH@)k2#^3Uf^)K3i)*^cw{s!e9o zb@dTt6YJpxzPxWvsOnGgOrAiMN?z&8kxj>11S`84w#C)958}>#IlTQGbDzYwe69$& zeRlr5#TY~(?~lP?us>=oV#Dti9}*WfHnt1KiPV&ottgy$3`Pl`ejbfRU#*qnWMhlM z!k3_=j3g2248dT`{R7m{XbznJ|11A{Gp3DXakj7Y$KH8!Hi_4HdIwXwdzx^xe5P$uA~ZCnjy|nAQoI5>tCiI--%aVXDnx7amC5W>5D)Rn2Oo+ zRYp%cI{_zWXOrs;lou{=yNaVZs72yPuS6>^UNshpOVY{g>gmDF?B#J4H|+gfY<-;} zU7LsH!IiK?VlXrHYai}#2?)Gww}>vMAz*#;=8gaF-&zkzw#y@Ti*NAo5D^j*=KIMa z=4VGCKQYx9s*$0sq^un2?L-yV{<6GWA}}~u)iAW=L_3y z%B*qS`;+IxIgH`lTa+9judSncOCN zGVX=%w8aW4j#v96buYYm{~mMUnuXZP+Co~wZ5tatIQ4cILlDk6GO<1uF$WZKCo~!t zKDJ}NPB6Ya5c2Uh^)8c4_y+abO;1k=xNc{Oy;0V~f~L&14>iQ)%wQP)b;fT_-eS-k zq^!6M?Z3UN1FeVr!d%_m#p=I*&-2`|9&u{p?_6*Zs2MxhniKZkcX&-NjD1nmF3>Qy zd3R;lBu^KGQjHa8gv)+&-!Q%NUI^>PjT>sgTP&XQtbs3Inyw5LfuZUaFP{l{Zd=Zr zr(u)2N_3Cem&WIiytby#?&V!Bhne-8kFstk_?2OGoH^5;fTgR;N743T&ABlJT`Y+?`t1q~X zd2llO?wgR%3ndyH3DJ{aUcYYm5yQ*0$G$dLkY;vb@4I#J=V$4QHOI4pSSXP=xwGXs z6PxR1OU1SWMNdUHBWM(o`fAPdCR-ooPED)Je)nR@X?PJK9pXHvvJw5nBJt_rU6lV@ zyU`>a?xg$Njtf&BBR*^9B=h6v^Wt~ryHbLA?PK`x48R>nj^dC@`B$t}UmPyB{r)Rn zGVj@n-tp;PO*4EJO38lvcw&o~hzMD8vHC{@SOxcM&5I_FgRVX*b-+4tvisipO5#1A zh;Gh@rPJY2FHIw(-~j1+@wbGw=r3H@ zo%no`Ik&M~&|x~VlEXA!v zxVF<>f6o{0lm3>-^1jNz&$}3PrP{ftB62A@a+%ul**fwW8kfK^2zQz6k2lsdUQ@r@ z_`t{~sOV|`l%JtKCWiOHRQ1v7_ilCBuspNosc3bXI@m#oMICQM_%;0eaBb9+9OuHh zMoLPLH}Xkx?{)ZFV>vC*OWkSYi%UzC|E!UqxFjAvFNnS9ke^JKxwSl3({W!kdBzDx z%WJzX+`c5`YcWkJuaY>c|tg zd>Kz&dWS~lV1^p8tF_9l@ZlA5^S^F|J+QWMQ?=B&L5c5V*sEo@`r`Pq zwV32c)R(O15qfXH;ke@|ao%!=U;WXV!1uB!Q${Hb|B`Xvizp$BpY$XbMM$DK)te4? zmK^{5yx@JbQsRCv8=Lo}gZa9Mh-uU73j>uN*HlzgzWE$Io0*$SQBROT`OhWzF&p`v z+(16JAD6KiDs0UY(A{_=Nf~+P1E0=yeH+W-f#u)^{pymT&JlBk2;V{XBXz%excmEd zIt~uk#*+xCfQ4%oH#4=S$n8(?1W&B-nX9}wJk7Tol5d3yFRT(OMJxm|J5I_y5)-i> z!kjnqrlf8Pd#REt|LmEFUCqfeR4uqah(Up(G3EB6Eo;tiMo!z>X+OHutSOOfGDOKg>;r}pkL2Ir}spY8p4 z+W9r6Gb5(+>q<&<(Sw=?JT&w1V)WC`)?7Tt_V&b$Yf;`OJ3ERyXUk7yzjyfV7KrrU zLZc_LOUCN;?W=nK97f0-&X*tgz~q}03>sf&Na|mD?3X#POHeL1=Q@w3v9u96YT0;K zdz#a48`Su$s*_HGi>A|n)JoCP=)^EZ3%}i<<@qfLX1NNSY<}i7Gi`rdFqMO*3I&5i z(Y?>U&sl5lzUj-j-}#mH+jUV^iK~oyMX!>W(9Z=R+52K%K-fIFab@d9)#_7$1M5(g zB!9JTs-b@TQYxO*sgEba#)Tqz=a>VLXl-a*6rz(fYMxhbUgm4BpY+WrCHo$4?#n&5 zq--4?`c4-G#BqqyU%U$z;E+0o+r`moUL3(EIzAy(rjp^WmM!1X%j|}EIakz*B&5mD zEU!OwOire2{*mJwGt6@1n{i!>7?*WiqK0H}sa`4?qemEj8!!H_Vr_8vianCC7<@M^ zn*2HI$;g}eJ@0A?d#UPIhR#0j)f~!Q|J5(|*!i^Q=3SS1RMPKPzJ28#48i-RGC=_G zjk{uoI-x0#i^L4={G{${x{YeicEuOY)3O8@5>n2`Qv`e_q*Mz1ojB#q9VHpe%E8gl zoPFt#3>M!!x7FsBGShml^qfOwGP9yU-;~k^%A&jPL`ulJzrLYl2^ibh?Oa7Ju|bIm zv-Ig$|L318_Oa?c0`Q1Y5IBE?wTn4*VUj~{GnO6RfAo+%P6H?S)u-YIytMPo!-Q2- z+b|B_9bxR&c!ebGA4iOP;NL>_#{Ft~H#er6%|^>zskG6nL|_kh9MPM`c|#86`OLw; zdc}hFV(^{ghTXJ?%~PMDji2i`mWd^PjlGxz=^FL_VdbD@-0R(0tCVOWN9{u)kU&)1R%y z(<%K=G<)F@$L&k(A|wa;TMm1pFZ6@7gt`}8l$4Y#o#W+`YK=}e&u1A_(0O=xxNkI` z$3kU3$OZp#ZGCwBlfVG+P%;$65Rm9k!6D($>&Np;(c#%{DwV3fm4{PuqcH zki~l)%hb#a3w2S%rZ!0-SmV*7*Kgm_plZ*tc>7oT9I?sDvWSa|+sgcF6f&%VwIA9@ z#oTik@KSrlH1xv0pC4NFPz+4(5^QB2IVr!L?ANdK4k$Xww2&(ckNBh$n7c7n7 zVy~@8c16>L->GVC$tfvJ6sV$_2myvyo9TK1hceV zX|;6Q(2?GZ0hqXxe)Qn0@8_+*mCO+BzI#*`@SEZ71%0E0?EAc3g31wCt(q-rA@%+< zN?+VIzJLF-+8H?L^+T&_mvnXD52?@L_Dv{!R8&=&s)JFN&;5-QTN ztonf&f;FEfxrytQdA-ZlDtMjOWUz6f*dt@8g0g0~wpB3xw^zH9cxe1}>c`TF1I9*1 zUgzguO?zxz#2_pzyfW7OUf8U&#?Mb`cfd?H-<%MZ{yv7+*^%}eeitdlt%M$aJF~g*jP`*^#|Ivow>l|xGg6e% zT3FjEon{((H2A5mO^H30U(msum2Rkqd8T+eS-Os+JIP_6PoLuvgD-rp({}IPy^Vvp z1S2=2elKPZI-Gc}mK%Eh?ahKF9fJ(Z0y*_b&Nsdde3JdiF5g4{e(1srElIfc6Z2Fw z8(ScCA;keTzJ%tRjIW|5ZjQ9i&Ob1jTTo#vOMl)nzE*fw%beilv$f}+wk=82)?PE` zO>Q!j-sVt1JVIOi^Scl4Qa?+`s9&9G8*nWr;^bMZE(yY3FsK(Q)IU$MKo`b3njA^B zGK6~>%~1t~->+FUC%4qGK&CXo>A2{a0pEP8%dz?$dVRby*b3#h%rvYyUZ?F&Mz)qX zhdU>u&O>FzA$r$>ce6uV9Q$}3FQq$171kH_xcEXB{g5;R{KBl7*L24W+BALC3L)ZT zi!e>3#-q=?JJET-U?cl5#9mF?bZw9~`;W{TcyfI&m%0^cQ=u>V*Ux=Bkke18Zwnnb^0|+Q=9N@HY!gT0YF~KEzPmu&Zhv!>P$u zBq?unnYuASrJ31FKur8SRW&xT%Q8`0MUwh+yTyxEbNPGsqGyWShslfX69l|`iLb4# z4LPsMZi(&VMCyYO;@&W1bRsO7wIyi+DLDrfhNbdY=9d*s(7C!JgV*SAqEZs49-I5# zOwxc_n6k04k&BxFu#0NP+PT2A{tm^}7` z_0MkM{gkej>L+8*1Jq^|NUsnV$EP>=h5pFfu*4JS_dAbL!Fv-=6+~GzC6xSt@9^?1 zr>n83WNjWwDz=jWyciX{(8lL)-cSsl^Asv7l7?9{)X^LctYoL%x7QS}7JnG>=jrV) zOA0;ogOX$^p3NrixA`Or&a0uB8ss=Pg;;Ubw0lexG{r?|Vp0+dhpc>@<}_Znziu9o z*=Sjy<3Ae?p^8)o&`L^<;HYTQh^ZXo8uU2Z;z^rIc*DR?_t&kj6?69q2FZ2U*v8Eg zsa-pZSgZeZ-g>L!;}+qNtrs$ExAZwF~sO$+7u zvEAN&b&Hef%!@K|ZJjzeok`8;>-WXy#QVt;QokNKi%Dyz)ThfhmL6GSf~^jWUSYn} zsk0<6rDr{D8u~uB?osE#DE44l*Vh&ku}mARVe9Z{S_OR?7NF)5R&GJu$6V=OL(9F9 z8Lw|#;i-NuMk_$_s;Q881#go@)0Tq-rk22yZ)wALA&6<&c%O$1wT5O_ZPL4OwT`M*k~Pd-rpN@R*U_R>PD!r z)~WZ?*Fo$mRq_|!H<%VY_(oY-Sxb9+P?sgz-26+=?3;)i`dKZKS^@VDQU{(*MNPl) zI+dUCSjT;{cH=%RJK}?Vi}h_>{rK1Cy#3bB>#yf&iEqrQbFzIfNsQ(rU`1k% zj<*;75>cCRnWs~w^Lu>RU&?i63cueBUA{BL1JDoTfLPgsrj4=Z1WX%Co;b`OyG7TG zd}0V{4o)?ZuR#Y|ifs^6wzA;FV{6^ArIs1-pkrB;2>nrRf!e*8JQ6!f8$qtBP?J;n zJOJ~Y7|#0f;fLq(c;CH!^EHq6St6+2n|A6Xs?F>QT9l*8ypBO=^l#(DdvaplN%*Rw z3H2Wp&NKCglivxeFB~q18{%4uwS-}wGvdS_53Nq|96#Ptwvl<(nrCC4t1Bg%f6nQ5 z%H^!rn3fu$&ek<}!jqZDdTbz)DvddMtvsG}JKcoKQ#c;Eu);82Kdmjr^)T<|o zBZ2Ndn1)_T$^%(^3FXDkGKS-|L$d*=5#R7fDOwYgpR}b!H?MHqeyQ?^iBfaII5C<- zC6i&jW+`HF>p3wBRiqUVjL*sLW=_uG_UE-78l7XB7_HuW{r$$=UC#B>lFI-9XmI(r z4jOD^3QLRM;H8YbNIySA4R!WubqcP%y%b)*oZFLGa0zC>qjQH{vapG3 z#9m*Ey@*0pO|c8Pnc5>RkSIugY7v8(2?$U#bl!EsF+9pAIFr^QLt(-?CmS8B)@u{Z z)8CRf0R{;pX}<9>OSgQM=AErLUUVZqj5f_~?d69Q&r57*c2^HHIv<=&#E^R-V{VSj z>#g1})bd>G`LW^i(o<|4Ij=EFV=!3C7}s{){RFn-IscQZgDB;H0)%JiK8cs1N~kAK;9b7P*i@N^cP8$DrGmHqbA5GxZCO${$&c;(CrpbX zc6snAk` zUzDRYbalC0#cwuRQ}5Sgr>*OZ5nlgb3)ScT>^zCowMxk~RW&pRrLv4qiQVWc<>)J{ z+}wmjLD-Oq+ZBZY$O|AJg5tQ$Yb=jd4O^WM3s(By3Z*+pH??+LRbl_ z>E;MU1f`wW>X20g2&AjviMr7{rk+5GmYOfM9N)>nexEzUGx)hXpmb!MiS1sI#+FO5 zB`0#WvhER5Uoox^BvUc{CGWjvVwcz-c7_nY^D6V&GCB;8gKjBaDi z@9d(htE*64I{=68MeRT5ex%U0W@vX`=vLTY{6gf9_u{vNS?gPyFKFjgS2i}kNw>Mq zyH}`pS4TquW0iQv9isx33BKgBWfY1}udv0j)CcfEEl?{r$eHO_Z7enX|o#}8)ATN2Jcl^cCqn2D*e{GxwF*I&iAwG^PiWb7e_p+ zWvQ?SG?QvM8&z}zu?<|X)y;Jy$GowZYGhblJ!Dv$$Cq|+RrOz_#-oOZ3<3IP&O+xmUvtOp6iRMxZhBEW#%)iZV8dY>5wq_vN$Dk@@m*&)xMMYB zoNs)3Uh&)E_AONH{8-+8`xnE3lXi>2q9T5$ld9s&xEWZM1S3qVsmqou?>h4_$_2JAVkO;U1P7V zGo|=)1+Ei3Kme$>Czr49+}%$rVHhry(r<;_%*^kt(VR@O=g*%{NlZj_b#(z4kD$v! zu8Z0v%u@6UFG=d6E~{!78LiRptdhN`L%~mG@8WLt%nXa9>bHr|@81S+^Y10E_cxzo zg`CgzAsXGI7KMBGS=vj;X-28JgMY3#O)dTvEw7I8kGI^VE(=tD+T((usxW`@1S!U| z@qf6Y|AQcDx#+vqOPRI5OM)_XdPYSDo0yd$rZ5OdHB}D6ZGds*2pqrLTKs$; z04V)_dh$e%Wxi>X>>le{x=;OQWWt=;-7$bQQ5=jWifxAR?p!(EKJi|b)F%ZvQdas? zSjFLG6$3g-N>>UTX@dA%y9R2%;h=l5i){Xx|)-X0D#w0dETPd zaeVYq%wc=~%qB*M*MR>PCn~?`2#L&x47n?jUjG6QYW1>dB(=}fw){QwgLcY_3V~rsHv4!8DIGw zyKp5-I$j67azwcEaRa#1Mnya>DSLFRn%?nrnnEN+tK>hFlz2G!<*zHN{}7ydeF4af z%FoAC=(m}KvH=wYOadH(E2q^3xPC|f(4*FygY$*BvI`n$VYvn2niIqKVszIVO;EMO z)1IbUI#GX*37#0opQlFD2xX%9rM`4WN32?8|+Z<;bCI zEbu2<+OVcZmWC*(=P_Iv7ZAJI8BrtVn>Vd)Y_nSP9kpHp5JW2$cpWN}#B=F4f(545 zBvnx;KTr2dS`~rHkAUb?4hdlP7tj_p{l$3>3)K-;O33cj{I4Tn0nEl(A^{K2c>MEP zpJ&Y|9b4O|XQ+Y=$=1q|3;B(DGDxaFV7-%B9~FE~K4mKR4F*F$k2Nc2b>p=3lpbYV z_oaHi>B9sDGyfHqL9U9dDrfNd2bPuK#w(CIV?$cU=cFmR)yZ!XOa#P5 zJ9^!I-E$cxg2goPsLXGfudXX!&xNdeVz%N)$$$)2g&V(|rQ%WlYf%x#bErzOYSCm# ztIIjSe;?E0j7FS5asyVF2*vz8CtzKJ;d6SNQFU6tdVU;hp=#^Bj^tBk(!p-ZW$?=r z4oAyVD6mUKc?n;1r==jugqMviS*}iQkKIF&*CDHtZc^fgucx9LLLn!k>gD#R7l3H@#bP_HSOqj1>m__n61P&d73{3#zWND+dDJAghZ8jS6v-*m zV~Fms{BoXy6_9{g+dm>Zs`|ybtB!VhV(135pJSG&npIvG*o!xZg@XJxx|D&9jYyls zCFJC(I`>C@5g_Z+9Zl|Ll>BouX@aR2gGo1obw647!>1qq zAhGZ(Wn>b=NL=szMJEhE>d2gQw?EV|s2V>|co9YU^}g~WQkchlWF8&MaxQo%@_>wj zR4wxFon7G0-i{O4d?Eo@t&#IF6#tsR3Ho`e1NSv?RPBowQI~T9Avvr~l`|@_W2!#* zbFsMtT*%lmEIy*e@ z$`UtUiyw!)cv2#E%oprt$tffFbWZl{0-#?ke#gS^1Por~7_1b;Wdk(pHtHJtfaq;p zZVvw8=!r)uXh5WzQw2<|t$C`CH`{dD#=W=hM$mFRNfYdy+)nkh)FyhpO3jHFDhIoO zQLyh~4|nC}4_^0~NJR}zlY|8u;BLjd_rEoVM#qIIuB`QU+8Iz#CjVWpDC$^jpSE}W z^W!zL&sK(l)MZa-AZbJS10QXCdVBzrswTozaPAOem`C+M9*uUI)=KPvEU)IE-Ts@& zcYMpDaRXUt>mIJxkR9Pxia!#>S-l z{NHA`TDwF!1?p^QmDZ?UuI5et-3V9V(vX}^g3uuQ-P(A~xbRf`P@mJOH-{Hu{&)g- zhu_I%UmKkr_H*&_zK~DyZ@2gkJAhF`?=o3hZHZ zLww_e)fkXVbUz~6?lqt)fD-xVVU%IQczzx=-J}kvF$;Dw{!?M^yCuty{NR zIy&|SpMI|Rje%-IgO|2Nd2P9%|1w+h#N=<+dA)2p;04JHeRl5C(9tF5N-Q zS+W=%#FVyNwUzajE6_?@k`W&Nv+BZTI}j_o!}f}>f?D_PRo#zXUY4>Y-!>VoP^KQHj877RY`aU0$CQa?HD zmi_N6r~b}!zdSOl{oRVcVx71Cn5fAu#1%Hz5rS!vgy)5%@aKDBoZ%At=8Su3>zxYZ zlR$MULV*F2gV}5b96i-FDZnR^^kN!%DJUZ!l}W{Vg~BjQeti`Na#&xf5eo6lBOw~DOC1kL4Cg~!Z+~SHzE7p^PP(y`Na%1iBT;o;cpQ) z5_JvC5-?nZqu7`R8XPd>Kd1edt4;yNBu{M~&QoVh^_F}|8DVZH!P8+8ETMq^AjNMa61)+tXY4Y>J7Th(xUAXoz;6KV=wn z2|~Wd?jYBZ?6WG;`;wM69dM3$T_qp@u+qt%R0)(^E-teZ2+Y==K1l2Uy#VUX=g;BX z_x`!W5m@kfv?W8;6|!+Q`5vWLGhRT8j?MjEUjmcz%p`kQw(H=fZ$<{uTdF-(u0$^z zp=395{Z5FVbbJnKHFwf8x_^JRYYMwJBvaJ96*G4LN#!PK?CmnaN2L_@l^gi~-1+eQ z<41;{A8!x?nLzSICWUw({Tsy@<>d@7&XL~+`WeXbV9<{=r{(&wrwI^~Y&`j! zbq}h9?X__h6a~;h@6G=J)liq2TfKO&Xm^Q?4O_p&?v}1DJtz{oa*bq1{LW71f2W43 zFYU|3-JSUP*elTuKuXHUh|(Sfbv3o7#!w*AL`Pky`*MxQQQ$m+)zY@ST}2bMGAQWi z@KKg_b}uQg&d0@?QckhzgRji13 zLsAlc(`)=MdHEL;@H^c~2zTE2yxyOp!dRW$5K*D;s9(7~w+%VuAp--$`g}@6@<0FJ zd-@ow_ny3v-hPU+bDM?;FH0x0Vh4rd;pH_c($i;>iHL|mq)}KXAYR@7e0ak6ViJf~ zk5Qp>{)oSXgd#j4>^3_{4~6VTO3BWs+AXe$*bMlCv_?Lq3(^y(Lw%Ghy`LA^%O^^H zYUB6*^ZEY;4ZQg4xc-DnJQ6W)p`f9mDfIG+SL^?y7HX!IU(u|9W`s) z*`3esHQ0E=JhFAa)%W50hhGc^T6)-W_&Ev$se0Z|~;{hjXs-uKdMf%z7Pe!_E32elYhlaIOQ5O~Cp!Rq1O6}prkUA;)LzUj6${mw z8cp|KaYs|gk-Jm&X!%-N0zBcX&`=OAI(FX`Eu)!-Ttv)c^UL(y)RZZV{*r_QLq?y~>m_Ci%lysMc7>ecAi0=$DZdF3M#V2?#T0u*XhMj`aD# ze%t|yaUA#AE8DL3+Fh;#x|K<`ghV$^!j%Vzy#R1}6Teec0kC5J@#Dvv`1ml_rM@zs zc#r=;5-u$CRadWh7fE-DD?pGx_^98XgyRoVy80kuVXNO9Qm6aVE52hGN_Jm|uYCxR zu*15$CfWa6;a|>AID+I=W=4kNNc!dX@lOy}f`+WKW~WbIO_rF|VPopn@yVKB&19B+ z-IV;@HgT7ZyV_7G^f1F?fG%!fyFe=g4cb9u4!}}83x(`A{v?(`7l04C3-E-9h;e5R8whyn}p5kn-oe{-*ma z;L_}^t?P&FYr^ivi6kW_C-)Y9JK9~@vUCiX(TYD&v+FX^vvg-c;-_#d_DP!T2{*XC z2%yL*0MiMOPg>V8z)GvPBzIx9gMh*fsf&^C!DTS!7sGZH?fN_J@g?|;248_pql|QU zBq1_V^z;EZc=t@Y1mHJrX=+k#Zf!}IkH1rZ#PDyNmWKO8_#LzRo-7%qeEHI#zk|#7 zH(GHc-fVrM&eGaies6V@l8&x#Q6~TX{rk-P0&m1T=aFwm`Ktz;wy;M`93O1CpX~I5 zkfGzIV}Ggk(*$jx9MNbk2)Q*UyZVSHeE9I;*jG+tM-5n2<hct%Gu~04x z0A2&D<-G9b2vi<;D2UjF-A=49=|K_~dYB z>}%KBg+Y)fv4xa@9X!?EAILL9HZowA%cB+jWJ;e<${(s`U0!2>3AYM^bsb zxm!)H^G%ukiCc(6h6k+Bec`GO=NYdcC z6zHJm+s0pFe6Tso%+L1*NnVt!|7F149V)3*d3kvRgoGQGngLCYWYXHae^a5XAy+aV zkXs{@KKCm=^4+^X`zp%HH=UiY9qz7#LhSIU(5ZPm^Y|%bta;Dy4gqi!@;P*w-#OG- zf)Kk=kZ?i*3CPRlP+}So*T9tZ<;cl8O!!YX@!4JwwR_ZQn2*0Mfmo4Y1$Gs9KZf?5 z?<(0k)8HYPd3oOG+Q_90;-fG#AOJ&iL_Wjw?9VaK)YWw#-8o0jj0Ocl^D80_(%tSk z;8zIZRn161w=eaNL4XXDo|T7-nP9orMLBtSlv{Hh&C+`#(;HLRH>Z0Sme^gaxjdG% z;m%4GR9^S>Tg(t7e{NE!<09&X( zCETXC@pp@Smvf6|@4Vs73-^||!zwCHR#x!uA=ZNoobmw6P-^80oP^wQlZ(~A;|c0K zd109zKW_QUF*4(1`=!l$FzNvtY#oyto4aWi@cb<)JP|l}XQivwcqoH@n}nF@HTrow zOFQu~GUPF(a{lQ#9S~yq6_)_N{Nl%-yRZ;Yn&mt0-!pDo`;t@tFgET>&ZSE* z%ZQ8UuBM8#p%)xtiN?p4Zc@=FM!CGg^BiY)rNs&eSbh2KrsF5=ml*Su$^4VNBPHXW zw%>j70wz>tNvXj(kKyTOk~bF1w!R7c?z<^qmROPWSc4H3j^iS~^!7JPtEEe^!XYD_ z5DOE<*rLMlcRO+JcV3SCcXz|cSnQxRxeICTO-{BlOTujpIN@$5>8myf4iJN1-)4uc zJ316Q$b%Z-e8<%OTjoWk8W`*)FfeL)jr5mkW#4(T29IuR0%Mm-+IV&1*uyKA@0EtbPsjUg zWh^L3;idd&7q5e1By*}wsBQLb=%c1l-`w#jEfM4iu~is^_f@34u!&n0`+ z{SBUssaM<9k0b<_=9n)je45KmR96qb5gwVwoh%Dm&F)S4tF=FB{xY_HL1pZ8>5`=qiQ-fK@+g6+1-p!hcW3)Id4&Zzaq`A zo+tJ1LOINM@ygTBb3o!N3KKK)eDnLR(1Uc8L7=*k9zqoYAmDI(kll?_#d%Oj#%2%B zsLoN=42@+dV_UBbz!4T)6k8l2uNsoogtxGBr+G*ra!;1kcR#CYorqg zpM>7u@9bz?CO1Iz39Hl1wiYLry84J#GCKM9N8pX zH%CtbJ&v^5&KGWXic^HO@M4Q}Qd3h$zJE`E0*$8JojW97zkc;*K%|~6c;RwS$m3fs za!Be_x-RM5`FNdBSy>s1e%&fh*GyXye4O9i-IP>R&q1na3h9sS>eIEcDnKukls8sZ z&goxyHwik_6(H(2d0L~=tE-tIy@4FXHs`;~I_L#4gSM2GA3y3LB4}!AP8J&6zfb$w zeTwjSC)aQ1)}R`=UnkI3w`6ii&dB`F%8dyy3>*}nelZCEKeX=zjl#v9|DaGGa8pmbchY-D`x4YXLUXTdW8fa6}Kt!hJ*$LUP~JBVeLF9qUE77oG0>_3#-qMkSd^4h_aa8AO%SIlKc7k`lNN|!wKgb89k=H- zQMG_M=2`dhKvznw<0&NSXOe)EjsKB>93=E%frYrQ2tyc1IO|FsrxW|#YGe^DBEnhr_hlQ?l!*Yg8?DzP4Q21DKA-P1@J(I%z=(S8f z-?Wv6;^H%;=nG(`rpAd;34*Suv|0EMO!G}TPcll|b?B6SlnJBqv}ouGF4VCAGT@}v zpL-#hQh{S|&g0A#^Zbnwez{I&W8%#hZ(?JE0bavF{TFp?)77NM>J&1p9=(jrOKgGwGDtnKQ3yUqAX%*Af2_U-`on+s5K(PY=S?f!hD*p5ssiUtbMH zXe2q(=j3s}?WfHmg5k8s?BqwwJ-KfXjHXAz?lI4F!a zBF0meno&bj5teI8{)e)yC0ZZ>TYzb+C5J|bn96$hrsJc@!`k8k$(0D?bQwCAfM0P1 zEgJVozisQ({+@{(&A=kT^Y6A>4ir^jWn%$WnDfF{{*vG_c{~nM7cVyvRt*D#u=I2; zE?S~~x5Pdy@$S)_7nl}W5*H%xcejts+@*x1J61*?!uHZHz^CR^3)D(+^zsAzu=b`S z&Hm2^I0n>gFf~XHdT-(>p^IyJp(_QYGA2MRAosBllBdu#z^r+c+_+#0&&IWn9q*2f)B;3ip{vr3X!W_hFB2(o45Y^yQWqdI%s3ah=8UH~F59A0W zz9x_ip*dLbCGcdL6U872dZ*d`<3)JH9e191X;qF2gqMYIapIKmli&W zr1bys7uA2~=LjPMsw3{OmtBylaLLxbQl=hrCQ&_r00Gw?(4hUquhQx|MZ!XNZ1Iqdn9t#L=wKy_ z*txy>=p$VKm;Yk5Z1Xr^)8vzBJm;0HO&8_t6N~lFc0g$JO{6U3;AkZu8>tra`@E|C-{n3oXR5rm#7C|ThMt_xun=}Xx5tP1Ac z7PQHf!uv1v)gliouJzNWk#FDPre6KlA%AX#)h$(PA+M$h&Rss6E;QDk<^H#d3fMc( zZww2#y9w+7MdALdu^y~Jblyb*X`hscS6kGo4F8XQ?iUX`$zHKT{Ys6j?EghC{wOIp z!-a(ffG+AflN9oR8qQF4YVFI`M^HkJ%a=hTZoISDtF{zGfdGzF)YOy=46lUEnkE`T zsMUtG@86%yYi537n5(F*P2+pmod9g(ui$LU1keMra&n#n-3atgf1hcMc3d71PP6^^ z@#CAgxKN05m!zZ^$)(m&&_EYoEDkL_tJOz#fk8nCZZBB9&&Ed=Dj4Uafb{(OW8pAT z+agVdPy2IRvtku4<~{+601{32(}Ovtwwd2!c*JyaNg854JFBC^d4>WjHjbyq9>+7B zvNxe~j{=4a;HnwO3Bz}s4sABMZZhRN&8h%!)ChQfBXF#Z+Y8;dw6))I2@1xR7e3Q3 zun0ps7#q_Pe0flq4w<8$RwqFF-U4MaB)3Ik0Kt?(L*^||NTLCLGm8UaOBG~|A@P!K zuK?Exfi_NzBC|(BGyj1JXd2J2RqcHSWgrb69-iq`LkQcA8~1y9d&P?n4m$h<06<3@ z8h#!qcoI=M`%b?BdioZ1?elceHNGbe(09@Rqi_6p<0<;io!9Rr-EwH|T6aS)BWv~H zBCjK`_{iLD{8kkt1TY>_vmlC1OEdjvYh(P7e5hv!XCS-V(4b+jd)CpBg_qEisFO_HqK0X>&M}Ji!r*oJy(| z)FnRyJ5d>TnYh*+%GU<{cL4>+5^<`ZY-&q|A=Myh(ucX(e9PuNq1Q zYv=e+L)?KBHK#kdjVsWsI=bU@X5(~@yvz+c6za#SypSZl`D&_G2pF_6+>%P?k2ul} z!OQDxZDwxH@sf;b(Q-PRNfP0a0Lzyw2B@3_=s%dF*{zQTn)mMEpfKU#_$UA$&s!7> zW>g_~thM#mdtOJtOoL{#Sp-%;xXZEujLb*Z=SVkOC+kre)y~cikWKITh6zwW%a$Ik zR>TkCwXC^$PBjq1woCHbTXkQ~Yj)UOeu&z9ItPm#0Qa9x3TBpn^oS9kj1hxShk1sp z33peG6W!zF&~AokhVU z@JP+JC8IBWPY$uZmE6kgg*L7qR>Ny0CE0r^kK=2^T;?gDF&|zBu)dXW#+cxhCgQR78@JT|Wpzj88C2)7BnUlepoW!bO2E1GZ38SN%0_Fe_=*{2G;#Do=T+=qNy2+Vk?Py04@S&t2i*s5QTuR9-%0b@cC9>$EO{POfwK zqzr+G`va=e4?LoI@9kRO^s?k+Z0Iq*)?ax6U3J7nw2pM?G-rim)NpsEO!Y+!|!(;$KDwBI~JCFig3cd``SvDi3 zl%PX(){_My3^0VWU1rH=B*2QhTCc&vev;t=HV*~w4q3!$Nf@vZxh^W&mJ^0_{v*wY z@M4L51}S$TX0K)8<~=8P2+*uJfVhX_%9S6hd!EC#B}L_5wxMuWQdPydRMT-KBFav+T>ZpMZcWIWbW#OTR>|p{ePxH&xd8&reGIVjHA4 zYHFhHg(;{_+pD0*-_miOFr#{~Or*4}d8 zL&yUdax%nZQ;;{S^*@GC!Vk>z83x=6VZ0ir=iVy+>0y73M0RZVlW5M3-3-WGuGTsO z0RI2{bwOBvS~(LMAd$H2b<)h@H{!^d#j?5noqQUIx0F~AJEA54O!7r1X^c3W0G0Ol z-3js-oxPe}L;_&kldcJEZa3ZC_sQ*ybagS{k5fuZ=_4Z}WzyduwNA*f68O#Oqx+dU zCS#QzYHpv2$jR*=yzy*4kv=py&wNYsC?Q7D}9@#vd3A)Yr#K;5nvwuU@4h z3aYny=GsjvzV++VH4@m5C)NT9$gH%qQnzJTTj9U{WSgL2w{PQvY#vAvgv{);I)NkKAdT4@ zXJjjf!Yz^n@vC5eb)dEocK&k*dBu$Td{VH(Qg(?cz-Wk?pV{x&@vn3c?Dq)+UJTI(z^`X~!v#;seK$glCW`tEzk}5wbQ}rrcncngL>_L{ zH8Qds-$YG`f+6rh4m26_zz`WLKw+WKve(eifV5&jUtn#e$Cd+FETfb=1!^6U7sA3c zEaldOLo7A}$&hZfx44MyP#}cNk^=@19l-m1AboV^lZ5_BU=Do1JSX-IQ?-&HxdF{!joCwQZz)tFcwc`Xhv9$j#xc&# zeEW9IuiSDN$T#ZAk@ zCFCqV+mw(!BT^ukA|!C+-325QbxA~|kKOiiaxoa-^G*=ry@rNKc4=uQY0qtk!$o*I zMO;VguV45m$fLyhA&7&IA@K!JcN+YXnDZYJ5xbFjUBsYgX3Sx#-Ls`ZEYC@#0%-+A zu6p(esprSX-k&5~iI8_~zy#oD_744VhBk6XkU>pD%yr~Dg21)`D#Ik`gn(J!hZkT# zqkCuO1Hony&DmGaSG(sV$WyCMGT*J+>;zK)bLvFzRLlsZrXtjvDJ s5E#Qjj1t{nI`04VYseA2WDpgRoTG(+ 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