Commit 36af4113 authored by francisco.moreno.external@atos.net's avatar francisco.moreno.external@atos.net
Browse files

Modifications in the monitoring information model and skeleton of the methods...

Modifications in the monitoring information model and skeleton of the methods in the server and client
parent b32ba540
Loading
Loading
Loading
Loading
+112 −59
Original line number Diff line number Diff line
@@ -20,18 +20,24 @@ import "kpi_sample_types.proto";

service MonitoringService {
  rpc CreateKpi               (KpiDescriptor        )     returns (KpiId            ) {}
  rpc EditKpiDescriptor       (EditedKpiDescriptor  )     returns (context.Empty    ) {}
  rpc DeleteKpi               (KpiId                )     returns (context.Empty    ) {}
  rpc GetKpiDescriptorList    (context.Empty        )     returns (KpiDescriptorList) {}
  rpc CreateBundleKpi         (BundleKpiDescriptor  )     returns (KpiId            ) {}
  rpc GetKpiDescriptor        (KpiId                )     returns (KpiDescriptor    ) {}
  rpc IncludeKpi              (Kpi                  )     returns (context.Empty    ) {}
  rpc MonitorKpi              (MonitorKpiRequest    )     returns (context.Empty    ) {}
  rpc GetStreamKpi            (KpiId                ) returns (stream Kpi       ) {}
  rpc GetInstantKpi           (KpiId                ) returns (Kpi              ) {}
  rpc CreateMetrics           (MetricsDescriptor    ) returns (MetricsId        ) {}
  rpc GetMetricsDescriptor    (MetricsId            ) returns (MetricsDescriptor) {}
  rpc IncludeMetrics          (Metrics              ) returns (context.Empty    ) {}
  rpc MonitorMetrics          (MonitorMetricsRequest) returns (context.Empty    ) {}
  rpc GetStreamMetrics        (MetricsId            ) returns (stream Metrics   ) {}
  rpc GetInstantMetrics       (MetricsId            ) returns (Metrics          ) {}

  rpc QueryKpiData            (KpiQuery             )     returns (KpiList          ) {}
  rpc SubscribeKpi            (SubsDescriptor       )     returns (stream KpiList   ) {}
  rpc GetSubsDescriptor       (SubscriptionID       )     returns (SubsDescriptor   ) {}
  rpc GetSubscriptions        (context.Empty        )     returns (SubsIDList       ) {}
  rpc EditKpiSubscription     (SubsDescriptor       )     returns (context.Empty    ) {}
  rpc CreateKpiAlarm          (AlarmDescriptor      )     returns (AlarmResponse    ) {}
  rpc EditKpiAlarm            (AlarmDescriptor      )     returns (context.Empty    ) {}
  rpc GetAlarms               (context.Empty        )     returns (AlarmIDList      ) {}
  rpc GetAlarmDescriptor      (AlarmID              )     returns (AlarmDescriptor  ) {}
  //  rpc GetStreamKpi            (KpiId                )     returns (stream Kpi       ) {}
  //  rpc GetInstantKpi           (KpiId                )     returns (KpiList          ) {}
}

