Newer
Older
//Example of topology
syntax = "proto3";
package monitoring;
import "context.proto";
service MonitoringService {
Javi Moreno
committed
rpc IncludeKpi (KpiRequest) returns (KpiId) {}
rpc MonitorKpi ( KpiId ) returns (Kpi) {}
rpc GetStreamKpi ( KpiId ) returns (stream Kpi) {}
Javi Moreno
committed
rpc GetInstantKpi ( KpiId ) returns (Kpi) {}
}
message KpiRequest{
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 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;
}