Commit a75b2fed authored by kesnar's avatar kesnar
Browse files

feat: branch to work for hpsr23 rebased on develop

parent 0e40bd49
Loading
Loading
Loading
Loading
+10 −27
Original line number Original line Diff line number Diff line
@@ -25,15 +25,17 @@ metadata:
  name: policyservice
  name: policyservice
spec:
spec:
  ports:
  ports:
    - name: metrics
    - name: http
      port: 9192
      port: 8080
      targetPort: 8080
      targetPort: 8080
      nodePort: 31180
    - name: grpc
    - name: grpc
      port: 6060
      port: 6060
      targetPort: 6060
      targetPort: 6060
      nodePort: 30060
  selector:
  selector:
    app.kubernetes.io/name: policyservice
    app.kubernetes.io/name: policyservice
  type: ClusterIP
  type: NodePort
---
---
apiVersion: apps/v1
apiVersion: apps/v1
kind: Deployment
kind: Deployment
@@ -85,11 +87,11 @@ spec:
            timeoutSeconds: 10
            timeoutSeconds: 10
          name: policyservice
          name: policyservice
          ports:
          ports:
            - containerPort: 8080
              name: metrics
              protocol: TCP
            - containerPort: 6060
            - containerPort: 6060
              name: grpc-server
              name: grpc
              protocol: TCP
            - containerPort: 8080
              name: http
              protocol: TCP
              protocol: TCP
          readinessProbe:
          readinessProbe:
            failureThreshold: 3
            failureThreshold: 3
@@ -106,24 +108,5 @@ spec:
              cpu: 50m
              cpu: 50m
              memory: 512Mi
              memory: 512Mi
            limits:
            limits:
              cpu: 500m
              cpu: 2000m
              memory: 2048Mi
              memory: 2048Mi
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: policyservice-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: policyservice
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 80
 No newline at end of file
+1 −0
Original line number Original line Diff line number Diff line
@@ -82,6 +82,7 @@ class P4Driver(_Driver):
        self.__settings = settings
        self.__settings = settings
        self.__id = None
        self.__id = None
        self.__name = None
        self.__name = None
        self._name = self.__name
        self.__vendor = P4_VAL_DEF_VENDOR
        self.__vendor = P4_VAL_DEF_VENDOR
        self.__hw_version = P4_VAL_DEF_HW_VER
        self.__hw_version = P4_VAL_DEF_HW_VER
        self.__sw_version = P4_VAL_DEF_SW_VER
        self.__sw_version = P4_VAL_DEF_SW_VER
