From 91f16aa687b9d971bd3cc03c3dba57bece37679e Mon Sep 17 00:00:00 2001 From: ktimoney Date: Fri, 18 Aug 2023 09:08:04 +0100 Subject: [PATCH] Add pmlog to RANPM docker-compose Issue-ID: NONRTRIC-903 Change-Id: I2ca916c4474b66e973f8c6188341e7fb845acc80 Signed-off-by: ktimoney --- docker-proj/README.md | 13 +++ .../config/https/template-files/pm-template.xml.gz | Bin 0 -> 10752 bytes docker-proj/config/pmlog/application.yaml | 109 ++++++++++++++++++++ docker-proj/config/pmlog/jobDefinition.json | 23 +++++ docker-proj/config/pmlog/token-cache/jwt.txt | 0 docker-proj/docker-compose-influxdb.yaml | 40 ++++++++ docker-proj/docker-compose-pm-https.yaml | 8 +- docker-proj/docker-compose-pmlog.yaml | 55 +++++++++++ docker-proj/docker-compose-producers.yaml | 2 + docker-proj/docker-setup.sh | 19 ++-- docker-proj/pmlog-setup.sh | 110 +++++++++++++++++++++ docker-proj/pmlog-tear-down.sh | 33 +++++++ docker-proj/scripts/get_influxdb2_token.sh | 37 +++++++ .../scripts/kafka-client-send-file-ready.sh | 11 ++- docker-proj/scripts/push-to-ves-collector.sh | 24 ++--- docker-proj/scripts/update_ics_job.sh | 51 ++++++++++ docker-proj/update-pmlog.sh | 68 +++++++++++++ 17 files changed, 577 insertions(+), 26 deletions(-) create mode 100644 docker-proj/config/https/template-files/pm-template.xml.gz create mode 100644 docker-proj/config/pmlog/application.yaml create mode 100644 docker-proj/config/pmlog/jobDefinition.json create mode 100644 docker-proj/config/pmlog/token-cache/jwt.txt create mode 100644 docker-proj/docker-compose-influxdb.yaml create mode 100644 docker-proj/docker-compose-pmlog.yaml create mode 100755 docker-proj/pmlog-setup.sh create mode 100755 docker-proj/pmlog-tear-down.sh create mode 100755 docker-proj/scripts/get_influxdb2_token.sh create mode 100755 docker-proj/scripts/update_ics_job.sh create mode 100755 docker-proj/update-pmlog.sh diff --git a/docker-proj/README.md b/docker-proj/README.md index 4ecffd1..1a6cf9e 100644 --- a/docker-proj/README.md +++ b/docker-proj/README.md @@ -42,6 +42,19 @@ If the script fails, make sure to clean the setup before attempting a new setup. In addition, a `docker system prune` might be needed now and then. +### PM Influx Logger +Additionally you can install PM influx logger. + +Example cmd: \ +`./pmlog-setup.sh` + +To remove run: +`./pmlog-tear-down.sh` + +To update the filter edit and run: +`./update-pmlog.sh` + + ### Tools for monitoring Open browser to redpanda (kafka gui) - watch topics, messages etc\ diff --git a/docker-proj/config/https/template-files/pm-template.xml.gz b/docker-proj/config/https/template-files/pm-template.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..517be242bb23b2413b6d42c348d3f0ce59c84e92 GIT binary patch literal 10752 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 E0Vb+Y%K!iX literal 0 HcmV?d00001 diff --git a/docker-proj/config/pmlog/application.yaml b/docker-proj/config/pmlog/application.yaml new file mode 100644 index 0000000..7e9fbc5 --- /dev/null +++ b/docker-proj/config/pmlog/application.yaml @@ -0,0 +1,109 @@ +# ============LICENSE_START=============================================== +# Copyright (C) 2023 Nordix Foundation. All rights reserved. +# ======================================================================== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END================================================= +# + +spring: + profiles: + active: prod + main: + allow-bean-definition-overriding: true + aop: + auto: false +management: + endpoints: + web: + exposure: + # Enabling of springboot actuator features. See springboot documentation. + include: "loggers,logfile,health,info,metrics,threaddump,heapdump,shutdown" + endpoint: + shutdown: + enabled: true +lifecycle: + timeout-per-shutdown-phase: "20s" +springdoc: + show-actuator: true +logging: + # Configuration of logging + level: + ROOT: WARN + org.apache.kafka: WARN + org.springframework: ERROR + org.springframework.data: TRACE #ERROR + org.springframework.web.reactive.function.client.ExchangeFunctions: TRACE #ERROR + org.oran.pmlog: TRACE #DEBUG + pattern: + console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %logger{20} - %msg%n" + file: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %logger{20} - %msg%n" + + file: + name: /var/log/pmlog-service/application.log +server: + # Configuration of the HTTP/REST server. The parameters are defined and handeled by the springboot framework. + # See springboot documentation. + port : 8436 + http-port: 8084 + ssl: + key-store-type: JKS + key-store-password: policy_agent + key-store: /opt/app/pmlog-service/etc/cert/keystore.jks + key-password: policy_agent + key-alias: policy_agent + shutdown: "graceful" +app: + webclient: + # Configuration of the trust store used for the HTTP client (outgoing requests) + # The file location and the password for the truststore is only relevant if trust-store-used == true + # Note that the same keystore as for the server is used. + trust-store-used: false + trust-store-password: policy_agent + trust-store: /opt/app/pmlog-service/etc/cert/truststore.jks + # Configuration of usage of HTTP Proxy for the southbound accesses. + # The HTTP proxy (if configured) will only be used for accessing NearRT RIC:s + http.proxy-host: + http.proxy-port: 0 + kafka: + # KAFKA boostrap servers. + # several redundant boostrap servers can be specified, separated by a comma ','. + # bootstrap-servers and input-topic is overriden if defined in deliveryInfo in config/jobDefinition.json + bootstrap-servers: kafka-1:9097 + input-topic: + # The maximum number of records returned in a single call to poll() (default 100) + max-poll-records: 500 + group-id: kafkaGroupId + client-id: kafkaClientId + # Configues if oath2 tokens shall be used. If set to true, auth-token-file must also be configured + use-oath-token: true + ssl: + key-store-type: PEM + key-store-location: + # key password is needed if the private key is encrypted + key-store-password: + trust-store-type: PEM + trust-store-location: + influx: + url: http://influxdb2-0:8086 + # Override by env var + access-token: + bucket: pm-logg-bucket + org: est + # The user, password and database can be blank if the access-token is defined + user: + password: + database: + ics-base-url: http://ics:8083 + consumer-job-id: "pmlog" + # If the file name is empty, no authorization token is used + auth-token-file: /token-cache/jwt.txt diff --git a/docker-proj/config/pmlog/jobDefinition.json b/docker-proj/config/pmlog/jobDefinition.json new file mode 100644 index 0000000..517332d --- /dev/null +++ b/docker-proj/config/pmlog/jobDefinition.json @@ -0,0 +1,23 @@ +{ + "info_type_id": "PmData", + "job_owner": "console", + "job_definition": { + "filter": { + "sourceNames": [], + "measObjInstIds": [], + "measTypeSpecs": [ + { + "measuredObjClass": "NRCellDU", + "measTypes": [ + "pmCounterNumber108" + ] + } + ], + "measuredEntityDns": [] + }, + "deliveryInfo": { + "topic": "pmreports", + "bootStrapServers": "kafka-1:9097" + } + } +} diff --git a/docker-proj/config/pmlog/token-cache/jwt.txt b/docker-proj/config/pmlog/token-cache/jwt.txt new file mode 100644 index 0000000..e69de29 diff --git a/docker-proj/docker-compose-influxdb.yaml b/docker-proj/docker-compose-influxdb.yaml new file mode 100644 index 0000000..fab9475 --- /dev/null +++ b/docker-proj/docker-compose-influxdb.yaml @@ -0,0 +1,40 @@ +# ============LICENSE_START=============================================== +# Copyright (C) 2023 Nordix Foundation. All rights reserved. +# ======================================================================== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END================================================= +# + +version: '3.0' +networks: + default: + external: true + name: nonrtric-docker-net + +services: + $INFLUXDB2_INSTANCE: + image: $INFLUXDB_IMAGE + container_name: $INFLUXDB2_INSTANCE + environment: + DOCKER_INFLUXDB_INIT_MODE: setup + DOCKER_INFLUXDB_INIT_USERNAME: $INFLUXDB2_USERNAME + DOCKER_INFLUXDB_INIT_PASSWORD: $INFLUXDB2_PASSWORD + DOCKER_INFLUXDB_INIT_ORG: $INFLUXDB2_ORG + DOCKER_INFLUXDB_INIT_BUCKET: $INFLUXDB2_BUCKET + volumes: + - ./config/influxdb2/data:/var/lib/influxdb2:rw + ports: + - 8086:8086 + labels: + - "ranpm=yes" + - "ranpmlog=yes" diff --git a/docker-proj/docker-compose-pm-https.yaml b/docker-proj/docker-compose-pm-https.yaml index bf1417f..e50da91 100644 --- a/docker-proj/docker-compose-pm-https.yaml +++ b/docker-proj/docker-compose-pm-https.yaml @@ -24,11 +24,15 @@ networks: services: pm-https-server-${CONTAINER_NUM}: container_name: pm-https-server-${CONTAINER_NUM} + hostname: pm-https-server-${CONTAINER_NUM} image: $PM_HTTPSSERVER_IMAGE environment: - ALWAYS_RETURN: /files/pm.xml.gz + ALWAYS_RETURN: /ne-files/pm.xml.gz + GENERATED_FILE_START_TIME: "${START_TIME}" + GENERATED_FILE_TIMEZONE: "+0100" volumes: - - ./ne-files:/files:rw + - ./ne-files:/ne-files:rw + - ./config/https/template-files:/template-files - ./config/https/certs/https-${CONTAINER_NUM}.key:/certs/server.key - ./config/https/certs/https-${CONTAINER_NUM}.crt:/certs/server.crt labels: diff --git a/docker-proj/docker-compose-pmlog.yaml b/docker-proj/docker-compose-pmlog.yaml new file mode 100644 index 0000000..fab7767 --- /dev/null +++ b/docker-proj/docker-compose-pmlog.yaml @@ -0,0 +1,55 @@ +# ============LICENSE_START=============================================== +# Copyright (C) 2023 Nordix Foundation. All rights reserved. +# ======================================================================== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END================================================= +# + +version: '3.0' +networks: + default: + external: true + name: nonrtric-docker-net + +services: + auth-token-file-pmlog-0: + image: $AUTH_TOKEN_IMAGE + environment: + CREDS_GRANT_TYPE: client_credentials + CREDS_CLIENT_SECRET: $PMLOG_CLIENT_SECRET + CREDS_CLIENT_ID: nrt-pm-log + AUTH_SERVICE_URL: http://keycloak:8080/realms/nonrtric-realm/protocol/openid-connect/token + OUTPUT_FILE: /token-cache/jwt.txt + volumes: + - ./config/pmlog/token-cache:/token-cache + labels: + - "ranpm=yes" + - "ranpmlog=yes" + + pmlog-0: + image: $PMLOG_IMAGE + container_name: pmlog-0 + depends_on: + - auth-token-file-pmlog-0 + environment: + APP_INFLUX_ACCESSTOKEN: $INFLUXDB2_TOKEN + volumes: + - ./config/pmlog/jobDefinition.json:/opt/app/pmlog-service/config/jobDefinition.json + - ./config/pmlog/application.yaml:/opt/app/pmlog-service/config/application.yaml + - ./config/pmlog/token-cache:/token-cache + ports: + - 8184:8084 + - 8436:8436 + labels: + - "ranpm=yes" + - "ranpmlog=yes" diff --git a/docker-proj/docker-compose-producers.yaml b/docker-proj/docker-compose-producers.yaml index a1df4b8..8fdbb9b 100644 --- a/docker-proj/docker-compose-producers.yaml +++ b/docker-proj/docker-compose-producers.yaml @@ -62,6 +62,8 @@ services: pm-producer-json2kafka: image: $DMAAPADP_IMAGE container_name: pm-producer-json2kafka + environment: + APP_PM-PRODUCER-BASE-URL: http://pm-producer-json2kafka:8084 depends_on: - auth-token-file-pm-producer-json2kafka volumes: diff --git a/docker-proj/docker-setup.sh b/docker-proj/docker-setup.sh index bee4bcd..bca0281 100755 --- a/docker-proj/docker-setup.sh +++ b/docker-proj/docker-setup.sh @@ -17,7 +17,6 @@ # ============LICENSE_END================================================= # -echo $SP print_usage() { echo "Usage: docker-setup.sh" exit 1 @@ -198,7 +197,7 @@ for (( i=1; i<=$NUM_DFC; i++ )); do done cd $cwd -chmod 622 config/dfc1/token-cache/jwt.txt +chmod 666 config/dfc1/token-cache/jwt.txt envsubst < docker-compose-dfc1.yaml > docker-compose-dfc_gen.yaml envsubst < config/dfc1/application-template.yaml > config/dfc1/application.yaml docker-compose -p dfc -f docker-compose-dfc_gen.yaml up -d @@ -206,11 +205,11 @@ docker-compose -p dfc -f docker-compose-dfc_gen.yaml up -d setup_producers() { echo "Starting producers" -chmod 622 config/pmpr/token-cache/jwt.txt +chmod 666 config/pmpr/token-cache/jwt.txt +export KPADP_MINIO=http://minio-server:9000 cp config/pmpr/application_configuration-minio-template.json config/pmpr/application_configuration.json envsubst < config/pmpr/application-minio-template.yaml > config/pmpr/application.yaml -export KPADP_MINIO=http://minio-server:9000 envsubst < docker-compose-producers.yaml > docker-compose-producers_gen.yaml docker-compose -p prod -f docker-compose-producers_gen.yaml up -d } @@ -227,15 +226,21 @@ cp pm-files/pm* ne-files echo "Starting http servers" export PM_HTTPSSERVER_IMAGE="pm-https-server:latest" -grep -B 21 "services:" docker-compose-pm-https.yaml > docker-compose-pm-https_gen.yaml +total_lines=$(cat docker-compose-pm-https.yaml | wc -l) +services_line=$(grep -n "services:" docker-compose-pm-https.yaml| cut -f1 -d:) +let remaining_lines=$total_lines-$services_line +export START_TIME=$(date +%Y%m%d.%H%M -d '3 hours ago') + +grep -B $services_line "services:" docker-compose-pm-https.yaml > docker-compose-pm-https_gen.yaml for (( i=1; i<=$NUM_HTTP; i++ )); do export CONTAINER_NUM=$i - grep -A 12 "services:" docker-compose-pm-https.yaml | grep -v "services:" | \ - envsubst '$CONTAINER_NUM,$PM_HTTPSSERVER_IMAGE' >> docker-compose-pm-https_gen.yaml + grep -A $remaining_lines "services:" docker-compose-pm-https.yaml | grep -v "services:" | \ + envsubst '$CONTAINER_NUM,$PM_HTTPSSERVER_IMAGE,$START_TIME' >> docker-compose-pm-https_gen.yaml done docker-compose -p pm-https -f docker-compose-pm-https_gen.yaml up -d } +## Main ## export KAFKA_NUM_PARTITIONS=10 export TOPICS="file-ready collected-file json-file-ready-kp json-file-ready-kpadp pmreports" diff --git a/docker-proj/pmlog-setup.sh b/docker-proj/pmlog-setup.sh new file mode 100755 index 0000000..b34ee93 --- /dev/null +++ b/docker-proj/pmlog-setup.sh @@ -0,0 +1,110 @@ +#!/bin/bash + +# ============LICENSE_START=============================================== +# Copyright (C) 2023 Nordix Foundation. All rights reserved. +# ======================================================================== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END================================================= +# + +. scripts/get_influxdb2_token.sh +. scripts/populate_keycloak.sh + +print_usage() { + echo "Usage: pmlog-setup.sh" + exit 1 +} + +check_error() { + if [ $1 -ne 0 ]; then + echo "Failed $2" + echo "Exiting..." + exit 1 + fi +} + +setup_init() { +echo "Cleaning previously started containers..." + +./pmlog-tear-down.sh +} + +pull_image() { +if [ -z "$(docker images -q $1)" ]; then + echo "Pulling image... "$1 + docker pull $1 + check_error $? +fi +} + +check_images(){ +export INFLUXDB_IMAGE="influxdb:2.6.1" +pull_image $INFLUXDB_IMAGE + +export PMLOG_IMAGE="nexus3.o-ran-sc.org:10001/o-ran-sc/nonrtric-plt-pmlog:1.0.0" +pull_image $PMLOG_IMAGE + +export AUTH_TOKEN_IMAGE=nexus3.o-ran-sc.org:10001/o-ran-sc/nonrtric-plt-auth-token-fetch:1.1.1 +pull_image $AUTH_TOKEN_IMAGE +} + +setup_influx() { +data_dir=./config/influxdb2/data +mkdir -p $data_dir + +export INFLUXDB2_INSTANCE=influxdb2-0 +export INFLUXDB2_USERNAME=admin +export INFLUXDB2_PASSWORD=mySuP3rS3cr3tT0keN +export INFLUXDB2_ORG=est +export INFLUXDB2_BUCKET=pm-logg-bucket + +envsubst < docker-compose-influxdb.yaml > docker-compose-influxdb_gen.yaml +docker-compose -p influx -f docker-compose-influxdb_gen.yaml up -d +} + +setup_pmlog() { +chmod 666 config/pmlog/token-cache/jwt.txt + +cid="nrt-pm-log" +create_clients nonrtric-realm $cid +check_error $? +generate_client_secrets nonrtric-realm $cid +check_error $? + +export PMLOG_CLIENT_SECRET=$(< .sec_nonrtric-realm_$cid) +envsubst < docker-compose-pmlog.yaml > docker-compose-pmlog_gen.yaml +docker-compose -p pmlog -f docker-compose-pmlog_gen.yaml up -d +} +## Main ## +setup_init + +check_images + +setup_influx +check_error $? + +# Wait for influxdb2 to start +echo 'Waiting for influxdb2 to be ready' +until [ $(curl -s -w '%{http_code}' -o /dev/null 'http://localhost:8086/health') -eq 200 ]; +do + echo -n '.' + sleep 1 +done +echo "" + +INFLUXDB2_TOKEN=$(get_influxdb2_token $INFLUXDB2_INSTANCE) +echo $INFLUXDB2_TOKEN +export INFLUXDB2_TOKEN + +setup_pmlog +check_error $? diff --git a/docker-proj/pmlog-tear-down.sh b/docker-proj/pmlog-tear-down.sh new file mode 100755 index 0000000..5e67d92 --- /dev/null +++ b/docker-proj/pmlog-tear-down.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# ============LICENSE_START=============================================== +# Copyright (C) 2023 Nordix Foundation. All rights reserved. +# ======================================================================== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END================================================= +# + +echo "Stop and remove all pmlog containers in the project" + +docker stop $(docker ps -qa --filter "label=ranpmlog") 2> /dev/null +docker stop $(docker ps -qa --filter "label=ranpmlog") 2> /dev/null +docker rm -f $(docker ps -qa --filter "label=ranpmlog") 2> /dev/null + +docker-compose -f docker-compose-pmlog_gen.yaml -p pmlog down +docker-compose -f docker-compose-influxdb_gen.yaml -p influx down + + +data_dir=./config/influxdb2/data +if [[ -e $data_dir ]]; then + rm -rf $data_dir +fi diff --git a/docker-proj/scripts/get_influxdb2_token.sh b/docker-proj/scripts/get_influxdb2_token.sh new file mode 100755 index 0000000..2911ea1 --- /dev/null +++ b/docker-proj/scripts/get_influxdb2_token.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +# ============LICENSE_START=============================================== +# Copyright (C) 2023 Nordix Foundation. All rights reserved. +# ======================================================================== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END================================================= +# + +# args: +get_influxdb2_token() { + if [ $# -ne 1 ]; then + echo"get_influxdb2_token needs 1 arg, " $@ + exit 1 + fi + + __influxdb2_access_token="" + while [ -z "$__influxdb2_access_token" ]; do + export __influxdb2_access_token=$(docker exec $1 influx config ls --json | jq -r .default.token) + if [ $? -ne 0 ]; then + __influxdb2_access_token="" + sleep 1 + fi + done + echo -n $__influxdb2_access_token + return 0 +} diff --git a/docker-proj/scripts/kafka-client-send-file-ready.sh b/docker-proj/scripts/kafka-client-send-file-ready.sh index 3a39719..12f95e0 100755 --- a/docker-proj/scripts/kafka-client-send-file-ready.sh +++ b/docker-proj/scripts/kafka-client-send-file-ready.sh @@ -28,6 +28,8 @@ NODE_NAME_BASE=$3 FILE_EXT=$4 SRV_COUNT=$5 +HTTPS_PORT=443 + print_usage() { echo "Usage: kafka-client-send-file-ready.sh " exit 1 @@ -37,7 +39,8 @@ if [ $# -lt 5 ]; then print_usage fi -BEGINTIME=1665146700 +BEGINTIME=$(date +%s -d '1 hour ago') +TIMEZONE="+0100" CURTIME=$BEGINTIME BATCHSIZE=1000 @@ -54,8 +57,10 @@ for (( i=0; i<$EVT_COUNT; i++)); do echo "EVENT NO: $i for $NODE_COUNT NODES - 1 FILE PER EVENT" + let STTIMEMS=$CURTIME*1000000 ST=$(date -d @$CURTIME +'%Y%m%d.%H%M') let CURTIME=CURTIME+900 + let CURTIMEMS=$CURTIME*1000000 ET=$(date -d @$CURTIME +'%H%M') for (( j=0; j<$NODE_COUNT; j++)); do @@ -70,8 +75,8 @@ for (( i=0; i<$EVT_COUNT; i++)); do echo "FILENAME "$FN SRV="pm-https-server-$SRV_ID" echo "HTTP SERVER "$SRV - URL="https://$SRV:$HTTPS_PORT/files/$FN" - EVT='{"event":{"commonEventHeader":{"sequence":0,"eventName":"Noti_RnNode-Ericsson_FileReady","sourceName":"'$NO'","lastEpochMicrosec":151983,"startEpochMicrosec":15198378,"timeZoneOffset":"UTC+05:00","changeIdentifier":"PM_MEAS_FILES"},"notificationFields":{"notificationFieldsVersion":"notificationFieldsVersion","changeType":"FileReady","changeIdentifier":"PM_MEAS_FILES","arrayOfNamedHashMap":[{"name":"'$FN'","hashMap":{"fileFormatType":"org.3GPP.32.435#measCollec","location":"'$URL'","fileFormatVersion":"V10","compression":"gzip"}}]}}}' + URL="https://$SRV:$HTTPS_PORT/generatedfiles/$FN" + EVT='{"event":{"commonEventHeader":{"sequence":0,"eventName":"Noti_RnNode-Ericsson_FileReady","sourceName":"'$NO'","lastEpochMicrosec":'$CURTIMEMS',"startEpochMicrosec":'$STTIMEMS',"timeZoneOffset":"UTC'$TIMEZONE'","changeIdentifier":"PM_MEAS_FILES"},"notificationFields":{"notificationFieldsVersion":"notificationFieldsVersion","changeType":"FileReady","changeIdentifier":"PM_MEAS_FILES","arrayOfNamedHashMap":[{"name":"'$FN'","hashMap":{"fileFormatType":"org.3GPP.32.435#measCollec","location":"'$URL'","fileFormatVersion":"V10","compression":"gzip"}}]}}}' echo $EVT >> .out.json let CNTR=CNTR+1 diff --git a/docker-proj/scripts/push-to-ves-collector.sh b/docker-proj/scripts/push-to-ves-collector.sh index 3dc7d85..f85276a 100755 --- a/docker-proj/scripts/push-to-ves-collector.sh +++ b/docker-proj/scripts/push-to-ves-collector.sh @@ -42,8 +42,10 @@ fi rm .out.json touch .out.json -BEGINTIME=1665146700 +BEGINTIME=$(date +%s -d '1 hour ago') +TIMEZONE="+0100" CURTIME=$BEGINTIME +COLLECTIONTIME=$(date +%a,%d%m%Y%H:%M:%S%Z) for (( i=0; i<$EVT_COUNT; i++)); do @@ -51,16 +53,11 @@ for (( i=0; i<$EVT_COUNT; i++)); do echo '{"eventList": [' > .out.json first=0 - arch="$(uname -s)" - if [[ $arch == "Darwin"* ]]; then - ST=$(date -r $CURTIME +'%Y%m%d.%H%M') - let CURTIME=CURTIME+900 - ET=$(date -r $CURTIME +'%H%M') - else - ST=$(date -d @$CURTIME +'%Y%m%d.%H%M') - let CURTIME=CURTIME+900 - ET=$(date -d @$CURTIME +'%H%M') - fi + let STTIMEMS=$CURTIME*1000000 + ST=$(date -d @$CURTIME +'%Y%m%d.%H%M') + let CURTIME=CURTIME+900 + let CURTIMEMS=$CURTIME*1000000 + ET=$(date -d @$CURTIME +'%H%M') for (( j=0; j<$NODE_COUNT; j++)); do @@ -69,12 +66,11 @@ for (( i=0; i<$EVT_COUNT; i++)); do FN="A$ST+0200-$ET+0200_$NO-$i.$FILE_EXT" let SRV_ID=$j%$SRV_COUNT let SRV_ID=SRV_ID+1 - #echo "NODE "$NO echo "FILENAME "$FN SRV="pm-https-server-$SRV_ID" echo "HTTP SERVER "$SRV - URL="https://$SRV:$HTTPS_PORT/files/$FN" - EVT='{"commonEventHeader":{"startEpochMicrosec":15198378,"eventId":"FileReady_1797490e-10ae-4d48-9ea7-3d7d790b25e1","timeZoneOffset":"UTC+05.30","internalHeaderFields":{"collectorTimeStamp":"Wed,0907202211:56:02GMT"},"priority":"Normal","version":"4.0.1","reportingEntityName":"'$NO'","sequence":0,"domain":"notification","lastEpochMicrosec":151983,"eventName":"Notification_gnb-Ericsson_FileReady","vesEventListenerVersion":"7.0.1","sourceName":"'$NO'"},"notificationFields":{"notificationFieldsVersion":"2.0","changeType":"FileReady","changeIdentifier":"PM_MEAS_FILES","arrayOfNamedHashMap":[{"name":"'$FN'","hashMap":{"location":"'$URL'","fileFormatType":"org.3GPP.32.435#measCollec","fileFormatVersion":"V10","compression":"gzip"}}]}}' + URL="https://$SRV:$HTTPS_PORT/generatedfiles/$FN" + EVT='{"commonEventHeader":{"startEpochMicrosec":'$STTIMEMS',"eventId":"FileReady_1797490e-10ae-4d48-9ea7-3d7d790b25e1","timeZoneOffset":"UTC'$TIMEZONE'","internalHeaderFields":{"collectorTimeStamp":"'$COLLECTIONTIME'"},"priority":"Normal","version":"4.0.1","reportingEntityName":"'$NO'","sequence":0,"domain":"notification","lastEpochMicrosec":'$CURTIMEMS',"eventName":"Notification_gnb-Ericsson_FileReady","vesEventListenerVersion":"7.0.1","sourceName":"'$NO'"},"notificationFields":{"notificationFieldsVersion":"2.0","changeType":"FileReady","changeIdentifier":"PM_MEAS_FILES","arrayOfNamedHashMap":[{"name":"'$FN'","hashMap":{"location":"'$URL'","fileFormatType":"org.3GPP.32.435#measCollec","fileFormatVersion":"V10","compression":"gzip"}}]}}' if [ $first -ne 0 ]; then echo "," >> .out.json fi diff --git a/docker-proj/scripts/update_ics_job.sh b/docker-proj/scripts/update_ics_job.sh new file mode 100755 index 0000000..74cf87b --- /dev/null +++ b/docker-proj/scripts/update_ics_job.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +# ============LICENSE_START=============================================== +# Copyright (C) 2023 Nordix Foundation. All rights reserved. +# ======================================================================== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END================================================= +# + +# args: [] +# job file shall exist in file "".job.json" +update_ics_job() { + + ICS_PORT=8083 + JOB=$(<.job.json) + echo $JOB + retcode=1 + echo "Updating job $1" + while [ $retcode -ne 0 ]; do + if [ -z "$2" ]; then + __bearer="" + else + __bearer="Authorization: Bearer $TOKEN" + fi + STAT=$(curl -s -X PUT -w '%{http_code}' -H accept:application/json -H Content-Type:application/json http://localhost:$ICS_PORT/data-consumer/v1/info-jobs/$1 --data-binary @.job.json -H "$__bearer" ) + retcode=$? + echo "curl return code: $retcode" + if [ $retcode -eq 0 ]; then + status=${STAT:${#STAT}-3} + echo "http status code: "$status + if [ "$status" == "200" ]; then + echo "Job created ok" + elif [ "$status" == "201" ]; then + echo "Job created ok" + else + retcode=1 + fi + fi + sleep 1 + done +} diff --git a/docker-proj/update-pmlog.sh b/docker-proj/update-pmlog.sh new file mode 100755 index 0000000..7d6b731 --- /dev/null +++ b/docker-proj/update-pmlog.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +# ============LICENSE_START=============================================== +# Copyright (C) 2023 Nordix Foundation. All rights reserved. +# ======================================================================== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END================================================= +# + +#. scripts/kube_get_controlplane_host.sh + +# Generic error printout function +# args: +check_error() { + if [ $1 -ne 0 ]; then + echo "Failed: $2" + echo "Exiting..." + exit 1 + fi +} + +. scripts/update_ics_job.sh + +echo "Installation of pm to influx job" + +. scripts/populate_keycloak.sh + +cid="console-setup" +TOKEN=$(get_client_token nonrtric-realm $cid) + +JOB='{ + "info_type_id": "PmData", + "job_owner": "console", + "job_definition": { + "filter": { + "sourceNames": ["node2-1"], + "measObjInstIds": [], + "measTypeSpecs": [ + { + "measuredObjClass": "NRCellDU", + "measTypes": [ + "pmCounterNumber102" + ] + } + ], + "measuredEntityDns": [] + }, + "deliveryInfo": { + "topic": "pmreports", + "bootStrapServers": "kafka-1:9097" + } + } + }' +echo $JOB > .job.json +update_ics_job pmlog $TOKEN + +echo "done" + -- 2.16.6