syntax = "proto3"; package monitoring; import "context.proto"; //import "kpi_sample_types.proto"; service MonitoringService { // Old RPCs: rpc CreateKpi (CreateKpiRequest) returns (KpiId) {} rpc IncludeKpi (IncludeKpiRequest) returns (context.Empty) {} rpc MonitorKpi (MonitorKpiRequest) returns (context.Empty) {} rpc MonitorDeviceKpi (MonitorDeviceKpiRequest) returns (context.Empty) {} rpc GetStreamKpi ( KpiId ) returns (stream Kpi) {} rpc GetInstantKpi ( KpiId ) returns (Kpi) {} // New RPCs: //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 ) {} } message CreateKpiRequest /*New name: KpiDescriptor*/ { // Old fields: 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 // New fields: //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; // to be used in future features } message MonitorKpiRequest{ KpiId kpi_id = 1; // Old fields: uint32 connexion_time_s = 2; uint32 sample_rate_ms = 3; // New fields: //float sampling_duration_s = 2; //float sampling_interval_s = 3; } // Message to be removed: message MonitorDeviceKpiRequest{ Kpi kpi = 1; uint32 connexion_time_s = 2; uint32 sample_rate_ms = 3; } // Message to be removed: message IncludeKpiRequest{ KpiId kpi_id = 1; string time_stamp = 2; KpiValue kpi_value= 3; } message KpiId { context.Uuid kpi_id = 1; } message Kpi { KpiId kpi_id = 1; string timestamp = 2; string kpiDescription = 3; // field to be removed KpiValue kpi_value = 4; // field to be renumbered to 3 KpiSampleType kpi_sample_type = 5; // field to be removed context.DeviceId device_id = 6; // field to be removed // context.EndpointId endpoint_id = 7; // others might be added // field to be removed // context.ServiceId service_id = 8; // for monitoring other // field to be removed // context.SliceId slice_id = 9; // entities // field to be removed } message KpiValue { oneof value { uint32 intVal = 1; // field to be renamed to int_val float floatVal = 2; // field to be renamed to float_val string stringVal = 3; // field to be renamed to str_val bool boolVal = 4; // field to be renamed to bool_val } } message KpiList { repeated Kpi kpiList = 1; // to be renamed to kpi_list } enum KpiSampleType { // to be moved to file "kpi_sample_types.proto" UNKNOWN = 0; PACKETS_TRANSMITTED = 101; // others might be added for PACKETS_RECEIVED = 102; // packet, optical, radio,... BYTES_TRANSMITTED = 201; BYTES_RECEIVED = 202; }