Loading src/device/client/DeviceClient.py +8 −0 Original line number Diff line number Diff line import grpc, logging from common.tools.client.RetryDecorator import retry, delay_exponential from device.proto.context_pb2 import Device, DeviceId, Empty from device.proto.device_pb2 import MonitoringSettings from device.proto.device_pb2_grpc import DeviceServiceStub LOGGER = logging.getLogger(__name__) Loading Loading @@ -45,3 +46,10 @@ class DeviceClient: response = self.stub.DeleteDevice(request) LOGGER.debug('DeleteDevice result: {:s}'.format(str(response))) return response @retry(exceptions=set(), max_retries=MAX_RETRIES, delay_function=DELAY_FUNCTION, prepare_method_name='connect') def MonitorDeviceKpi(self, request: MonitoringSettings) -> Empty: LOGGER.debug('MonitorDeviceKpi request: {:s}'.format(str(request))) response = self.stub.MonitorDeviceKpi(request) LOGGER.debug('MonitorDeviceKpi result: {:s}'.format(str(response))) return response src/device/service/DeviceServiceServicerImpl.py +32 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ from common.database.api.Database import Database from common.database.api.context.topology.device.OperationalStatus import OperationalStatus from common.exceptions.ServiceException import ServiceException from device.proto.context_pb2 import DeviceId, Device, Empty from device.proto.device_pb2 import MonitoringSettings from device.proto.device_pb2_grpc import DeviceServiceServicer from device.service.Tools import check_device_id_request, check_device_request Loading Loading @@ -37,6 +38,16 @@ DELETEDEVICE_COUNTER_FAILED = Counter ('device_deletedevice_counter_failed' DELETEDEVICE_HISTOGRAM_DURATION = Histogram('device_deletedevice_histogram_duration', 'Device:DeleteDevice histogram of request duration') MONITORDEVICEKPI_COUNTER_STARTED = Counter ('device_monitordevicekpi_counter_started', 'Device:MonitorDeviceKpi counter of requests started' ) MONITORDEVICEKPI_COUNTER_COMPLETED = Counter ('device_monitordevicekpi_counter_completed', 'Device:MonitorDeviceKpi counter of requests completed') MONITORDEVICEKPI_COUNTER_FAILED = Counter ('device_monitordevicekpi_counter_failed', 'Device:MonitorDeviceKpi counter of requests failed' ) MONITORDEVICEKPI_HISTOGRAM_DURATION = Histogram('device_monitordevicekpi_histogram_duration', 'Device:MonitorDeviceKpi histogram of request duration') class DeviceServiceServicerImpl(DeviceServiceServicer): def __init__(self, database : Database): LOGGER.debug('Creating Servicer...') Loading Loading @@ -172,3 +183,24 @@ class DeviceServiceServicerImpl(DeviceServiceServicer): LOGGER.exception('DeleteDevice exception') DELETEDEVICE_COUNTER_FAILED.inc() grpc_context.abort(grpc.StatusCode.INTERNAL, str(e)) @MONITORDEVICEKPI_HISTOGRAM_DURATION.time() def MonitorDeviceKpi(self, request : MonitoringSettings, grpc_context : grpc.ServicerContext) -> Empty: MONITORDEVICEKPI_COUNTER_STARTED.inc() try: LOGGER.debug('MonitorDeviceKpi request: {}'.format(str(request))) # ---- Implement method ------------------------------------------------------------------------------------ reply = Empty() LOGGER.debug('MonitorDeviceKpi reply: {}'.format(str(reply))) MONITORDEVICEKPI_COUNTER_COMPLETED.inc() return reply except ServiceException as e: LOGGER.exception('MonitorDeviceKpi exception') MONITORDEVICEKPI_COUNTER_FAILED.inc() grpc_context.abort(e.code, e.details) except Exception as e: LOGGER.exception('MonitorDeviceKpi exception') MONITORDEVICEKPI_COUNTER_FAILED.inc() grpc_context.abort(grpc.StatusCode.INTERNAL, str(e)) src/monitoring/service/MonitoringServiceServicerImpl.py +15 −16 Original line number Diff line number Diff line Loading @@ -72,8 +72,8 @@ class MonitoringServiceServicerImpl(monitoring_pb2_grpc.MonitoringServiceService monitor_device_request.sampling_duration_s = request.sampling_duration_s monitor_device_request.sampling_interval_s = request.sampling_interval_s # deviceClient = DeviceClient(address="localhost", port=GRPC_SERVICE_PORT ) # instantiate the client # deviceClient.MonitorDeviceKpi(monitor_device_request) deviceClient = DeviceClient(address="localhost", port=GRPC_SERVICE_PORT ) # instantiate the client deviceClient.MonitorDeviceKpi(monitor_device_request) return context_pb2.Empty() Loading @@ -90,7 +90,6 @@ class MonitoringServiceServicerImpl(monitoring_pb2_grpc.MonitoringServiceService deviceId = kpiDescriptor.device_id.device_uuid.uuid endpointId = kpiDescriptor.endpoint_id.endpoint_uuid.uuid serviceId = kpiDescriptor.service_id.service_uuid.uuid time_stamp = request.timestamp kpi_value = request.kpi_value.intVal Loading Loading
src/device/client/DeviceClient.py +8 −0 Original line number Diff line number Diff line import grpc, logging from common.tools.client.RetryDecorator import retry, delay_exponential from device.proto.context_pb2 import Device, DeviceId, Empty from device.proto.device_pb2 import MonitoringSettings from device.proto.device_pb2_grpc import DeviceServiceStub LOGGER = logging.getLogger(__name__) Loading Loading @@ -45,3 +46,10 @@ class DeviceClient: response = self.stub.DeleteDevice(request) LOGGER.debug('DeleteDevice result: {:s}'.format(str(response))) return response @retry(exceptions=set(), max_retries=MAX_RETRIES, delay_function=DELAY_FUNCTION, prepare_method_name='connect') def MonitorDeviceKpi(self, request: MonitoringSettings) -> Empty: LOGGER.debug('MonitorDeviceKpi request: {:s}'.format(str(request))) response = self.stub.MonitorDeviceKpi(request) LOGGER.debug('MonitorDeviceKpi result: {:s}'.format(str(response))) return response
src/device/service/DeviceServiceServicerImpl.py +32 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ from common.database.api.Database import Database from common.database.api.context.topology.device.OperationalStatus import OperationalStatus from common.exceptions.ServiceException import ServiceException from device.proto.context_pb2 import DeviceId, Device, Empty from device.proto.device_pb2 import MonitoringSettings from device.proto.device_pb2_grpc import DeviceServiceServicer from device.service.Tools import check_device_id_request, check_device_request Loading Loading @@ -37,6 +38,16 @@ DELETEDEVICE_COUNTER_FAILED = Counter ('device_deletedevice_counter_failed' DELETEDEVICE_HISTOGRAM_DURATION = Histogram('device_deletedevice_histogram_duration', 'Device:DeleteDevice histogram of request duration') MONITORDEVICEKPI_COUNTER_STARTED = Counter ('device_monitordevicekpi_counter_started', 'Device:MonitorDeviceKpi counter of requests started' ) MONITORDEVICEKPI_COUNTER_COMPLETED = Counter ('device_monitordevicekpi_counter_completed', 'Device:MonitorDeviceKpi counter of requests completed') MONITORDEVICEKPI_COUNTER_FAILED = Counter ('device_monitordevicekpi_counter_failed', 'Device:MonitorDeviceKpi counter of requests failed' ) MONITORDEVICEKPI_HISTOGRAM_DURATION = Histogram('device_monitordevicekpi_histogram_duration', 'Device:MonitorDeviceKpi histogram of request duration') class DeviceServiceServicerImpl(DeviceServiceServicer): def __init__(self, database : Database): LOGGER.debug('Creating Servicer...') Loading Loading @@ -172,3 +183,24 @@ class DeviceServiceServicerImpl(DeviceServiceServicer): LOGGER.exception('DeleteDevice exception') DELETEDEVICE_COUNTER_FAILED.inc() grpc_context.abort(grpc.StatusCode.INTERNAL, str(e)) @MONITORDEVICEKPI_HISTOGRAM_DURATION.time() def MonitorDeviceKpi(self, request : MonitoringSettings, grpc_context : grpc.ServicerContext) -> Empty: MONITORDEVICEKPI_COUNTER_STARTED.inc() try: LOGGER.debug('MonitorDeviceKpi request: {}'.format(str(request))) # ---- Implement method ------------------------------------------------------------------------------------ reply = Empty() LOGGER.debug('MonitorDeviceKpi reply: {}'.format(str(reply))) MONITORDEVICEKPI_COUNTER_COMPLETED.inc() return reply except ServiceException as e: LOGGER.exception('MonitorDeviceKpi exception') MONITORDEVICEKPI_COUNTER_FAILED.inc() grpc_context.abort(e.code, e.details) except Exception as e: LOGGER.exception('MonitorDeviceKpi exception') MONITORDEVICEKPI_COUNTER_FAILED.inc() grpc_context.abort(grpc.StatusCode.INTERNAL, str(e))
src/monitoring/service/MonitoringServiceServicerImpl.py +15 −16 Original line number Diff line number Diff line Loading @@ -72,8 +72,8 @@ class MonitoringServiceServicerImpl(monitoring_pb2_grpc.MonitoringServiceService monitor_device_request.sampling_duration_s = request.sampling_duration_s monitor_device_request.sampling_interval_s = request.sampling_interval_s # deviceClient = DeviceClient(address="localhost", port=GRPC_SERVICE_PORT ) # instantiate the client # deviceClient.MonitorDeviceKpi(monitor_device_request) deviceClient = DeviceClient(address="localhost", port=GRPC_SERVICE_PORT ) # instantiate the client deviceClient.MonitorDeviceKpi(monitor_device_request) return context_pb2.Empty() Loading @@ -90,7 +90,6 @@ class MonitoringServiceServicerImpl(monitoring_pb2_grpc.MonitoringServiceService deviceId = kpiDescriptor.device_id.device_uuid.uuid endpointId = kpiDescriptor.endpoint_id.endpoint_uuid.uuid serviceId = kpiDescriptor.service_id.service_uuid.uuid time_stamp = request.timestamp kpi_value = request.kpi_value.intVal Loading