Newer
Older
// Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package monitoring;
import "context.proto";
import "kpi_sample_types.proto";
rpc CreateKpi (KpiDescriptor ) returns (KpiId ) {}
rpc EditKpiDescriptor (EditedKpiDescriptor ) returns (context.Empty ) {}
rpc DeleteKpi (KpiId ) returns (context.Empty ) {}
rpc GetKpiDescriptor (KpiId ) returns (KpiDescriptor ) {}
rpc GetKpiDescriptorList (context.Empty ) returns (KpiDescriptorList) {}
rpc CreateBundleKpi (BundleKpiDescriptor ) returns (KpiId ) {}
rpc IncludeKpi (Kpi ) returns (context.Empty ) {}
rpc MonitorKpi (MonitorKpiRequest ) returns (context.Empty ) {}
rpc QueryKpiData (KpiQuery ) returns (KpiList ) {}
rpc SubscribeKpi (SubsDescriptor ) returns (stream KpiList ) {}
rpc GetSubsDescriptor (SubscriptionID ) returns (SubsDescriptor ) {}
rpc GetSubscriptions (context.Empty ) returns (SubsIDList ) {}
rpc EditKpiSubscription (SubsDescriptor ) returns (context.Empty ) {}
rpc CreateKpiAlarm (AlarmDescriptor ) returns (AlarmID ) {}
rpc EditKpiAlarm (AlarmDescriptor ) returns (context.Empty ) {}
rpc GetAlarms (context.Empty ) returns (AlarmIDList ) {}
rpc GetAlarmDescriptor (AlarmID ) returns (AlarmDescriptor ) {}
rpc GetAlarmResponseStream (AlarmID ) returns (stream AlarmResponse ) {}
rpc GetStreamKpi (KpiId ) returns (stream Kpi ) {}
rpc GetInstantKpi (KpiId ) returns (KpiList ) {}
Javi Moreno
committed
}
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;
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
message BundleKpiDescriptor {
string kpi_description = 1;
repeated KpiId kpi_id_list = 2;
kpi_sample_types.KpiSampleType kpi_sample_type = 3;
context.DeviceId device_id = 4;
context.EndPointId endpoint_id = 5;
context.ServiceId service_id = 6;
context.SliceId slice_id = 7;
}
message EditedKpiDescriptor {
KpiId kpi_id = 1;
string kpi_description = 2;
repeated KpiId kpi_id_list = 3;
kpi_sample_types.KpiSampleType kpi_sample_type = 4;
context.DeviceId device_id = 5;
context.EndPointId endpoint_id = 6;
context.ServiceId service_id = 7;
context.SliceId slice_id = 8;
}
message MonitorKpiRequest {
KpiId kpi_id = 1;
float monitoring_window_s = 2;
float sampling_rate_s = 3;
// Pending add field to reflect Available Device Protocols
}
message KpiQuery {
repeated KpiId kpi_id = 1;
float monitoring_window_s = 2;
float sampling_rate_s = 3;
uint32 last_n_samples = 4; // used when you want something like "get the last N many samples
string start_date = 5; // used when you want something like "get the samples since X date/time"
string end_date = 6; // used when you want something like "get the samples until X date/time"
// Pending add field to reflect Available Device Protocols
message KpiId {
context.Uuid kpi_id = 1;
KpiId kpi_id = 1;
string timestamp = 2;
KpiValue kpi_value = 3;
}
message KpiValueRange {
KpiValue kpiMinValue = 1;
KpiValue kpiMaxValue = 2;
uint32 intVal = 1;
float floatVal = 2;
string stringVal = 3;
bool boolVal = 4;
message KpiList {
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
repeated Kpi kpi_list = 1;
}
message KpiDescriptorList {
repeated KpiDescriptor kpi_descriptor_list = 1;
}
message SubsDescriptor{
KpiId kpi_id = 1;
float sampling_duration_s = 2;
float sampling_interval_s = 3;
string start_date = 4; // used when you want something like "get the samples since X date/time"
string end_date = 5; // used when you want something like "get the samples until X date/time"
// Pending add field to reflect Available Device Protocols
}
message SubscriptionID {
context.Uuid subs_id = 1;
}
message SubsResponse {
SubscriptionID subs_id = 1;
repeated KpiList kpi_list = 2;
}
message SubsIDList {
repeated SubscriptionID subs_list = 1;
}
message AlarmDescriptor {
string alarm_description = 1;
string name = 2;
KpiId kpi_id = 3;
KpiValueRange kpi_value_range = 4;
string timestamp = 5;
}
message AlarmID{
context.Uuid alarm_id = 1;
}
message AlarmResponse {
AlarmID alarm_id = 1;
string text = 2;
KpiValue kpi_value = 3;
}
message AlarmIDList {
repeated AlarmID alarm_list = 1;