diff --git a/proto/monitoring.proto b/proto/monitoring.proto index 293eb982a758e9869d8310134bd65bca6c8dfd32..2c7b98d2ca3392906e0f42896907bb887b45e80b 100644 --- a/proto/monitoring.proto +++ b/proto/monitoring.proto @@ -19,27 +19,73 @@ import "context.proto"; import "kpi_sample_types.proto"; service MonitoringService { - rpc CreateKpi (KpiDescriptor ) 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 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 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 ( AlarmID ) {} + rpc EditKpiAlarm (AlarmDescriptor ) returns (context.Empty ) {} + rpc GetAlarms (context.Empty ) returns (AlarmIDList ) {} + rpc GetAlarmDescriptor (AlarmID ) returns (AlarmDescriptor ) {} + rpc GetAlarmResponseStream (AlarmID ) returns (stream AlarmResponse ) {} + // rpc GetStreamKpi (KpiId ) returns (stream Kpi ) {} + // rpc GetInstantKpi (KpiId ) returns (KpiList ) {} } 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; + 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 MonitorKpiRequest{ - KpiId kpi_id = 1; - float sampling_duration_s = 2; - float sampling_interval_s = 3; +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; + 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 MonitorKpiRequest { + KpiId kpi_id = 1; + float monitoring_window_s = 2; + float sampling_rate_s = 3; + // Pending add field to reflect Available Device Protocols +} + +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 KpiId { @@ -47,20 +93,73 @@ message KpiId { } message Kpi { - KpiId kpi_id = 1; - string timestamp = 2; - KpiValue kpi_value = 4; + KpiId kpi_id = 1; + string timestamp = 2; + KpiValue kpi_value = 3; +} + +message KpiValueRange { + KpiValue kpiMinValue = 1; + KpiValue kpiMaxValue = 2; } message KpiValue { oneof value { - uint32 intVal = 1; - float floatVal = 2; - string stringVal = 3; - bool boolVal = 4; + uint32 intVal = 1; + float floatVal = 2; + string stringVal = 3; + bool boolVal = 4; } } message KpiList { - repeated Kpi kpi_list = 1; + repeated Kpi kpi_list = 1; +} + +message KpiDescriptorList { + repeated KpiDescriptor kpi_descriptor_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 AlarmIDList { + repeated AlarmID alarm_list = 1; }