Commit 6dc53cb1 authored by Javi Moreno's avatar Javi Moreno
Browse files

Added skeleton of monitoring rpcs and unit tests passed

parent e46e60a8
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -5,15 +5,15 @@ package monitoring;
import "context.proto";

service MonitoringService {
  rpc CreateKpi (KpiRequest) returns (KpiId) {}
  rpc CreateKpi (CreateKpiRequest) returns (KpiId) {}
  rpc IncludeKpi (IncludeKpiRequest) returns (context.Empty) {}
  rpc MonitorKpi (MonitorKpiRequest) returns (context.Empty) {}
  rpc MonitoriDeviceKpi (MonitorKpiRequest) returns (context.Empty) {}
  rpc MonitorDeviceKpi (MonitorDeviceKpiRequest) returns (context.Empty) {}
  rpc GetStreamKpi ( KpiId ) returns (stream Kpi) {}
  rpc GetInstantKpi ( KpiId ) returns (Kpi) {}
}

message KpiRequest{
message CreateKpiRequest{
  string kpiDescription = 1;
  context.DeviceId device_id = 2;
  KpiSampleType kpi_sample_type = 3;
@@ -24,7 +24,13 @@ message KpiRequest{

message MonitorKpiRequest{
  KpiId kpi_id = 1;
  uint32 Connexion_time_s = 2;
  uint32 connexion_time_s = 2;
  uint32 sample_rate_ms = 3;
}

message MonitorDeviceKpiRequest{
  Kpi kpi = 1;
  uint32 connexion_time_s = 2;
  uint32 sample_rate_ms = 3;
}

+17 −5
Original line number Diff line number Diff line
@@ -17,17 +17,29 @@ class MonitoringClient:
        self.channel = grpc.insecure_channel(endpoint)
        self.server = monitoring_pb2_grpc.MonitoringServiceStub(self.channel)

    def IncludeKpi(self, request):
        LOGGER.info('IncludeKpi: {}'.format(request))
        response = self.server.IncludeKpi(request)
        LOGGER.info('IncludeKpi result: {}'.format(response))
    def CreateKpi(self, request):
        LOGGER.info('CreateKpi: {}'.format(request))
        response = self.server.CreateKpi(request)
        LOGGER.info('CreateKpi result: {}'.format(response))
        return monitoring_pb2.KpiId()

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

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

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

    def GetStreamKpi(self, request):
        LOGGER.info('GetStreamKpi: {}'.format(request))
+93 −39
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
  package='monitoring',
  syntax='proto3',
  serialized_options=None,
  serialized_pb=_b('\n\x10monitoring.proto\x12\nmonitoring\x1a\rcontext.proto\"~\n\nKpiRequest\x12\x16\n\x0ekpiDescription\x18\x01 \x01(\t\x12$\n\tdevice_id\x18\x02 \x01(\x0b\x32\x11.context.DeviceId\x12\x32\n\x0fkpi_sample_type\x18\x03 \x01(\x0e\x32\x19.monitoring.KpiSampleType\"h\n\x11MonitorKpiRequest\x12!\n\x06kpi_id\x18\x01 \x01(\x0b\x32\x11.monitoring.KpiId\x12\x18\n\x10\x43onnexion_time_s\x18\x02 \x01(\r\x12\x16\n\x0esample_rate_ms\x18\x03 \x01(\r\"s\n\x11IncludeKpiRequest\x12!\n\x06kpi_id\x18\x01 \x01(\x0b\x32\x11.monitoring.KpiId\x12\x12\n\ntime_stamp\x18\x02 \x01(\t\x12\'\n\tkpi_value\x18\x03 \x01(\x0b\x32\x14.monitoring.KpiValue\"\xd6\x01\n\x03Kpi\x12!\n\x06kpi_id\x18\x01 \x01(\x0b\x32\x11.monitoring.KpiId\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x16\n\x0ekpiDescription\x18\x03 \x01(\t\x12\'\n\tkpi_value\x18\x04 \x01(\x0b\x32\x14.monitoring.KpiValue\x12\x32\n\x0fkpi_sample_type\x18\x05 \x01(\x0e\x32\x19.monitoring.KpiSampleType\x12$\n\tdevice_id\x18\x06 \x01(\x0b\x32\x11.context.DeviceId\"&\n\x05KpiId\x12\x1d\n\x06kpi_id\x18\x01 \x01(\x0b\x32\r.context.Uuid\"T\n\tKpiDevice\x12!\n\x06kpi_id\x18\x01 \x01(\x0b\x32\x11.monitoring.KpiId\x12$\n\tdevice_id\x18\x02 \x01(\x0b\x32\x11.context.DeviceId\"+\n\x07KpiList\x12 \n\x07kpiList\x18\x01 \x03(\x0b\x32\x0f.monitoring.Kpi\"M\n\x08KpiValue\x12\x10\n\x06intVal\x18\x01 \x01(\rH\x00\x12\x13\n\tstringVal\x18\x02 \x01(\tH\x00\x12\x11\n\x07\x62oolVal\x18\x03 \x01(\x08H\x00\x42\x07\n\x05value*x\n\rKpiSampleType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x17\n\x13PACKETS_TRANSMITTED\x10\x65\x12\x14\n\x10PACKETS_RECEIVED\x10\x66\x12\x16\n\x11\x42YTES_TRANSMITTED\x10\xc9\x01\x12\x13\n\x0e\x42YTES_RECEIVED\x10\xca\x01\x32\x80\x03\n\x11MonitoringService\x12\x38\n\tCreateKpi\x12\x16.monitoring.KpiRequest\x1a\x11.monitoring.KpiId\"\x00\x12=\n\nIncludeKpi\x12\x1d.monitoring.IncludeKpiRequest\x1a\x0e.context.Empty\"\x00\x12=\n\nMonitorKpi\x12\x1d.monitoring.MonitorKpiRequest\x1a\x0e.context.Empty\"\x00\x12\x44\n\x11MonitoriDeviceKpi\x12\x1d.monitoring.MonitorKpiRequest\x1a\x0e.context.Empty\"\x00\x12\x36\n\x0cGetStreamKpi\x12\x11.monitoring.KpiId\x1a\x0f.monitoring.Kpi\"\x00\x30\x01\x12\x35\n\rGetInstantKpi\x12\x11.monitoring.KpiId\x1a\x0f.monitoring.Kpi\"\x00\x62\x06proto3')
  serialized_pb=_b('\n\x10monitoring.proto\x12\nmonitoring\x1a\rcontext.proto\"\x84\x01\n\x10\x43reateKpiRequest\x12\x16\n\x0ekpiDescription\x18\x01 \x01(\t\x12$\n\tdevice_id\x18\x02 \x01(\x0b\x32\x11.context.DeviceId\x12\x32\n\x0fkpi_sample_type\x18\x03 \x01(\x0e\x32\x19.monitoring.KpiSampleType\"h\n\x11MonitorKpiRequest\x12!\n\x06kpi_id\x18\x01 \x01(\x0b\x32\x11.monitoring.KpiId\x12\x18\n\x10\x63onnexion_time_s\x18\x02 \x01(\r\x12\x16\n\x0esample_rate_ms\x18\x03 \x01(\r\"i\n\x17MonitorDeviceKpiRequest\x12\x1c\n\x03kpi\x18\x01 \x01(\x0b\x32\x0f.monitoring.Kpi\x12\x18\n\x10\x63onnexion_time_s\x18\x02 \x01(\r\x12\x16\n\x0esample_rate_ms\x18\x03 \x01(\r\"s\n\x11IncludeKpiRequest\x12!\n\x06kpi_id\x18\x01 \x01(\x0b\x32\x11.monitoring.KpiId\x12\x12\n\ntime_stamp\x18\x02 \x01(\t\x12\'\n\tkpi_value\x18\x03 \x01(\x0b\x32\x14.monitoring.KpiValue\"\xd6\x01\n\x03Kpi\x12!\n\x06kpi_id\x18\x01 \x01(\x0b\x32\x11.monitoring.KpiId\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x16\n\x0ekpiDescription\x18\x03 \x01(\t\x12\'\n\tkpi_value\x18\x04 \x01(\x0b\x32\x14.monitoring.KpiValue\x12\x32\n\x0fkpi_sample_type\x18\x05 \x01(\x0e\x32\x19.monitoring.KpiSampleType\x12$\n\tdevice_id\x18\x06 \x01(\x0b\x32\x11.context.DeviceId\"&\n\x05KpiId\x12\x1d\n\x06kpi_id\x18\x01 \x01(\x0b\x32\r.context.Uuid\"T\n\tKpiDevice\x12!\n\x06kpi_id\x18\x01 \x01(\x0b\x32\x11.monitoring.KpiId\x12$\n\tdevice_id\x18\x02 \x01(\x0b\x32\x11.context.DeviceId\"+\n\x07KpiList\x12 \n\x07kpiList\x18\x01 \x03(\x0b\x32\x0f.monitoring.Kpi\"M\n\x08KpiValue\x12\x10\n\x06intVal\x18\x01 \x01(\rH\x00\x12\x13\n\tstringVal\x18\x02 \x01(\tH\x00\x12\x11\n\x07\x62oolVal\x18\x03 \x01(\x08H\x00\x42\x07\n\x05value*x\n\rKpiSampleType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x17\n\x13PACKETS_TRANSMITTED\x10\x65\x12\x14\n\x10PACKETS_RECEIVED\x10\x66\x12\x16\n\x11\x42YTES_TRANSMITTED\x10\xc9\x01\x12\x13\n\x0e\x42YTES_RECEIVED\x10\xca\x01\x32\x8b\x03\n\x11MonitoringService\x12>\n\tCreateKpi\x12\x1c.monitoring.CreateKpiRequest\x1a\x11.monitoring.KpiId\"\x00\x12=\n\nIncludeKpi\x12\x1d.monitoring.IncludeKpiRequest\x1a\x0e.context.Empty\"\x00\x12=\n\nMonitorKpi\x12\x1d.monitoring.MonitorKpiRequest\x1a\x0e.context.Empty\"\x00\x12I\n\x10MonitorDeviceKpi\x12#.monitoring.MonitorDeviceKpiRequest\x1a\x0e.context.Empty\"\x00\x12\x36\n\x0cGetStreamKpi\x12\x11.monitoring.KpiId\x1a\x0f.monitoring.Kpi\"\x00\x30\x01\x12\x35\n\rGetInstantKpi\x12\x11.monitoring.KpiId\x1a\x0f.monitoring.Kpi\"\x00\x62\x06proto3')
  ,
  dependencies=[context__pb2.DESCRIPTOR,])

@@ -54,8 +54,8 @@ _KPISAMPLETYPE = _descriptor.EnumDescriptor(
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=865,
  serialized_end=985,
  serialized_start=979,
  serialized_end=1099,
)
_sym_db.RegisterEnumDescriptor(_KPISAMPLETYPE)

@@ -68,29 +68,29 @@ BYTES_RECEIVED = 202



_KPIREQUEST = _descriptor.Descriptor(
  name='KpiRequest',
  full_name='monitoring.KpiRequest',
_CREATEKPIREQUEST = _descriptor.Descriptor(
  name='CreateKpiRequest',
  full_name='monitoring.CreateKpiRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='kpiDescription', full_name='monitoring.KpiRequest.kpiDescription', index=0,
      name='kpiDescription', full_name='monitoring.CreateKpiRequest.kpiDescription', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='device_id', full_name='monitoring.KpiRequest.device_id', index=1,
      name='device_id', full_name='monitoring.CreateKpiRequest.device_id', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='kpi_sample_type', full_name='monitoring.KpiRequest.kpi_sample_type', index=2,
      name='kpi_sample_type', full_name='monitoring.CreateKpiRequest.kpi_sample_type', index=2,
      number=3, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
@@ -108,8 +108,8 @@ _KPIREQUEST = _descriptor.Descriptor(
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=47,
  serialized_end=173,
  serialized_start=48,
  serialized_end=180,
)


@@ -128,7 +128,7 @@ _MONITORKPIREQUEST = _descriptor.Descriptor(
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='Connexion_time_s', full_name='monitoring.MonitorKpiRequest.Connexion_time_s', index=1,
      name='connexion_time_s', full_name='monitoring.MonitorKpiRequest.connexion_time_s', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
@@ -153,8 +153,53 @@ _MONITORKPIREQUEST = _descriptor.Descriptor(
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=175,
  serialized_end=279,
  serialized_start=182,
  serialized_end=286,
)


_MONITORDEVICEKPIREQUEST = _descriptor.Descriptor(
  name='MonitorDeviceKpiRequest',
  full_name='monitoring.MonitorDeviceKpiRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='kpi', full_name='monitoring.MonitorDeviceKpiRequest.kpi', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='connexion_time_s', full_name='monitoring.MonitorDeviceKpiRequest.connexion_time_s', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='sample_rate_ms', full_name='monitoring.MonitorDeviceKpiRequest.sample_rate_ms', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=288,
  serialized_end=393,
)


@@ -198,8 +243,8 @@ _INCLUDEKPIREQUEST = _descriptor.Descriptor(
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=281,
  serialized_end=396,
  serialized_start=395,
  serialized_end=510,
)


@@ -264,8 +309,8 @@ _KPI = _descriptor.Descriptor(
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=399,
  serialized_end=613,
  serialized_start=513,
  serialized_end=727,
)


@@ -295,8 +340,8 @@ _KPIID = _descriptor.Descriptor(
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=615,
  serialized_end=653,
  serialized_start=729,
  serialized_end=767,
)


@@ -333,8 +378,8 @@ _KPIDEVICE = _descriptor.Descriptor(
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=655,
  serialized_end=739,
  serialized_start=769,
  serialized_end=853,
)


@@ -364,8 +409,8 @@ _KPILIST = _descriptor.Descriptor(
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=741,
  serialized_end=784,
  serialized_start=855,
  serialized_end=898,
)


@@ -412,13 +457,14 @@ _KPIVALUE = _descriptor.Descriptor(
      name='value', full_name='monitoring.KpiValue.value',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=786,
  serialized_end=863,
  serialized_start=900,
  serialized_end=977,
)

_KPIREQUEST.fields_by_name['device_id'].message_type = context__pb2._DEVICEID
_KPIREQUEST.fields_by_name['kpi_sample_type'].enum_type = _KPISAMPLETYPE
_CREATEKPIREQUEST.fields_by_name['device_id'].message_type = context__pb2._DEVICEID
_CREATEKPIREQUEST.fields_by_name['kpi_sample_type'].enum_type = _KPISAMPLETYPE
_MONITORKPIREQUEST.fields_by_name['kpi_id'].message_type = _KPIID
_MONITORDEVICEKPIREQUEST.fields_by_name['kpi'].message_type = _KPI
_INCLUDEKPIREQUEST.fields_by_name['kpi_id'].message_type = _KPIID
_INCLUDEKPIREQUEST.fields_by_name['kpi_value'].message_type = _KPIVALUE
_KPI.fields_by_name['kpi_id'].message_type = _KPIID
@@ -438,8 +484,9 @@ _KPIVALUE.fields_by_name['stringVal'].containing_oneof = _KPIVALUE.oneofs_by_nam
_KPIVALUE.oneofs_by_name['value'].fields.append(
  _KPIVALUE.fields_by_name['boolVal'])
_KPIVALUE.fields_by_name['boolVal'].containing_oneof = _KPIVALUE.oneofs_by_name['value']
DESCRIPTOR.message_types_by_name['KpiRequest'] = _KPIREQUEST
DESCRIPTOR.message_types_by_name['CreateKpiRequest'] = _CREATEKPIREQUEST
DESCRIPTOR.message_types_by_name['MonitorKpiRequest'] = _MONITORKPIREQUEST
DESCRIPTOR.message_types_by_name['MonitorDeviceKpiRequest'] = _MONITORDEVICEKPIREQUEST
DESCRIPTOR.message_types_by_name['IncludeKpiRequest'] = _INCLUDEKPIREQUEST
DESCRIPTOR.message_types_by_name['Kpi'] = _KPI
DESCRIPTOR.message_types_by_name['KpiId'] = _KPIID
@@ -449,12 +496,12 @@ DESCRIPTOR.message_types_by_name['KpiValue'] = _KPIVALUE
DESCRIPTOR.enum_types_by_name['KpiSampleType'] = _KPISAMPLETYPE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

KpiRequest = _reflection.GeneratedProtocolMessageType('KpiRequest', (_message.Message,), dict(
  DESCRIPTOR = _KPIREQUEST,
CreateKpiRequest = _reflection.GeneratedProtocolMessageType('CreateKpiRequest', (_message.Message,), dict(
  DESCRIPTOR = _CREATEKPIREQUEST,
  __module__ = 'monitoring_pb2'
  # @@protoc_insertion_point(class_scope:monitoring.KpiRequest)
  # @@protoc_insertion_point(class_scope:monitoring.CreateKpiRequest)
  ))
_sym_db.RegisterMessage(KpiRequest)
_sym_db.RegisterMessage(CreateKpiRequest)

MonitorKpiRequest = _reflection.GeneratedProtocolMessageType('MonitorKpiRequest', (_message.Message,), dict(
  DESCRIPTOR = _MONITORKPIREQUEST,
@@ -463,6 +510,13 @@ MonitorKpiRequest = _reflection.GeneratedProtocolMessageType('MonitorKpiRequest'
  ))
_sym_db.RegisterMessage(MonitorKpiRequest)

MonitorDeviceKpiRequest = _reflection.GeneratedProtocolMessageType('MonitorDeviceKpiRequest', (_message.Message,), dict(
  DESCRIPTOR = _MONITORDEVICEKPIREQUEST,
  __module__ = 'monitoring_pb2'
  # @@protoc_insertion_point(class_scope:monitoring.MonitorDeviceKpiRequest)
  ))
_sym_db.RegisterMessage(MonitorDeviceKpiRequest)

IncludeKpiRequest = _reflection.GeneratedProtocolMessageType('IncludeKpiRequest', (_message.Message,), dict(
  DESCRIPTOR = _INCLUDEKPIREQUEST,
  __module__ = 'monitoring_pb2'
@@ -513,15 +567,15 @@ _MONITORINGSERVICE = _descriptor.ServiceDescriptor(
  file=DESCRIPTOR,
  index=0,
  serialized_options=None,
  serialized_start=988,
  serialized_end=1372,
  serialized_start=1102,
  serialized_end=1497,
  methods=[
  _descriptor.MethodDescriptor(
    name='CreateKpi',
    full_name='monitoring.MonitoringService.CreateKpi',
    index=0,
    containing_service=None,
    input_type=_KPIREQUEST,
    input_type=_CREATEKPIREQUEST,
    output_type=_KPIID,
    serialized_options=None,
  ),
@@ -544,11 +598,11 @@ _MONITORINGSERVICE = _descriptor.ServiceDescriptor(
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='MonitoriDeviceKpi',
    full_name='monitoring.MonitoringService.MonitoriDeviceKpi',
    name='MonitorDeviceKpi',
    full_name='monitoring.MonitoringService.MonitorDeviceKpi',
    index=3,
    containing_service=None,
    input_type=_MONITORKPIREQUEST,
    input_type=_MONITORDEVICEKPIREQUEST,
    output_type=context__pb2._EMPTY,
    serialized_options=None,
  ),
+9 −9
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@ class MonitoringServiceStub(object):
    """
    self.CreateKpi = channel.unary_unary(
        '/monitoring.MonitoringService/CreateKpi',
        request_serializer=monitoring__pb2.KpiRequest.SerializeToString,
        request_serializer=monitoring__pb2.CreateKpiRequest.SerializeToString,
        response_deserializer=monitoring__pb2.KpiId.FromString,
        )
    self.IncludeKpi = channel.unary_unary(
@@ -30,9 +30,9 @@ class MonitoringServiceStub(object):
        request_serializer=monitoring__pb2.MonitorKpiRequest.SerializeToString,
        response_deserializer=context__pb2.Empty.FromString,
        )
    self.MonitoriDeviceKpi = channel.unary_unary(
        '/monitoring.MonitoringService/MonitoriDeviceKpi',
        request_serializer=monitoring__pb2.MonitorKpiRequest.SerializeToString,
    self.MonitorDeviceKpi = channel.unary_unary(
        '/monitoring.MonitoringService/MonitorDeviceKpi',
        request_serializer=monitoring__pb2.MonitorDeviceKpiRequest.SerializeToString,
        response_deserializer=context__pb2.Empty.FromString,
        )
    self.GetStreamKpi = channel.unary_stream(
@@ -72,7 +72,7 @@ class MonitoringServiceServicer(object):
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def MonitoriDeviceKpi(self, request, context):
  def MonitorDeviceKpi(self, request, context):
    # missing associated documentation comment in .proto file
    pass
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -98,7 +98,7 @@ def add_MonitoringServiceServicer_to_server(servicer, server):
  rpc_method_handlers = {
      'CreateKpi': grpc.unary_unary_rpc_method_handler(
          servicer.CreateKpi,
          request_deserializer=monitoring__pb2.KpiRequest.FromString,
          request_deserializer=monitoring__pb2.CreateKpiRequest.FromString,
          response_serializer=monitoring__pb2.KpiId.SerializeToString,
      ),
      'IncludeKpi': grpc.unary_unary_rpc_method_handler(
@@ -111,9 +111,9 @@ def add_MonitoringServiceServicer_to_server(servicer, server):
          request_deserializer=monitoring__pb2.MonitorKpiRequest.FromString,
          response_serializer=context__pb2.Empty.SerializeToString,
      ),
      'MonitoriDeviceKpi': grpc.unary_unary_rpc_method_handler(
          servicer.MonitoriDeviceKpi,
          request_deserializer=monitoring__pb2.MonitorKpiRequest.FromString,
      'MonitorDeviceKpi': grpc.unary_unary_rpc_method_handler(
          servicer.MonitorDeviceKpi,
          request_deserializer=monitoring__pb2.MonitorDeviceKpiRequest.FromString,
          response_serializer=context__pb2.Empty.SerializeToString,
      ),
      'GetStreamKpi': grpc.unary_stream_rpc_method_handler(
+59 −8
Original line number Diff line number Diff line
@@ -2,6 +2,9 @@

import os
from concurrent import futures

from src.monitoring.client import monitoring_client
from src.monitoring.client.monitoring_client import MonitoringClient
from src.monitoring.proto import context_pb2
import grpc

@@ -25,6 +28,7 @@ import threading
from prometheus_client import start_http_server, Summary
from prometheus_client import Counter, Gauge

SERVER_ADDRESS = SERVER_ADDRESS = '127.0.0.1'
PORT = 7070

MONITORING_GETINSTANTKPI_REQUEST_TIME = Summary('monitoring_getinstantkpi_processing_seconds', 'Time spent processing monitoring instant kpi request')
@@ -35,16 +39,56 @@ class MonitoringServiceServicerImpl(monitoring_pb2_grpc.MonitoringServiceService
    def __init__(self):
        LOGGER.info('Init monitoringService')

    def IncludeKpi(self, request, context):
        # receives monitoring.KpiRequest returns monitoring.KpiId
        LOGGER.info('IncludeKpi')
        MONITORING_INCLUDEKPI_COUNTER.inc()
        return monitoring_pb2.KpiId()
    # CreateKpi (CreateKpiRequest) returns (KpiId) {}
    def CreateKpi(self, request : monitoring_pb2.CreateKpiRequest, context) -> monitoring_pb2.KpiId :
        LOGGER.info('CreateKpi')
        # Here the code to create a sqlite query to crete a KPI and return a KpiID

        # Change these lines by the KpiID assigned by the DB
        kpi_id = monitoring_pb2.KpiId()
        kpi_id.kpi_id.uuid = 'KPIID0000'

        # Create KPI object with the request info and the KpiID
        kpi = monitoring_pb2.Kpi()
        kpi.device_id.device_id.uuid = request.device_id.device_id.uuid
        kpi.kpi_sample_type = request.kpi_sample_type
        kpi.kpi_id.kpi_id.uuid = kpi_id.kpi_id.uuid

        return kpi_id

    # rpc MonitorKpi (MonitorKpiRequest) returns (context.Empty) {}
    def MonitorKpi ( self, request : monitoring_pb2.MonitorKpiRequest, context) -> context_pb2.Empty:

    def MonitorKpi ( self, request, context):
        # receives monitoring.KpiId returns monitoring.Kpi
        LOGGER.info('MonitorKpi')
        return monitoring_pb2.Kpi()

        # Creates the request to send to the device service
        monitor_device_request = monitoring_pb2.MonitorDeviceKpiRequest()
        kpi = get_Kpi(request.kpi_id)

        monitor_device_request.kpi.kpi_id.kpi_id.uuid  = kpi.kpi_id.kpi_id.uuid

        monitor_device_request.connexion_time_s = request.connexion_time_s
        monitor_device_request.sample_rate_ms = request.sample_rate_ms

        client = MonitoringClient(server=SERVER_ADDRESS, port=PORT)
        client.MonitorDeviceKpi(monitor_device_request)

        return context_pb2.Empty()

    # rpc MonitorDeviceKpi(MonitorDeviceKpiRequest) returns(context.Empty) {}
    def MonitorDeviceKpi ( self, request : monitoring_pb2.MonitorDeviceKpiRequest, context) -> context_pb2.Empty:

        # Some code device to perform its actions

        LOGGER.info('MonitorDeviceKpi')
        return context_pb2.Empty()

    # rpc IncludeKpi(IncludeKpiRequest)  returns(context.Empty)    {}
    def IncludeKpi(self, request : monitoring_pb2.IncludeKpiRequest, context) -> context_pb2.Empty:

        LOGGER.info('IncludeKpi')
        return context_pb2.Empty()


    def GetStreamKpi ( self, request, context):
        # receives monitoring.KpiId returns stream monitoring.Kpi
@@ -81,6 +125,13 @@ def start_server(address='[::]', port=PORT, max_workers=10):
def stop_server(serverGRPC, grace_period=0):
    serverGRPC.stop(grace_period)

def get_Kpi(kpiId):
    LOGGER.info('getting Kpi by KpyID')
    # Change these lines with the correct ones after DB query
    kpi = monitoring_pb2.Kpi()
    kpi.kpi_id.kpi_id.uuid = kpiId.kpi_id.uuid
    return kpi

if __name__ == '__main__':
    LOGGER.info('initializing monitoringService')
    port = os.environ.get('PORT', str(PORT))
Loading