Skip to content
Snippets Groups Projects
Commit 1aae174c authored by francisco.moreno.external@atos.net's avatar francisco.moreno.external@atos.net
Browse files

Update monitoring.proto Information Model

parent 484f1bc5
No related branches found
No related tags found
1 merge request!54Release 2.0.0
......@@ -19,22 +19,18 @@ import "context.proto";
import "kpi_sample_types.proto";
service MonitoringService {
rpc CreateKpi (KpiDescriptor ) returns (KpiId ) {}
rpc EditKpiDescriptor (EditedKpiDescriptor) returns (context.Empty ) {}
rpc SetKpi (KpiDescriptor ) returns (KpiId ) {}
rpc DeleteKpi (KpiId ) returns (context.Empty ) {}
rpc GetKpiDescriptor (KpiId ) returns (KpiDescriptor ) {}
rpc GetKpiDescriptorList (context.Empty ) returns (KpiDescriptorList ) {}
rpc CreateBundleKpi (BundleKpiDescriptor) returns (KpiId ) {}
rpc IncludeKpi (Kpi ) returns (context.Empty ) {}
rpc MonitorKpi (MonitorKpiRequest ) returns (context.Empty ) {}
rpc QueryKpiData (KpiQuery ) returns (KpiList ) {}
rpc SubscribeKpi (SubsDescriptor ) returns (stream KpiList ) {}
rpc SetKpiSubscription (SubsDescriptor ) returns (stream KpiList ) {}
rpc GetSubsDescriptor (SubscriptionID ) returns (SubsDescriptor ) {}
rpc GetSubscriptions (context.Empty ) returns (SubsIDList ) {}
rpc DeleteSubscription (SubscriptionID ) returns (context.Empty ) {}
rpc EditKpiSubscription (SubsDescriptor ) returns (context.Empty ) {}
rpc CreateKpiAlarm (AlarmDescriptor ) returns (AlarmID ) {}
rpc EditKpiAlarm (AlarmDescriptor ) returns (context.Empty ) {}
rpc SetKpiAlarm (AlarmDescriptor ) returns (AlarmID ) {}
rpc GetAlarms (context.Empty ) returns (AlarmIDList ) {}
rpc GetAlarmDescriptor (AlarmID ) returns (AlarmDescriptor ) {}
rpc GetAlarmResponseStream(AlarmSubscription ) returns (stream AlarmResponse) {}
......@@ -44,25 +40,6 @@ service MonitoringService {
}
message KpiDescriptor {
string kpi_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 EditedKpiDescriptor {
KpiId kpi_id = 1;
string kpi_description = 2;
repeated KpiId kpi_id_list = 3;
......@@ -101,9 +78,11 @@ message Kpi {
}
message KpiValueRange {
KpiValue kpiMinValue = 1;
KpiValue kpiMaxValue = 2;
bool inRange = 3; // by default False
KpiValue kpiMinValue = 1;
KpiValue kpiMaxValue = 2;
bool inRange = 3; // by default True
bool includeMinValue = 4; // False is outside the interval
bool includeMaxValue = 5; // False is outside the interval
}
message KpiValue {
......@@ -118,6 +97,7 @@ message KpiValue {
}
}
message KpiList {
repeated Kpi kpi_list = 1;
}
......@@ -127,11 +107,12 @@ message KpiDescriptorList {
}
message SubsDescriptor{
KpiId kpi_id = 1;
float sampling_duration_s = 2;
float sampling_interval_s = 3;
context.Timestamp start_timestamp = 4; // used when you want something like "get the samples since X date/time"
context.Timestamp end_timestamp = 5; // used when you want something like "get the samples until X date/time"
SubscriptionID subs_id = 1;
KpiId kpi_id = 2;
float sampling_duration_s = 3;
float sampling_interval_s = 4;
context.Timestamp start_timestamp = 5; // used when you want something like "get the samples since X date/time"
context.Timestamp end_timestamp = 6; // used when you want something like "get the samples until X date/time"
// Pending add field to reflect Available Device Protocols
}
......@@ -149,11 +130,12 @@ message SubsIDList {
}
message AlarmDescriptor {
string alarm_description = 1;
string name = 2;
KpiId kpi_id = 3;
KpiValueRange kpi_value_range = 4;
context.Timestamp timestamp = 5;
AlarmID alarm_id = 1;
string alarm_description = 2;
string name = 3;
repeated KpiId kpi_id = 4;
repeated KpiValueRange kpi_value_range = 5;
context.Timestamp timestamp = 6;
}
message AlarmID{
......
......@@ -20,8 +20,8 @@ from common.Settings import get_service_host, get_service_port_grpc
from common.tools.client.RetryDecorator import retry, delay_exponential
from common.tools.grpc.Tools import grpc_message_to_json_string
from common.proto.context_pb2 import Empty
from common.proto.monitoring_pb2 import Kpi, KpiDescriptor, KpiId, MonitorKpiRequest, EditedKpiDescriptor, \
KpiDescriptorList, BundleKpiDescriptor, KpiQuery, KpiList, SubsDescriptor, SubscriptionID, SubsIDList, \
from common.proto.monitoring_pb2 import Kpi, KpiDescriptor, KpiId, MonitorKpiRequest, \
KpiDescriptorList, KpiQuery, KpiList, SubsDescriptor, SubscriptionID, SubsIDList, \
AlarmDescriptor, AlarmID, AlarmIDList, AlarmResponse, AlarmSubscription
from common.proto.monitoring_pb2_grpc import MonitoringServiceStub
......@@ -51,17 +51,10 @@ class MonitoringClient:
self.stub = None
@RETRY_DECORATOR
def CreateKpi(self, request : KpiDescriptor) -> KpiId:
LOGGER.debug('CreateKpi: {:s}'.format(grpc_message_to_json_string(request)))
response = self.stub.CreateKpi(request)
LOGGER.debug('CreateKpi result: {:s}'.format(grpc_message_to_json_string(response)))
return response
@RETRY_DECORATOR
def EditKpiDescriptor(self, request : EditedKpiDescriptor) -> Empty:
LOGGER.debug('EditKpiDescriptor: {:s}'.format(grpc_message_to_json_string(request)))
response = self.stub.EditKpiDescriptor(request)
LOGGER.info('EditKpiDescriptor result: {:s}'.format(grpc_message_to_json_string(response)))
def SetKpi(self, request : KpiDescriptor) -> KpiId:
LOGGER.debug('SetKpi: {:s}'.format(grpc_message_to_json_string(request)))
response = self.stub.SetKpi(request)
LOGGER.debug('SetKpi result: {:s}'.format(grpc_message_to_json_string(response)))
return response
@RETRY_DECORATOR
......@@ -85,13 +78,6 @@ class MonitoringClient:
LOGGER.debug('GetKpiDescriptorList result: {:s}'.format(grpc_message_to_json_string(response)))
return response
@RETRY_DECORATOR
def CreateBundleKpi(self, request : BundleKpiDescriptor) -> KpiId:
LOGGER.debug('CreateBundleKpi: {:s}'.format(grpc_message_to_json_string(request)))
response = self.stub.CreateBundleKpi(request)
LOGGER.debug('CreateBundleKpi result: {:s}'.format(grpc_message_to_json_string(response)))
return response
@RETRY_DECORATOR
def IncludeKpi(self, request : Kpi) -> Empty:
LOGGER.debug('IncludeKpi: {:s}'.format(grpc_message_to_json_string(request)))
......@@ -142,24 +128,10 @@ class MonitoringClient:
return response
@RETRY_DECORATOR
def EditKpiSubscription(self, request : SubsDescriptor) -> Empty:
LOGGER.debug('EditKpiSubscription: {:s}'.format(grpc_message_to_json_string(request)))
response = self.stub.GetSubscriptions(request)
LOGGER.debug('EditKpiSubscription result: {:s}'.format(grpc_message_to_json_string(response)))
return response
@RETRY_DECORATOR
def CreateKpiAlarm(self, request : AlarmDescriptor) -> AlarmID:
LOGGER.debug('CreateKpiAlarm: {:s}'.format(grpc_message_to_json_string(request)))
response = self.stub.CreateKpiAlarm(request)
LOGGER.debug('CreateKpiAlarm result: {:s}'.format(grpc_message_to_json_string(response)))
return response
@RETRY_DECORATOR
def EditKpiAlarm(self, request : AlarmDescriptor) -> Empty:
LOGGER.debug('EditKpiAlarm: {:s}'.format(grpc_message_to_json_string(request)))
response = self.stub.EditKpiAlarm(request)
LOGGER.debug('EditKpiAlarm result: {:s}'.format(grpc_message_to_json_string(response)))
def SetKpiAlarm(self, request : AlarmDescriptor) -> AlarmID:
LOGGER.debug('SetKpiAlarm: {:s}'.format(grpc_message_to_json_string(request)))
response = self.stub.SetKpiAlarm(request)
LOGGER.debug('SetKpiAlarm result: {:s}'.format(grpc_message_to_json_string(response)))
return response
@RETRY_DECORATOR
......
......@@ -23,8 +23,8 @@ from common.proto.device_pb2 import MonitoringSettings
from common.proto.kpi_sample_types_pb2 import KpiSampleType
from common.proto.monitoring_pb2_grpc import MonitoringServiceServicer
from common.proto.monitoring_pb2 import AlarmResponse, AlarmDescriptor, AlarmIDList, SubsIDList, KpiId, \
KpiDescriptor, KpiList, KpiQuery, SubsDescriptor, SubscriptionID, AlarmID, EditedKpiDescriptor, KpiDescriptorList, \
BundleKpiDescriptor, MonitorKpiRequest, Kpi, AlarmSubscription
KpiDescriptor, KpiList, KpiQuery, SubsDescriptor, SubscriptionID, AlarmID, KpiDescriptorList, \
MonitorKpiRequest, Kpi, AlarmSubscription
from common.rpc_method_wrapper.ServiceExceptions import ServiceException
from common.tools.timestamp.Converters import timestamp_float_to_string
......@@ -57,15 +57,15 @@ class MonitoringServiceServicerImpl(MonitoringServiceServicer):
self.sql_db = SqliteTools.SQLite('monitoring.db')
self.deviceClient = DeviceClient(host=DEVICESERVICE_SERVICE_HOST, port=DEVICESERVICE_SERVICE_PORT_GRPC) # instantiate the client
# Create metrics_db client
# Set metrics_db client
self.metrics_db = MetricsDBTools.MetricsDB(METRICSDB_HOSTNAME,METRICSDB_ILP_PORT,METRICSDB_REST_PORT,METRICSDB_TABLE)
# CreateKpi (CreateKpiRequest) returns (KpiId) {}
def CreateKpi(
# SetKpi (SetKpiRequest) returns (KpiId) {}
def SetKpi(
self, request : KpiDescriptor, grpc_context : grpc.ServicerContext
) -> KpiId:
# CREATEKPI_COUNTER_STARTED.inc()
LOGGER.info('CreateKpi')
LOGGER.info('SetKpi')
try:
# Here the code to create a sqlite query to crete a KPI and return a KpiID
kpi_id = KpiId()
......@@ -84,26 +84,14 @@ class MonitoringServiceServicerImpl(MonitoringServiceServicer):
# CREATEKPI_COUNTER_COMPLETED.inc()
return kpi_id
except ServiceException as e:
LOGGER.exception('CreateKpi exception')
LOGGER.exception('SetKpi exception')
# CREATEKPI_COUNTER_FAILED.inc()
grpc_context.abort(e.code, e.details)
except Exception as e: # pragma: no cover
LOGGER.exception('CreateKpi exception')
LOGGER.exception('SetKpi exception')
# CREATEKPI_COUNTER_FAILED.inc()
grpc_context.abort(grpc.StatusCode.INTERNAL, str(e))
def EditKpiDescriptor ( self, request : EditedKpiDescriptor, grpc_context : grpc.ServicerContext) -> Empty:
LOGGER.info('EditKpiDescriptor')
try:
# TBC
return Empty()
except ServiceException as e:
LOGGER.exception('EditKpiDescriptor exception')
grpc_context.abort(e.code, e.details)
except Exception as e: # pragma: no cover
LOGGER.exception('EditKpiDescriptor exception')
def DeleteKpi ( self, request : KpiId, grpc_context : grpc.ServicerContext) -> Empty:
LOGGER.info('DeleteKpi')
......@@ -128,25 +116,12 @@ class MonitoringServiceServicerImpl(MonitoringServiceServicer):
except Exception as e: # pragma: no cover
LOGGER.exception('GetKpiDescriptorList exception')
def CreateBundleKpi ( self, request : BundleKpiDescriptor, grpc_context : grpc.ServicerContext) -> KpiId:
LOGGER.info('CreateBundleKpi')
try:
# TBC
return KpiId()
except ServiceException as e:
LOGGER.exception('CreateBundleKpi exception')
grpc_context.abort(e.code, e.details)
except Exception as e: # pragma: no cover
LOGGER.exception('CreateBundleKpi exception')
# rpc MonitorKpi (MonitorKpiRequest) returns (context.Empty) {}
def MonitorKpi ( self, request : MonitorKpiRequest, grpc_context : grpc.ServicerContext) -> Empty:
LOGGER.info('MonitorKpi')
try:
# Creates the request to send to the device service
# Sets the request to send to the device service
monitor_device_request = MonitoringSettings()
kpiDescriptor = self.GetKpiDescriptor(request.kpi_id, grpc_context)
......@@ -300,41 +275,18 @@ class MonitoringServiceServicerImpl(MonitoringServiceServicer):
except Exception as e: # pragma: no cover
LOGGER.exception('DeleteSubscription exception')
def EditKpiSubscription ( self, request : SubsDescriptor, grpc_context : grpc.ServicerContext) -> Empty:
def SetKpiAlarm ( self, request : AlarmDescriptor, grpc_context : grpc.ServicerContext) -> AlarmResponse:
LOGGER.info('EditKpiSubscription')
try:
# TBC
return Empty()
except ServiceException as e:
LOGGER.exception('EditKpiSubscription exception')
grpc_context.abort(e.code, e.details)
except Exception as e: # pragma: no cover
LOGGER.exception('EditKpiSubscription exception')
def CreateKpiAlarm ( self, request : AlarmDescriptor, grpc_context : grpc.ServicerContext) -> AlarmResponse:
LOGGER.info('CreateKpiAlarm')
LOGGER.info('SetKpiAlarm')
try:
# TBC
return AlarmResponse()
except ServiceException as e:
LOGGER.exception('CreateKpiAlarm exception')
LOGGER.exception('SetKpiAlarm exception')
grpc_context.abort(e.code, e.details)
except Exception as e: # pragma: no cover
LOGGER.exception('CreateKpiAlarm exception')
LOGGER.exception('SetKpiAlarm exception')
def EditKpiAlarm ( self, request : AlarmDescriptor, grpc_context : grpc.ServicerContext) -> Empty:
LOGGER.info('EditKpiAlarm')
try:
# TBC
return Empty()
except ServiceException as e:
LOGGER.exception('EditKpiAlarm exception')
grpc_context.abort(e.code, e.details)
except Exception as e: # pragma: no cover
LOGGER.exception('EditKpiAlarm exception')
def GetAlarms ( self, request : Empty, grpc_context : grpc.ServicerContext) -> AlarmIDList:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment