Commit 7ca58a42 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Adaptation of protocol between Monitoring and Device.

parent 147fe0f4
Loading
Loading
Loading
Loading
+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   ) {}
@@ -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;
}


+13 −4
Original line number Diff line number Diff line
@@ -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;
}
+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;
}
+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;
}
+3 −0
Original line number Diff line number Diff line
@@ -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