Loading .gitignore +0 −2 Original line number Diff line number Diff line Loading @@ -179,5 +179,3 @@ libyang/ # Other logs **/logs/*.log.* # PySpark checkpoints src/analytics/.spark/* common_requirements.in +1 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ coverage==6.3 grpcio==1.47.* grpcio-health-checking==1.47.* grpcio-reflection==1.47.* grpcio-tools==1.47.* grpclib==0.4.4 prettytable==3.5.0 Loading deploy/all.sh +3 −0 Original line number Diff line number Diff line Loading @@ -215,6 +215,9 @@ export GRAF_EXT_PORT_HTTP=${GRAF_EXT_PORT_HTTP:-"3000"} # Deploy Apache Kafka ./deploy/kafka.sh #Deploy Monitoring (Prometheus, Mimir, Grafana) ./deploy/monitoring.sh # Expose Dashboard ./deploy/expose_dashboard.sh Loading deploy/monitoring.sh 0 → 100755 +132 −0 Original line number Diff line number Diff line #!/bin/bash # Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # 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. set -euo pipefail # ----------------------------------------------------------- # Global namespace for all deployments # ----------------------------------------------------------- NAMESPACE="monitoring" VALUES_FILE_PATH="manifests/monitoring" # ----------------------------------------------------------- # Prometheus Configuration # ----------------------------------------------------------- RELEASE_NAME_PROM="mon-prometheus" CHART_REPO_NAME_PROM="prometheus-community" CHART_REPO_URL_PROM="https://prometheus-community.github.io/helm-charts" CHART_NAME_PROM="prometheus" VALUES_FILE_PROM="$VALUES_FILE_PATH/prometheus_values.yaml" # ----------------------------------------------------------- # Mimir Configuration # ----------------------------------------------------------- # RELEASE_NAME_MIMIR="mon-mimir" # CHART_REPO_NAME_MIMIR="grafana" # CHART_REPO_URL_MIMIR="https://grafana.github.io/helm-charts" # CHART_NAME_MIMIR="mimir-distributed" # VALUES_FILE_MIMIR="$VALUES_FILE_PATH/mimir_values.yaml" # ----------------------------------------------------------- # Grafana Configuration # ----------------------------------------------------------- # RELEASE_NAME_GRAFANA="mon-grafana" # CHART_REPO_NAME_GRAFANA="grafana" # CHART_REPO_URL_GRAFANA="https://grafana.github.io/helm-charts" # CHART_NAME_GRAFANA="grafana" # VALUES_FILE_GRAFANA="$VALUES_FILE_PATH/grafana_values.yaml" # ----------------------------------------------------------- # Function to deploy or upgrade a Helm chart # ----------------------------------------------------------- deploy_chart() { local release_name="$1" local chart_repo_name="$2" local chart_repo_url="$3" local chart_name="$4" local values_file="$5" local namespace="$6" echo ">>> Deploying [${release_name}] from repo [${chart_repo_name}]..." # Add or update the Helm repo echo "Adding/updating Helm repo: $chart_repo_name -> $chart_repo_url" helm repo add "$chart_repo_name" "$chart_repo_url" || true helm repo update # Create namespace if needed echo "Creating namespace '$namespace' if it doesn't exist..." kubectl get namespace "$namespace" >/dev/null 2>&1 || kubectl create namespace "$namespace" # Install or upgrade the chart if [ -n "$values_file" ] && [ -f "$values_file" ]; then echo "Installing/Upgrading $release_name using custom values from $values_file..." helm upgrade --install "$release_name" "$chart_repo_name/$chart_name" \ --namespace "$namespace" \ --values "$values_file" else echo "Installing/Upgrading $release_name with default chart values..." helm upgrade --install "$release_name" "$chart_repo_name/$chart_name" \ --namespace "$namespace" fi echo "<<< Deployment initiated for [$release_name]." echo } # ----------------------------------------------------------- # Actual Deployments # ----------------------------------------------------------- # 1) Deploy Prometheus deploy_chart "$RELEASE_NAME_PROM" \ "$CHART_REPO_NAME_PROM" \ "$CHART_REPO_URL_PROM" \ "$CHART_NAME_PROM" \ "$VALUES_FILE_PROM" \ "$NAMESPACE" # Optionally wait for Prometheus server pod to become ready kubectl rollout status deployment/"$RELEASE_NAME_PROM-server" -n "$NAMESPACE" || true # 2) Deploy Mimir # deploy_chart "$RELEASE_NAME_MIMIR" \ # "$CHART_REPO_NAME_MIMIR" \ # "$CHART_REPO_URL_MIMIR" \ # "$CHART_NAME_MIMIR" \ # "$VALUES_FILE_MIMIR" \ # "$NAMESPACE" # Depending on how Mimir runs (StatefulSets, Deployments), you can wait for # the correct resource to be ready. For example: # kubectl rollout status statefulset/"$RELEASE_NAME_MIMIR-distributor" -n "$NAMESPACE" || true # 3) Deploy Grafana # deploy_chart "$RELEASE_NAME_GRAFANA" \ # "$CHART_REPO_NAME_GRAFANA" \ # "$CHART_REPO_URL_GRAFANA" \ # "$CHART_NAME_GRAFANA" \ # "$VALUES_FILE_GRAFANA" \ # "$NAMESPACE" # kubectl rollout status deployment/"$RELEASE_NAME_GRAFANA" -n "$NAMESPACE" || true # ----------------------------------------------------------- echo "All deployments completed!" manifests/kpi_value_writerservice.yaml +2 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,8 @@ spec: env: - name: LOG_LEVEL value: "INFO" - name: PUSHGATEWAY_URL value: "http://mon-prometheus-prometheus-pushgateway.monitoring.svc.cluster.local:9091" envFrom: - secretRef: name: kfk-kpi-data Loading Loading
.gitignore +0 −2 Original line number Diff line number Diff line Loading @@ -179,5 +179,3 @@ libyang/ # Other logs **/logs/*.log.* # PySpark checkpoints src/analytics/.spark/*
common_requirements.in +1 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ coverage==6.3 grpcio==1.47.* grpcio-health-checking==1.47.* grpcio-reflection==1.47.* grpcio-tools==1.47.* grpclib==0.4.4 prettytable==3.5.0 Loading
deploy/all.sh +3 −0 Original line number Diff line number Diff line Loading @@ -215,6 +215,9 @@ export GRAF_EXT_PORT_HTTP=${GRAF_EXT_PORT_HTTP:-"3000"} # Deploy Apache Kafka ./deploy/kafka.sh #Deploy Monitoring (Prometheus, Mimir, Grafana) ./deploy/monitoring.sh # Expose Dashboard ./deploy/expose_dashboard.sh Loading
deploy/monitoring.sh 0 → 100755 +132 −0 Original line number Diff line number Diff line #!/bin/bash # Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # 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. set -euo pipefail # ----------------------------------------------------------- # Global namespace for all deployments # ----------------------------------------------------------- NAMESPACE="monitoring" VALUES_FILE_PATH="manifests/monitoring" # ----------------------------------------------------------- # Prometheus Configuration # ----------------------------------------------------------- RELEASE_NAME_PROM="mon-prometheus" CHART_REPO_NAME_PROM="prometheus-community" CHART_REPO_URL_PROM="https://prometheus-community.github.io/helm-charts" CHART_NAME_PROM="prometheus" VALUES_FILE_PROM="$VALUES_FILE_PATH/prometheus_values.yaml" # ----------------------------------------------------------- # Mimir Configuration # ----------------------------------------------------------- # RELEASE_NAME_MIMIR="mon-mimir" # CHART_REPO_NAME_MIMIR="grafana" # CHART_REPO_URL_MIMIR="https://grafana.github.io/helm-charts" # CHART_NAME_MIMIR="mimir-distributed" # VALUES_FILE_MIMIR="$VALUES_FILE_PATH/mimir_values.yaml" # ----------------------------------------------------------- # Grafana Configuration # ----------------------------------------------------------- # RELEASE_NAME_GRAFANA="mon-grafana" # CHART_REPO_NAME_GRAFANA="grafana" # CHART_REPO_URL_GRAFANA="https://grafana.github.io/helm-charts" # CHART_NAME_GRAFANA="grafana" # VALUES_FILE_GRAFANA="$VALUES_FILE_PATH/grafana_values.yaml" # ----------------------------------------------------------- # Function to deploy or upgrade a Helm chart # ----------------------------------------------------------- deploy_chart() { local release_name="$1" local chart_repo_name="$2" local chart_repo_url="$3" local chart_name="$4" local values_file="$5" local namespace="$6" echo ">>> Deploying [${release_name}] from repo [${chart_repo_name}]..." # Add or update the Helm repo echo "Adding/updating Helm repo: $chart_repo_name -> $chart_repo_url" helm repo add "$chart_repo_name" "$chart_repo_url" || true helm repo update # Create namespace if needed echo "Creating namespace '$namespace' if it doesn't exist..." kubectl get namespace "$namespace" >/dev/null 2>&1 || kubectl create namespace "$namespace" # Install or upgrade the chart if [ -n "$values_file" ] && [ -f "$values_file" ]; then echo "Installing/Upgrading $release_name using custom values from $values_file..." helm upgrade --install "$release_name" "$chart_repo_name/$chart_name" \ --namespace "$namespace" \ --values "$values_file" else echo "Installing/Upgrading $release_name with default chart values..." helm upgrade --install "$release_name" "$chart_repo_name/$chart_name" \ --namespace "$namespace" fi echo "<<< Deployment initiated for [$release_name]." echo } # ----------------------------------------------------------- # Actual Deployments # ----------------------------------------------------------- # 1) Deploy Prometheus deploy_chart "$RELEASE_NAME_PROM" \ "$CHART_REPO_NAME_PROM" \ "$CHART_REPO_URL_PROM" \ "$CHART_NAME_PROM" \ "$VALUES_FILE_PROM" \ "$NAMESPACE" # Optionally wait for Prometheus server pod to become ready kubectl rollout status deployment/"$RELEASE_NAME_PROM-server" -n "$NAMESPACE" || true # 2) Deploy Mimir # deploy_chart "$RELEASE_NAME_MIMIR" \ # "$CHART_REPO_NAME_MIMIR" \ # "$CHART_REPO_URL_MIMIR" \ # "$CHART_NAME_MIMIR" \ # "$VALUES_FILE_MIMIR" \ # "$NAMESPACE" # Depending on how Mimir runs (StatefulSets, Deployments), you can wait for # the correct resource to be ready. For example: # kubectl rollout status statefulset/"$RELEASE_NAME_MIMIR-distributor" -n "$NAMESPACE" || true # 3) Deploy Grafana # deploy_chart "$RELEASE_NAME_GRAFANA" \ # "$CHART_REPO_NAME_GRAFANA" \ # "$CHART_REPO_URL_GRAFANA" \ # "$CHART_NAME_GRAFANA" \ # "$VALUES_FILE_GRAFANA" \ # "$NAMESPACE" # kubectl rollout status deployment/"$RELEASE_NAME_GRAFANA" -n "$NAMESPACE" || true # ----------------------------------------------------------- echo "All deployments completed!"
manifests/kpi_value_writerservice.yaml +2 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,8 @@ spec: env: - name: LOG_LEVEL value: "INFO" - name: PUSHGATEWAY_URL value: "http://mon-prometheus-prometheus-pushgateway.monitoring.svc.cluster.local:9091" envFrom: - secretRef: name: kfk-kpi-data Loading