Commit 5700f571 authored by Javi Moreno's avatar Javi Moreno
Browse files

Upgrade monitoring data model in .proto file and adpat some part of the code accordingly

parent 22fa4800
Loading
Loading
Loading
Loading
+24 −5
Original line number Diff line number Diff line
@@ -5,17 +5,31 @@ package monitoring;
import "context.proto";

service MonitoringService {
  rpc IncludeKpi (Kpi) returns (context.Empty) {}
  rpc MonitorKpi ( KpiDevice ) returns (context.Empty) {}
  rpc IncludeKpi (KpiRequest) returns (KpiId) {}
  rpc MonitorKpi ( KpiId ) returns (Kpi) {}
  rpc GetStreamKpi ( KpiId ) returns (stream Kpi) {}
  rpc GetInstantKpi ( KpiId ) returns (Kpi) {}
}

message KpiRequest{
  string kpiDescription = 1;
  context.DeviceId device_id = 2;
  KpiSampleType kpi_sample_type = 3;
//  context.EndpointId endpoint_id = 4;  // others might be added
//  context.ServiceId  service_id  = 5;  // for monitoring other
//  context.SliceId    slice_id    = 6;  // entities
}

message Kpi {
  KpiId kpi_id = 1;
  string timestamp = 2;
  string kpiDescription = 3;
  KpiValue kpi_value = 4;
  KpiSampleType kpi_sample_type = 5;
  context.DeviceId device_id = 6;
//  context.EndpointId endpoint_id = 7;  // others might be added
//  context.ServiceId  service_id  = 8;  // for monitoring other
//  context.SliceId    slice_id    = 9;  // entities
}