message KpiDescriptor {
@@ -40,48 +46,60 @@ message KpiDescriptor {
  context.DeviceId device_id                      = 3;
  context.EndPointId endpoint_id                  = 4;
  context.ServiceId  service_id                   = 5;
//  context.SliceId    slice_id    = 6;
  context.SliceId    slice_id                     = 6;
}

message MetricsDescriptor {
  string metrics_description = 1;
  kpi_sample_types.KpiSampleType kpi_sample_type = 2;
  context.DeviceId device_id = 3;
  context.EndPointId endpoint_id = 4;
  context.ServiceId  service_id  = 5;
//  context.SliceId    slice_id    = 6;
message BundleKpiDescriptor {
  string kpi_description                          = 1;
  repeated KpiId kpi_id_list                      = 2;
  kpi_sample_types.KpiSampleType kpi_sample_type  = 3;
  context.DeviceId device_id                      = 4;
  context.EndPointId endpoint_id                  = 5;
  context.ServiceId  service_id                   = 6;
  context.SliceId    slice_id                     = 7;
}

message MonitorKpiRequest{
message EditedKpiDescriptor {
  KpiId kpi_id                                    = 1;
  float sampling_duration_s = 2;
  float sampling_interval_s = 3;
  string kpi_description                          = 2;
  repeated KpiId kpi_id_list                      = 3;
  kpi_sample_types.KpiSampleType kpi_sample_type  = 4;
  context.DeviceId device_id                      = 5;
  context.EndPointId endpoint_id                  = 6;
  context.ServiceId  service_id                   = 7;
  context.SliceId    slice_id                     = 8;
}

message MonitorMetricsRequest{
  MetricsId metrics_id = 1;
  float sampling_duration_s = 2;
  float sampling_interval_s = 3;
message MonitorKpiRequest {
  KpiId kpi_id              = 1;
  float monitoring_window_s = 2;
  float sampling_rate_s     = 3;
  // Pending add field to reflect Available Device Protocols
}

message KpiId {
  context.Uuid kpi_id = 1;
message KpiQuery {
  repeated KpiId kpi_id     = 1;
  float monitoring_window_s = 2;
  float sampling_rate_s     = 3;
  uint32 last_n_samples     = 4;  // used when you want something like "get the last N many samples
  string start_date         = 5;  // used when you want something like "get the samples since X date/time"
  string end_date           = 6;  // used when you want something like "get the samples until X date/time"
  // Pending add field to reflect Available Device Protocols
}

message MetricsId {
message KpiId {
  context.Uuid kpi_id = 1;
}

message Kpi {
  KpiId kpi_id        = 1;
  string timestamp    = 2;
  KpiValue kpi_value = 4;
  KpiValue kpi_value  = 3;
}

message Metrics {
  MetricsId metrics_id = 1;
  string timestamp = 2;
  MetricsValue metrics_value = 4;
message KpiValueRange {
  KpiValue kpiMinValue = 1;
  KpiValue kpiMaxValue = 2;
}

message KpiValue {
@@ -93,19 +111,54 @@ message KpiValue {
  }
}

message MetricsValue {
  oneof value {
    uint32 intVal = 1;
    float floatVal = 2;
    string stringVal = 3;
    bool boolVal = 4;
message KpiList {
    repeated Kpi kpi_list = 1;
}

message KpiDescriptorList {
    repeated KpiDescriptor kpi_descriptor_list = 1;
}

message KpiList {
    repeated Kpi kpi_list = 1;
message SubsDescriptor{
  KpiId kpi_id              = 1;
  float sampling_duration_s = 2;
  float sampling_interval_s = 3;
  string start_date         = 4;  // used when you want something like "get the samples since X date/time"
  string end_date           = 5;  // used when you want something like "get the samples until X date/time"
  // Pending add field to reflect Available Device Protocols
}

message SubscriptionID {
  context.Uuid subs_id = 1;
}

message SubsResponse {
  SubscriptionID subs_id    = 1;
  repeated KpiList kpi_list = 2;
}

message SubsIDList {
    repeated SubscriptionID subs_list = 1;
}

message AlarmDescriptor {
  string alarm_description      = 1;
  string name                   = 2;
  KpiId kpi_id                  = 3;
  KpiValueRange kpi_value_range = 4;
  string timestamp              = 5;
}

message AlarmID{
  context.Uuid alarm_id = 1;
}

message AlarmResponse {
  AlarmID alarm_id    = 1;
  string text         = 2;
  KpiValue kpi_value  = 3;
}

message MetricsList {
    repeated Metrics metrics_list = 1;
message AlarmIDList {
    repeated AlarmID alarm_list = 1;
}
 No newline at end of file
+89 −14
Original line number Diff line number Diff line
@@ -37,6 +37,36 @@ class MonitoringClient:
        LOGGER.info('CreateKpi result: {}'.format(response))
        return response

    def EditKpiDescriptor(self, request):
        LOGGER.info('EditKpiDescriptor: {}'.format(request))
        response = self.server.EditKpiDescriptor(request)
        LOGGER.info('EditKpiDescriptor result: {}'.format(response))
        return response

    def DeleteKpi(self, request):
        LOGGER.info('DeleteKpi: {}'.format(request))
        response = self.server.DeleteKpi(request)
        LOGGER.info('DeleteKpi result: {}'.format(response))
        return response

    def GetKpiDescriptorList(self, request):
        LOGGER.info('GetKpiDescriptorList: {}'.format(request))
        response = self.server.GetKpiDescriptorList(request)
        LOGGER.info('GetKpiDescriptorList result: {}'.format(response))
        return response

    def CreateBundleKpi(self, request):
        LOGGER.info('CreateBundleKpi: {}'.format(request))
        response = self.server.CreateBundleKpi(request)
        LOGGER.info('CreateBundleKpi result: {}'.format(response))
        return response

    def GetKpiDescriptor(self, request):
        LOGGER.info('GetKpiDescriptor: {}'.format(request))
        response = self.server.GetKpiDescriptor(request)
        LOGGER.info('GetKpiDescriptor result: {}'.format(response))
        return response

    def MonitorKpi(self, request):
        LOGGER.info('MonitorKpi: {}'.format(request))
        response = self.server.MonitorKpi(request)
@@ -49,24 +79,69 @@ class MonitoringClient:
        LOGGER.info('IncludeKpi result: {}'.format(response))
        return response

    def GetStreamKpi(self, request):
        LOGGER.info('GetStreamKpi: {}'.format(request))
        response = self.server.GetStreamKpi(request)
        LOGGER.info('GetStreamKpi result: {}'.format(response))
        yield monitoring_pb2.Kpi()
    def QueryKpiData(self, request):
        LOGGER.info('QueryKpiData: {}'.format(request))
        response = self.server.QueryKpiData(request)
        LOGGER.info('QueryKpiData result: {}'.format(response))
        return response

    def GetInstantKpi(self, request):
        LOGGER.info('GetInstantKpi: {}'.format(request))
        response = self.server.GetInstantKpi(request)
        LOGGER.info('GetInstantKpi result: {}'.format(response))
        return monitoring_pb2.Kpi()
    def SubscribeKpi(self, request):
        LOGGER.info('SubscribeKpi: {}'.format(request))
        response = self.server.SubscribeKpi(request)
        LOGGER.info('SubscribeKpi result: {}'.format(response))
        return response

    def GetKpiDescriptor(self, request):
        LOGGER.info('GetKpiDescriptor: {}'.format(request))
        response = self.server.GetKpiDescriptor(request)
        LOGGER.info('GetKpiDescriptor result: {}'.format(response))
    def GetSubsDescriptor(self, request):
        LOGGER.info('GetSubsDescriptor: {}'.format(request))
        response = self.server.GetSubsDescriptor(request)
        LOGGER.info('GetSubsDescriptor result: {}'.format(response))
        return response

    def EditKpiSubscription(self, request):
        LOGGER.info('EditKpiSubscription: {}'.format(request))
        response = self.server.EditKpiSubscription(request)
        LOGGER.info('EditKpiSubscription result: {}'.format(response))
        return response

    def CreateKpiAlarm(self, request):
        LOGGER.info('CreateKpiAlarm: {}'.format(request))
        response = self.server.CreateKpiAlarm(request)
        LOGGER.info('CreateKpiAlarm result: {}'.format(response))
        return response

    def EditKpiAlarm(self, request):
        LOGGER.info('EditKpiAlarm: {}'.format(request))
        response = self.server.EditKpiAlarm(request)
        LOGGER.info('EditKpiAlarm result: {}'.format(response))
        return response

    def GetAlarms(self, request):
        LOGGER.info('GetAlarms: {}'.format(request))
        response = self.server.GetAlarms(request)
        LOGGER.info('GetAlarms result: {}'.format(response))
        return response

    def GetAlarmDescriptor(self, request):
        LOGGER.info('GetAlarmDescriptor: {}'.format(request))
        response = self.server.GetAlarmDescriptor(request)
        LOGGER.info('GetAlarmDescriptor result: {}'.format(response))
        return response


    # def GetStreamKpi(self, request):
    #     LOGGER.info('GetStreamKpi: {}'.format(request))
    #     response = self.server.GetStreamKpi(request)
    #     LOGGER.info('GetStreamKpi result: {}'.format(response))
    #     yield monitoring_pb2.Kpi()
    #
    # def GetInstantKpi(self, request):
    #     LOGGER.info('GetInstantKpi: {}'.format(request))
    #     response = self.server.GetInstantKpi(request)
    #     LOGGER.info('GetInstantKpi result: {}'.format(response))
    #     return monitoring_pb2.Kpi()



if __name__ == '__main__':
    # get port
    port = sys.argv[1] if len(sys.argv) > 1 else '7070'
+13 −0
Original line number Diff line number Diff line
#!/bin/bash -eu

py -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto monitoring.proto
py -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto context.proto
py -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto kpi_sample_types.proto

rm proto/context_pb2_grpc.py
rm proto/kpi_sample_types_pb2_grpc.py

sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/monitoring_pb2.py
sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/monitoring_pb2_grpc.py
sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/context_pb2.py
+1 −1
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ from google.protobuf import symbol_database as _symbol_database
_sym_db = _symbol_database.Default()


import kpi_sample_types_pb2 as kpi__sample__types__pb2
from . import kpi_sample_types_pb2 as kpi__sample__types__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
+676 −203

File changed.

Preview size limit exceeded, changes collapsed.

Loading