+30 −26
Original line number Original line Diff line number Diff line
@@ -264,65 +264,69 @@ class MetricsDB():
                for kpi in kpi_list:
                for kpi in kpi_list:
                    alarm = False
                    alarm = False
                    kpi_value = kpi[2]
                    kpi_value = kpi[2]
                    kpiMinIsNone = ((kpiMinValue is None) or math.isnan(kpiMinValue))
                    kpiMaxIsNone = ((kpiMaxValue is None) or math.isnan(kpiMaxValue))
                    if (kpiMinValue == kpi_value and kpiMaxValue == kpi_value and inRange):
                    if (kpiMinValue == kpi_value and kpiMaxValue == kpi_value and inRange):
                        alarm = True
                        alarm = True
                    elif (inRange and not kpiMinIsNone and not kpiMaxIsNone and includeMinValue and includeMaxValue):
                    elif (
                            inRange and kpiMinValue is not None and kpiMaxValue is not None and includeMinValue and includeMaxValue):
                        if (kpi_value >= kpiMinValue and kpi_value <= kpiMaxValue):
                        if (kpi_value >= kpiMinValue and kpi_value <= kpiMaxValue):
                            alarm = True
                            alarm = True
                    elif (inRange and not kpiMinIsNone and not kpiMaxIsNone and includeMinValue and not includeMaxValue):
                    elif (
                            inRange and kpiMinValue is not None and kpiMaxValue is not None and includeMinValue and not includeMaxValue):
                        if (kpi_value >= kpiMinValue and kpi_value < kpiMaxValue):
                        if (kpi_value >= kpiMinValue and kpi_value < kpiMaxValue):
                            alarm = True
                            alarm = True
                    elif (inRange and not kpiMinIsNone and not kpiMaxIsNone and not includeMinValue and includeMaxValue):
                    elif (
                            inRange and kpiMinValue is not None and kpiMaxValue is not None and not includeMinValue and includeMaxValue):
                        if (kpi_value > kpiMinValue and kpi_value <= kpiMaxValue):
                        if (kpi_value > kpiMinValue and kpi_value <= kpiMaxValue):
                            alarm = True
                            alarm = True
                    elif (inRange and not kpiMinIsNone and not kpiMaxIsNone and not includeMinValue and not includeMaxValue):
                    elif (
                            inRange and kpiMinValue is not None and kpiMaxValue is not None and not includeMinValue and not includeMaxValue):
                        if (kpi_value > kpiMinValue and kpi_value < kpiMaxValue):
                        if (kpi_value > kpiMinValue and kpi_value < kpiMaxValue):
                            alarm = True
                            alarm = True
                    elif (not inRange and not kpiMinIsNone and not kpiMaxIsNone and includeMinValue and includeMaxValue):
                    elif (
                            not inRange and kpiMinValue is not None and kpiMaxValue is not None and includeMinValue and includeMaxValue):
                        if (kpi_value <= kpiMinValue or kpi_value >= kpiMaxValue):
                        if (kpi_value <= kpiMinValue or kpi_value >= kpiMaxValue):
                            alarm = True
                            alarm = True
                    elif (not inRange and not kpiMinIsNone and not kpiMaxIsNone and includeMinValue and not includeMaxValue):
                    elif (
                            not inRange and kpiMinValue is not None and kpiMaxValue is not None and includeMinValue and not includeMaxValue):
                        if (kpi_value <= kpiMinValue or kpi_value > kpiMaxValue):
                        if (kpi_value <= kpiMinValue or kpi_value > kpiMaxValue):
                            alarm = True
                            alarm = True
                    elif (not inRange and not kpiMinIsNone and not kpiMaxIsNone and not includeMinValue and includeMaxValue):
                    elif (
                            not inRange and kpiMinValue is not None and kpiMaxValue is not None and not includeMinValue and includeMaxValue):
                        if (kpi_value < kpiMinValue or kpi_value >= kpiMaxValue):
                        if (kpi_value < kpiMinValue or kpi_value >= kpiMaxValue):
                            alarm = True
                            alarm = True
                    elif (not inRange and not kpiMinIsNone and not kpiMaxIsNone and not includeMinValue and not includeMaxValue):
                    elif (
                            not inRange and kpiMinValue is not None and kpiMaxValue is not None and not includeMinValue and not includeMaxValue):
                        if (kpi_value < kpiMinValue or kpi_value > kpiMaxValue):
                        if (kpi_value < kpiMinValue or kpi_value > kpiMaxValue):
                            alarm = True
                            alarm = True
                    elif (inRange and not kpiMinIsNone and kpiMaxIsNone and includeMinValue):
                    elif (inRange and kpiMinValue is not None and kpiMaxValue is None and includeMinValue):
                        if (kpi_value >= kpiMinValue):
                        if (kpi_value >= kpiMinValue):
                            alarm = True
                            alarm = True
                    elif (inRange and not kpiMinIsNone and kpiMaxIsNone and not includeMinValue):
                    elif (inRange and kpiMinValue is not None and kpiMaxValue is None and not includeMinValue):
                        if (kpi_value > kpiMinValue):
                        if (kpi_value > kpiMinValue):
                            alarm = True
                            alarm = True
                    elif (not inRange and not kpiMinIsNone and kpiMaxIsNone and includeMinValue):
                    elif (not inRange and kpiMinValue is not None and kpiMaxValue is None and not includeMinValue):
                        if (kpi_value <= kpiMinValue):
                        if (kpi_value <= kpiMinValue):
                            alarm = True
                            alarm = True
                    elif (not inRange and not kpiMinIsNone and kpiMaxIsNone and not includeMinValue):
                    elif (not inRange and kpiMinValue is not None and kpiMaxValue is None and not includeMinValue):
                        if (kpi_value < kpiMinValue):
                        if (kpi_value <= kpiMinValue):
                            alarm = True
                            alarm = True
                    elif (inRange and kpiMinIsNone and not kpiMaxIsNone and includeMaxValue):
                    elif (inRange and kpiMinValue is None and kpiMaxValue is not None and includeMaxValue):
                        if (kpi_value <= kpiMaxValue):
                        if (kpi_value <= kpiMaxValue):
                            alarm = True
                            alarm = True
                    elif (inRange and kpiMinIsNone and not kpiMaxIsNone and not includeMaxValue):
                    elif (inRange and kpiMinValue is None and kpiMaxValue is not None and not includeMaxValue):
                        if (kpi_value < kpiMaxValue):
                        if (kpi_value < kpiMaxValue):
                            alarm = True
                            alarm = True
                    elif (not inRange and kpiMinIsNone and not kpiMaxIsNone and includeMaxValue):
                    elif (not inRange and kpiMinValue is None and kpiMaxValue is not None and not includeMaxValue):
                        if (kpi_value >= kpiMaxValue):
                        if (kpi_value >= kpiMaxValue):
                            alarm = True
                            alarm = True
                    elif (not inRange and kpiMinIsNone and not kpiMaxIsNone and not includeMaxValue):
                    elif (not inRange and kpiMinValue is None and kpiMaxValue is not None and not includeMaxValue):
                        if (kpi_value > kpiMaxValue):
                        if (kpi_value >= kpiMaxValue):
                            alarm = True
                            alarm = True

                    if alarm:
                    if alarm:
                        valid_kpi_list.append(kpi)
                        valid_kpi_list.append(kpi)
                if valid_kpi_list:
                alarm_queue.put_nowait(valid_kpi_list)
                alarm_queue.put_nowait(valid_kpi_list)
                LOGGER.debug(f"Alarm of KPI {kpi_id} triggered -> kpi_value:{kpi[2]}, timestamp:{kpi[1]}")
                LOGGER.debug(f"Alarm of KPI {kpi_id} triggered -> kpi_value:{kpi[2]}, timestamp:{kpi[1]}")
                else:
                    LOGGER.debug(f"No new alarms triggered for the alarm of KPI {kpi_id}")
            else:
            else:
                LOGGER.debug(f"No new data for the alarm of KPI {kpi_id}")
                LOGGER.debug(f"No new data for the alarm of KPI {kpi_id}")
        except (Exception) as e:
        except (Exception) as e:
