summaryrefslogtreecommitdiffstats
path: root/sleepingcelldetector/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'sleepingcelldetector/README.md')
-rw-r--r--sleepingcelldetector/README.md200
1 files changed, 200 insertions, 0 deletions
diff --git a/sleepingcelldetector/README.md b/sleepingcelldetector/README.md
new file mode 100644
index 0000000..1a7b432
--- /dev/null
+++ b/sleepingcelldetector/README.md
@@ -0,0 +1,200 @@
+# SleepingCellDetector R-APP
+
+SleepingCellDetector R-APP is a Java SpringBoot application for reading Aggregated PM Metrics from DataCollector R-APP
+and make sleeping cell prediction based on PM data
+
+## Use of SleepingCellDetector R-APP
+
+SleepingCellDetector R-APP needs several parameters to be defined before start.
+
+TCA Algorithm configuration situated in `resources/tca.json` file, example:
+
+```json
+[
+ {
+ "name": "latency",
+ "condition": "MORE_OR_EQUAL",
+ "averageThresholdValue": 400,
+ "latestThresholdValue": 150,
+ "latestSize": 2
+ },
+ {
+ "name": "throughput",
+ "condition": "LESS_OR_EQUAL",
+ "averageThresholdValue": 10,
+ "latestThresholdValue": 10,
+ "latestSize": 2
+ }
+]
+```
+
+File contains information about names of performance measurement parameters, conditions and values of thresholds for
+them.
+`"averageThresholdValue"`- is a threshold of performance signal average
+`"latestThresholdValue"` - is a threshold of last slots of performance signal (number defined in "
+latestThresholdValue"). Needed to detect correction of performance signal. Conditions available: "LESS", "LESS_OR_EQUAL"
+, "EQUAL", "MORE_OR_EQUAL", "MORE"'
+
+Actually DataCollector R-APP returns Aggregated Metrics of "latency" and "throughput" parameters, example:
+
+```json
+{
+ "pm": [
+ {
+ "cellId": "Cell1",
+ "performance": [
+ {
+ "latency": 50,
+ "throughput": 80
+ },
+ {
+ "latency": 50,
+ "throughput": 80
+ },
+ {
+ "latency": 50,
+ "throughput": 80
+ }
+ ]
+ }
+ ],
+ "itemsLength": 1
+}
+```
+
+Set parameters of environment variables:
+
+A1PolicyManagementService URL can be set using environment variables:
+
+- A1\_HOST
+- A1\_PORT
+
+To customize DataCollector R-APP connectivity you need to set the following:
+
+- DC_HOST
+- DC_PORT
+- DC_VERSION
+
+SleepingCellDetector R-APP configuration fields:
+
+- SCD_PREFIX
+- SCD_SLOT
+- SCD_COUNT
+
+Prefix of high priority user equipment (policy instances will be created only for user equipments with this prefix),
+example:
+`emergency_` - policy instances will be created only for UEs with "emergency\_" prefix Slot of time in seconds,
+number of slots for DataCollector R-APP Aggregated Metrics endpoint call. Slot: aggregation period (in seconds) for
+which an average performance metrics are calculated Count: number of aggregated performance metrics that should be
+returned by the method, one aggregated performance metric per each slot. The first performance metrics is average
+metrics for (startTime, startTime +slot). StartTime for DataCollector R-APP Aggregated Metrics endpoint call is
+generated based on slot and count parameters as "time.now - slot\*count"
+
+Example configuration in environment variables in application.yml:
+
+```
+server:
+ port: 8382
+a1:
+ host: "policy-agent"
+ port: 8081
+dc:
+ host: "localhost"
+ port: 8087
+ version: "v1"
+scd:
+ prefix: "emergency"
+ slot: 10
+ count: 12
+logging:
+ level:
+ org:
+ springframework: DEBUG
+ logging.file.name: logs/rapp-sleepingcelldetector.log
+ pattern:
+ console: "%d %-5level %logger : %msg%n"
+ file: "%d %-5level [%thread] %logger : %msg%n"
+```
+
+During start-up, SleepingCellDetector R-APP registers itself as a service in A1PolicyManagmentService(PMS). After that
+SleepingCellDetector R-APP sends periodic keepalive requests to PMS. PMS exposes the Ric Configuration for SleepingCellDetector R-APP.
+Ric Configuration contains information about Policy Type and Ric name, example:
+
+```json
+[
+ {
+ "ricName": "ric1",
+ "managedElementIds": [
+ ],
+ "policyTypes": [
+ "1000"
+ ],
+ "state": "AVAILABLE"
+ }
+]
+```
+
+SleepingCellDetector R-APP uses this information with created UUID are used for Policy Instances creation request to
+A1PolicyManagementService, example:
+
+`{a1policymanagementservicehost}/policy?id=123e4567-e89b-12d3-a456-426614174000&ric=ric1&service=rapp-sleepingcelldetector&type=1000`
+
+```json
+{
+ "scope": {
+ "ueId": "emergency_samsung_s10_01"
+ },
+ "resources": [
+ {
+ "cellIdList": [
+ "Cell3"
+ ],
+ "preference": "AVOID"
+ }
+ ]
+}
+```
+
+SleepingCellDetector R-APP creates the policy resources, which are used to traffic steering,
+selecting cell for a connection, or scheduling traffic on available cells,
+in a different way than what would be done through default behaviour.
+
+Like was presented on the example above, created policy instances provided information
+which cells (mention in the array "cellIdList") the User Equipment (define in the section "scope", key "ueId"")
+should avoid (section "resources", key "preference").
+
+After start-up SleepingCellDetector R-APP begins to make predictions periodically in intervals defined by CSD_SLOT
+period based on new PM metrics measurement data received in each interval.
+When sleeping cell is detected, creation of A1 Policy instance is enforced by SleepingCellDetector R-APP.
+If cell becomes active again, A1Policy instance deletion request is sent.
+
+# Developer Guide
+
+## Build SleepingCellDetector R-APP
+
+Following mvn command (in the current directory) will build SleepingCellDetector R-APP:
+
+```bash
+mvn clean install
+```
+
+To build docker image add `-P docker:build` flag.
+
+## Run SleepingCellDetector R-APP
+
+Following command will run SleepingCellDetector R-APP:
+
+```bash
+java -jar sleepingcelldetector-0.0.1-SNAPSHOT.jar org.onap.rapp.sleepingcelldetector.SleepingCellDetectorApplication
+```
+
+## Logging
+
+The log file will be created in the /log path. Parameters of logging are in application.yml file.
+After SleepingCellDetector R-APP starts successfully, log/rapp-sleepingcelldetector.log should start to contain the logs:
+
+```
+.
+└──log
+ └── rapp-sleepingcelldetector.log
+```