Newer
Older
//Example of topology
syntax = "proto3";
package monitoring;
import "context.proto";
service MonitoringService {
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) {}
Javi Moreno
committed
rpc GetInstantKpi ( KpiId ) returns (Kpi) {}
}
message CreateKpiRequest{
Javi Moreno
committed
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
uint32 connexion_time_s = 2;
uint32 sample_rate_ms = 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 Kpi {
KpiId kpi_id = 1;
string timestamp = 2;
string kpiDescription = 3;
KpiValue kpi_value = 4;
Javi Moreno
committed
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;
}
Javi Moreno
committed
enum KpiSampleType {
UNKNOWN = 0;
PACKETS_TRANSMITTED = 101; // others might be added for
PACKETS_RECEIVED = 102; // packet, optical, radio,...
BYTES_TRANSMITTED = 201;
BYTES_RECEIVED = 202;
}