Loading proto/context.proto +3 −0 Original line number Diff line number Diff line syntax = "proto3"; package context; import "kpi_sample_types.proto"; service ContextService { rpc ListContextIds (Empty ) returns ( ContextIdList ) {} rpc ListContexts (Empty ) returns ( ContextList ) {} Loading Loading @@ -255,6 +257,7 @@ message ConfigRule { ConfigActionEnum action = 1; string resource_key = 2; string resource_value = 3; kpi_sample_types.KpiSampleType kpi_sample_type = 4; } Loading proto/device.proto +13 −4 Original line number Diff line number Diff line Loading @@ -2,10 +2,19 @@ syntax = "proto3"; package device; import "context.proto"; import "monitoring.proto"; service DeviceService { rpc AddDevice (context.Device ) returns (context.DeviceId ) {} rpc ConfigureDevice (context.Device ) returns (context.DeviceId ) {} rpc DeleteDevice (context.DeviceId ) returns (context.Empty ) {} rpc GetInitialConfig(context.DeviceId ) returns (context.DeviceConfig) {} rpc MonitorDeviceKpi(MonitoringSettings) returns (context.Empty ) {} } message MonitoringSettings { monitoring.KpiId kpi_id = 1; monitoring.KpiDescriptor kpi_descriptor = 2; float sampling_duration_s = 3; float sampling_interval_s = 4; } proto/kpi_sample_types.proto 0 → 100644 +10 −0 Original line number Diff line number Diff line syntax = "proto3"; package kpi_sample_types; enum KpiSampleType { UNKNOWN = 0; PACKETS_TRANSMITTED = 101; PACKETS_RECEIVED = 102; BYTES_TRANSMITTED = 201; BYTES_RECEIVED = 202; } proto/monitoring.proto +24 −56 Original line number Diff line number Diff line //Example of topology syntax = "proto3"; package monitoring; import "context.proto"; import "kpi_sample_types.proto"; service MonitoringService { rpc CreateKpi (CreateKpiRequest) returns (KpiId) {} rpc IncludeKpi (IncludeKpiRequest) returns (context.Empty) {} rpc CreateKpi (KpiDescriptor ) returns (KpiId ) {} rpc GetKpiDescriptor(KpiId ) returns (KpiDescriptor) {} rpc IncludeKpi (Kpi ) 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 ) {} } message CreateKpiRequest{ 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 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 MonitorKpiRequest{ KpiId kpi_id = 1; uint32 connexion_time_s = 2; uint32 sample_rate_ms = 3; float sampling_duration_s = 2; float sampling_interval_s = 3; } message MonitorDeviceKpiRequest{ Kpi kpi = 1; uint32 connexion_time_s = 2; uint32 sample_rate_ms = 3; } 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; 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 { context.Uuid kpi_id = 1; } message KpiDevice { KpiId kpi_id = 1; 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; string stringVal = 2; bool boolVal = 3; float floatVal = 2; string stringVal = 3; bool boolVal = 4; } } message KpiList { repeated Kpi kpi_list = 1; } src/context/genproto.sh +3 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,9 @@ rm -rf proto/__pycache__ touch proto/__init__.py python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto context.proto python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto kpi_sample_types.proto rm proto/kpi_sample_types_pb2_grpc.py sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/context_pb2.py sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/context_pb2_grpc.py Loading
proto/context.proto +3 −0 Original line number Diff line number Diff line syntax = "proto3"; package context; import "kpi_sample_types.proto"; service ContextService { rpc ListContextIds (Empty ) returns ( ContextIdList ) {} rpc ListContexts (Empty ) returns ( ContextList ) {} Loading Loading @@ -255,6 +257,7 @@ message ConfigRule { ConfigActionEnum action = 1; string resource_key = 2; string resource_value = 3; kpi_sample_types.KpiSampleType kpi_sample_type = 4; } Loading
proto/device.proto +13 −4 Original line number Diff line number Diff line Loading @@ -2,10 +2,19 @@ syntax = "proto3"; package device; import "context.proto"; import "monitoring.proto"; service DeviceService { rpc AddDevice (context.Device ) returns (context.DeviceId ) {} rpc ConfigureDevice (context.Device ) returns (context.DeviceId ) {} rpc DeleteDevice (context.DeviceId ) returns (context.Empty ) {} rpc GetInitialConfig(context.DeviceId ) returns (context.DeviceConfig) {} rpc MonitorDeviceKpi(MonitoringSettings) returns (context.Empty ) {} } message MonitoringSettings { monitoring.KpiId kpi_id = 1; monitoring.KpiDescriptor kpi_descriptor = 2; float sampling_duration_s = 3; float sampling_interval_s = 4; }
proto/kpi_sample_types.proto 0 → 100644 +10 −0 Original line number Diff line number Diff line syntax = "proto3"; package kpi_sample_types; enum KpiSampleType { UNKNOWN = 0; PACKETS_TRANSMITTED = 101; PACKETS_RECEIVED = 102; BYTES_TRANSMITTED = 201; BYTES_RECEIVED = 202; }
proto/monitoring.proto +24 −56 Original line number Diff line number Diff line //Example of topology syntax = "proto3"; package monitoring; import "context.proto"; import "kpi_sample_types.proto"; service MonitoringService { rpc CreateKpi (CreateKpiRequest) returns (KpiId) {} rpc IncludeKpi (IncludeKpiRequest) returns (context.Empty) {} rpc CreateKpi (KpiDescriptor ) returns (KpiId ) {} rpc GetKpiDescriptor(KpiId ) returns (KpiDescriptor) {} rpc IncludeKpi (Kpi ) 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 ) {} } message CreateKpiRequest{ 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 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 MonitorKpiRequest{ KpiId kpi_id = 1; uint32 connexion_time_s = 2; uint32 sample_rate_ms = 3; float sampling_duration_s = 2; float sampling_interval_s = 3; } message MonitorDeviceKpiRequest{ Kpi kpi = 1; uint32 connexion_time_s = 2; uint32 sample_rate_ms = 3; } 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; 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 { context.Uuid kpi_id = 1; } message KpiDevice { KpiId kpi_id = 1; 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; string stringVal = 2; bool boolVal = 3; float floatVal = 2; string stringVal = 3; bool boolVal = 4; } } message KpiList { repeated Kpi kpi_list = 1; }
src/context/genproto.sh +3 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,9 @@ rm -rf proto/__pycache__ touch proto/__init__.py python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto context.proto python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto kpi_sample_types.proto rm proto/kpi_sample_types_pb2_grpc.py sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/context_pb2.py sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/context_pb2_grpc.py