message KpiId {
@@ -27,13 +41,18 @@ message KpiDevice {
  context.DeviceId device_id = 2;
}


enum KpiSampleType {
    UNKNOWN = 0;
    PACKETS_TRANSMITTED = 101;  // others might be added for
    PACKETS_RECEIVED    = 102;  // packet, optical, radio,...
    BYTES_TRANSMITTED   = 201;
    BYTES_RECEIVED      = 202;
}

message KpiList {
  repeated Kpi kpiList = 1;
}


message KpiValue {
  oneof value {
    uint32 intVal = 1;
+9 −8
Original line number Diff line number Diff line
@@ -21,25 +21,25 @@ class MonitoringClient:
        LOGGER.info('IncludeKpi: {}'.format(request))
        response = self.server.IncludeKpi(request)
        LOGGER.info('IncludeKpi result: {}'.format(response))
        return context_pb2.Empty()
        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 context_pb2.Empty()
        return monitoring_pb2.Kpi()

    def GetStreamKpi(self, request):
        LOGGER.info('GetStreamKpi: {}'.format(request))
        response = self.server.GetStreamKpi(request)
        LOGGER.info('GetStreamKpi result: {}'.format(response))
        yield 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 response
        return monitoring_pb2.Kpi()


if __name__ == '__main__':
@@ -47,10 +47,11 @@ if __name__ == '__main__':
    port = sys.argv[1] if len(sys.argv) > 1 else '7070'

    # form request
    kpi = monitoring_pb2.Kpi()
    kpi.kpi_id.kpi_id = 'KPIID0000' # pylint: disable=maybe-no-member
    kpi.kpiDescription = 'KPI Desc'
    kpi_request = monitoring_pb2.KpiRequest()
    kpi_request.device_id.device_id = 'KPIID0000' # pylint: disable=maybe-no-member
    kpi_request.kpiDescription = 'KPI Description'
    kpi_request.kpi_sample_type = monitoring_pb2.KpiSampleType.PACKETS_TRANSMITTED

    # make call to server
    client = MonitoringClient(port=port)
    response=client.IncludeKpi(kpi)
    response=client.IncludeKpi(kpi_request)
+130 −17
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
@@ -20,13 +21,98 @@ DESCRIPTOR = _descriptor.FileDescriptor(
  package='monitoring',
  syntax='proto3',
  serialized_options=None,
  serialized_pb=_b('\n\x10monitoring.proto\x12\nmonitoring\x1a\rcontext.proto\"|\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\"&\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\x05value2\xea\x01\n\x11MonitoringService\x12/\n\nIncludeKpi\x12\x0f.monitoring.Kpi\x1a\x0e.context.Empty\"\x00\x12\x35\n\nMonitorKpi\x12\x15.monitoring.KpiDevice\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\"~\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\"\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\xf1\x01\n\x11MonitoringService\x12\x39\n\nIncludeKpi\x12\x16.monitoring.KpiRequest\x1a\x11.monitoring.KpiId\"\x00\x12\x32\n\nMonitorKpi\x12\x11.monitoring.KpiId\x1a\x0f.monitoring.Kpi\"\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,])

_KPISAMPLETYPE = _descriptor.EnumDescriptor(
  name='KpiSampleType',
  full_name='monitoring.KpiSampleType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PACKETS_TRANSMITTED', index=1, number=101,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PACKETS_RECEIVED', index=2, number=102,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BYTES_TRANSMITTED', index=3, number=201,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BYTES_RECEIVED', index=4, number=202,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=642,
  serialized_end=762,
)
_sym_db.RegisterEnumDescriptor(_KPISAMPLETYPE)

KpiSampleType = enum_type_wrapper.EnumTypeWrapper(_KPISAMPLETYPE)
UNKNOWN = 0
PACKETS_TRANSMITTED = 101
PACKETS_RECEIVED = 102
BYTES_TRANSMITTED = 201
BYTES_RECEIVED = 202



_KPIREQUEST = _descriptor.Descriptor(
  name='KpiRequest',
  full_name='monitoring.KpiRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='kpiDescription', full_name='monitoring.KpiRequest.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,
      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,
      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,
      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=47,
  serialized_end=173,
)


_KPI = _descriptor.Descriptor(
  name='Kpi',
  full_name='monitoring.Kpi',
@@ -62,6 +148,20 @@ _KPI = _descriptor.Descriptor(
      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.Kpi.kpi_sample_type', index=4,
      number=5, type=14, cpp_type=8, 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='device_id', full_name='monitoring.Kpi.device_id', index=5,
      number=6, 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),
  ],
  extensions=[
  ],
@@ -74,8 +174,8 @@ _KPI = _descriptor.Descriptor(
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=47,
  serialized_end=171,
  serialized_start=176,
  serialized_end=390,
)


@@ -105,8 +205,8 @@ _KPIID = _descriptor.Descriptor(
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=173,
  serialized_end=211,
  serialized_start=392,
  serialized_end=430,
)


@@ -143,8 +243,8 @@ _KPIDEVICE = _descriptor.Descriptor(
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=213,
  serialized_end=297,
  serialized_start=432,
  serialized_end=516,
)


@@ -174,8 +274,8 @@ _KPILIST = _descriptor.Descriptor(
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=299,
  serialized_end=342,
  serialized_start=518,
  serialized_end=561,
)


@@ -222,12 +322,16 @@ _KPIVALUE = _descriptor.Descriptor(
      name='value', full_name='monitoring.KpiValue.value',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=344,
  serialized_end=421,
  serialized_start=563,
  serialized_end=640,
)

_KPIREQUEST.fields_by_name['device_id'].message_type = context__pb2._DEVICEID
_KPIREQUEST.fields_by_name['kpi_sample_type'].enum_type = _KPISAMPLETYPE
_KPI.fields_by_name['kpi_id'].message_type = _KPIID
_KPI.fields_by_name['kpi_value'].message_type = _KPIVALUE
_KPI.fields_by_name['kpi_sample_type'].enum_type = _KPISAMPLETYPE
_KPI.fields_by_name['device_id'].message_type = context__pb2._DEVICEID
_KPIID.fields_by_name['kpi_id'].message_type = context__pb2._UUID
_KPIDEVICE.fields_by_name['kpi_id'].message_type = _KPIID
_KPIDEVICE.fields_by_name['device_id'].message_type = context__pb2._DEVICEID
@@ -241,13 +345,22 @@ _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['Kpi'] = _KPI
DESCRIPTOR.message_types_by_name['KpiId'] = _KPIID
DESCRIPTOR.message_types_by_name['KpiDevice'] = _KPIDEVICE
DESCRIPTOR.message_types_by_name['KpiList'] = _KPILIST
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,
  __module__ = 'monitoring_pb2'
  # @@protoc_insertion_point(class_scope:monitoring.KpiRequest)
  ))
_sym_db.RegisterMessage(KpiRequest)

Kpi = _reflection.GeneratedProtocolMessageType('Kpi', (_message.Message,), dict(
  DESCRIPTOR = _KPI,
  __module__ = 'monitoring_pb2'
@@ -291,16 +404,16 @@ _MONITORINGSERVICE = _descriptor.ServiceDescriptor(
  file=DESCRIPTOR,
  index=0,
  serialized_options=None,
  serialized_start=424,
  serialized_end=658,
  serialized_start=765,
  serialized_end=1006,
  methods=[
  _descriptor.MethodDescriptor(
    name='IncludeKpi',
    full_name='monitoring.MonitoringService.IncludeKpi',
    index=0,
    containing_service=None,
    input_type=_KPI,
    output_type=context__pb2._EMPTY,
    input_type=_KPIREQUEST,
    output_type=_KPIID,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
@@ -308,8 +421,8 @@ _MONITORINGSERVICE = _descriptor.ServiceDescriptor(
    full_name='monitoring.MonitoringService.MonitorKpi',
    index=1,
    containing_service=None,
    input_type=_KPIDEVICE,
    output_type=context__pb2._EMPTY,
    input_type=_KPIID,
    output_type=_KPI,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
+8 −9
Original line number Diff line number Diff line
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
import grpc

from . import context_pb2 as context__pb2
from . import monitoring_pb2 as monitoring__pb2


@@ -17,13 +16,13 @@ class MonitoringServiceStub(object):
    """
    self.IncludeKpi = channel.unary_unary(
        '/monitoring.MonitoringService/IncludeKpi',
        request_serializer=monitoring__pb2.Kpi.SerializeToString,
        response_deserializer=context__pb2.Empty.FromString,
        request_serializer=monitoring__pb2.KpiRequest.SerializeToString,
        response_deserializer=monitoring__pb2.KpiId.FromString,
        )
    self.MonitorKpi = channel.unary_unary(
        '/monitoring.MonitoringService/MonitorKpi',
        request_serializer=monitoring__pb2.KpiDevice.SerializeToString,
        response_deserializer=context__pb2.Empty.FromString,
        request_serializer=monitoring__pb2.KpiId.SerializeToString,
        response_deserializer=monitoring__pb2.Kpi.FromString,
        )
    self.GetStreamKpi = channel.unary_stream(
        '/monitoring.MonitoringService/GetStreamKpi',
@@ -74,13 +73,13 @@ def add_MonitoringServiceServicer_to_server(servicer, server):
  rpc_method_handlers = {
      'IncludeKpi': grpc.unary_unary_rpc_method_handler(
          servicer.IncludeKpi,
          request_deserializer=monitoring__pb2.Kpi.FromString,
          response_serializer=context__pb2.Empty.SerializeToString,
          request_deserializer=monitoring__pb2.KpiRequest.FromString,
          response_serializer=monitoring__pb2.KpiId.SerializeToString,
      ),
      'MonitorKpi': grpc.unary_unary_rpc_method_handler(
          servicer.MonitorKpi,
          request_deserializer=monitoring__pb2.KpiDevice.FromString,
          response_serializer=context__pb2.Empty.SerializeToString,
          request_deserializer=monitoring__pb2.KpiId.FromString,
          response_serializer=monitoring__pb2.Kpi.SerializeToString,
      ),
      'GetStreamKpi': grpc.unary_stream_rpc_method_handler(
          servicer.GetStreamKpi,
+5 −7
Original line number Diff line number Diff line
@@ -35,23 +35,21 @@ class MonitoringServiceServicerImpl(monitoring_pb2_grpc.MonitoringServiceService
    def __init__(self):
        LOGGER.info('Init monitoringService')


    def IncludeKpi(self, request, context):
        # receives monitoring.KPI returns context.Empty
        # receives monitoring.KpiRequest returns monitoring.KpiId
        LOGGER.info('IncludeKpi')
        MONITORING_INCLUDEKPI_COUNTER.inc()
        return context_pb2.Empty()

        return monitoring_pb2.KpiId()

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

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

    @MONITORING_GETINSTANTKPI_REQUEST_TIME.time()
    def GetInstantKpi ( self, request, context):
Loading