+1 −1
Original line number Original line Diff line number Diff line
/*
/*
* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
+1 −20
Original line number Original line Diff line number Diff line
/*
/*
* Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
@@ -20,9 +20,6 @@ import context.ContextOuterClass.ServiceId;
import io.quarkus.grpc.GrpcService;
import io.quarkus.grpc.GrpcService;
import io.smallrye.mutiny.Uni;
import io.smallrye.mutiny.Uni;
import javax.inject.Inject;
import javax.inject.Inject;
import org.eclipse.microprofile.metrics.MetricUnits;
import org.eclipse.microprofile.metrics.annotation.Counted;
import org.eclipse.microprofile.metrics.annotation.Timed;
import policy.Policy;
import policy.Policy;
import policy.Policy.PolicyRuleBasic;
import policy.Policy.PolicyRuleBasic;
import policy.Policy.PolicyRuleDevice;
import policy.Policy.PolicyRuleDevice;
@@ -44,8 +41,6 @@ public class PolicyGatewayImpl implements PolicyGateway {
    }
    }


    @Override
    @Override
    @Counted(name = "policy_policyAddService_counter")
    @Timed(name = "policy_policyAddService_histogram", unit = MetricUnits.MILLISECONDS)
    public Uni<PolicyRuleState> policyAddService(PolicyRuleService request) {
    public Uni<PolicyRuleState> policyAddService(PolicyRuleService request) {
        final var policyRuleService = serializer.deserialize(request);
        final var policyRuleService = serializer.deserialize(request);


@@ -56,8 +51,6 @@ public class PolicyGatewayImpl implements PolicyGateway {
    }
    }


    @Override
    @Override
    @Counted(name = "policy_policyUpdateService_counter")
    @Timed(name = "policy_policyUpdateService_histogram", unit = MetricUnits.MILLISECONDS)
    public Uni<PolicyRuleState> policyUpdateService(PolicyRuleService request) {
    public Uni<PolicyRuleState> policyUpdateService(PolicyRuleService request) {
        final var policyRuleService = serializer.deserialize(request);
        final var policyRuleService = serializer.deserialize(request);


@@ -68,8 +61,6 @@ public class PolicyGatewayImpl implements PolicyGateway {
    }
    }


    @Override
    @Override
    @Counted(name = "policy_policyAddDevice_counter")
    @Timed(name = "policy_policyAddDevice_histogram", unit = MetricUnits.MILLISECONDS)
    public Uni<PolicyRuleState> policyAddDevice(PolicyRuleDevice request) {
    public Uni<PolicyRuleState> policyAddDevice(PolicyRuleDevice request) {
        final var policyRuleDevice = serializer.deserialize(request);
        final var policyRuleDevice = serializer.deserialize(request);


@@ -80,8 +71,6 @@ public class PolicyGatewayImpl implements PolicyGateway {
    }
    }


    @Override
    @Override
    @Counted(name = "policy_policyUpdateDevice_counter")
    @Timed(name = "policy_policyUpdateDevice_histogram", unit = MetricUnits.MILLISECONDS)
    public Uni<PolicyRuleState> policyUpdateDevice(PolicyRuleDevice request) {
    public Uni<PolicyRuleState> policyUpdateDevice(PolicyRuleDevice request) {
        final var policyRuleDevice = serializer.deserialize(request);
        final var policyRuleDevice = serializer.deserialize(request);


@@ -92,8 +81,6 @@ public class PolicyGatewayImpl implements PolicyGateway {
    }
    }


    @Override
    @Override
    @Counted(name = "policy_policyDelete_counter")
    @Timed(name = "policy_policyDelete_histogram", unit = MetricUnits.MILLISECONDS)
    public Uni<PolicyRuleState> policyDelete(PolicyRuleId request) {
    public Uni<PolicyRuleState> policyDelete(PolicyRuleId request) {
        final var policyRuleId = serializer.deserialize(request);
        final var policyRuleId = serializer.deserialize(request);


@@ -101,8 +88,6 @@ public class PolicyGatewayImpl implements PolicyGateway {
    }
    }


    @Override
    @Override
    @Counted(name = "policy_getPolicyService_counter")
    @Timed(name = "policy_getPolicyService_histogram", unit = MetricUnits.MILLISECONDS)
    public Uni<PolicyRuleService> getPolicyService(PolicyRuleId request) {
    public Uni<PolicyRuleService> getPolicyService(PolicyRuleId request) {
        final var policyRuleBasic = PolicyRuleBasic.newBuilder().setPolicyRuleId(request).build();
        final var policyRuleBasic = PolicyRuleBasic.newBuilder().setPolicyRuleId(request).build();


@@ -111,8 +96,6 @@ public class PolicyGatewayImpl implements PolicyGateway {
    }
    }


    @Override
    @Override
    @Counted(name = "policy_getPolicyDevice_counter")
    @Timed(name = "policy_getPolicyDevice_histogram", unit = MetricUnits.MILLISECONDS)
    public Uni<PolicyRuleDevice> getPolicyDevice(PolicyRuleId request) {
    public Uni<PolicyRuleDevice> getPolicyDevice(PolicyRuleId request) {
        final var policyRuleBasic = PolicyRuleBasic.newBuilder().setPolicyRuleId(request).build();
        final var policyRuleBasic = PolicyRuleBasic.newBuilder().setPolicyRuleId(request).build();


@@ -121,8 +104,6 @@ public class PolicyGatewayImpl implements PolicyGateway {
    }
    }


    @Override
    @Override
    @Counted(name = "policy_getPolicyByServiceId_counter")
    @Timed(name = "policy_getPolicyByServiceId_histogram", unit = MetricUnits.MILLISECONDS)
    public Uni<PolicyRuleServiceList> getPolicyByServiceId(ServiceId request) {
    public Uni<PolicyRuleServiceList> getPolicyByServiceId(ServiceId request) {
        return Uni.createFrom().item(() -> Policy.PolicyRuleServiceList.newBuilder().build());
        return Uni.createFrom().item(() -> Policy.PolicyRuleServiceList.newBuilder().build());
    }
    }
Loading