blob: 2923c874e5ea72c421019d972997f1afb6c2bf0b [file] [log] [blame]
Matteo Scandoloaab36db2018-10-09 19:54:11 -07001// Copyright 2018 Open Networking Foundation
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package main
16
17import (
Ganesh Bhure8d0c9942019-05-24 11:42:09 +053018 "encoding/json"
Ganesh Bhure8d0c9942019-05-24 11:42:09 +053019 "gerrit.opencord.org/kafka-topic-exporter/common/logger"
kesavand6753e5e2020-04-28 03:34:21 -040020 "github.com/golang/protobuf/proto"
21 "github.com/opencord/voltha-protos/go/voltha"
Ganesh Bhure74fb7b02019-06-28 16:16:26 +053022 "github.com/prometheus/client_golang/prometheus"
Daniele Morobe242582019-10-01 14:02:46 -070023 log "github.com/sirupsen/logrus"
24 "strconv"
Ganesh Bhuref15383e2019-11-11 15:15:14 +053025 "strings"
Matteo Scandoloaab36db2018-10-09 19:54:11 -070026)
27
28var (
Ganesh Bhure8d0c9942019-05-24 11:42:09 +053029 // voltha kpis
kesavand6753e5e2020-04-28 03:34:21 -040030 volthaOltTxBytesTotal = prometheus.NewGaugeVec(
Matteo Scandoloaab36db2018-10-09 19:54:11 -070031 prometheus.GaugeOpts{
kesavand6753e5e2020-04-28 03:34:21 -040032 Name: "voltha_olt_tx_bytes_total",
Matteo Scandoloaab36db2018-10-09 19:54:11 -070033 Help: "Number of total bytes transmitted",
34 },
35 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
36 )
kesavand6753e5e2020-04-28 03:34:21 -040037 volthaOltRxBytesTotal = prometheus.NewGaugeVec(
Matteo Scandoloaab36db2018-10-09 19:54:11 -070038 prometheus.GaugeOpts{
kesavand6753e5e2020-04-28 03:34:21 -040039 Name: "voltha_olt_rx_bytes_total",
Matteo Scandoloaab36db2018-10-09 19:54:11 -070040 Help: "Number of total bytes received",
41 },
42 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
43 )
kesavand6753e5e2020-04-28 03:34:21 -040044 volthaOltTxPacketsTotal = prometheus.NewGaugeVec(
Matteo Scandoloaab36db2018-10-09 19:54:11 -070045 prometheus.GaugeOpts{
kesavand6753e5e2020-04-28 03:34:21 -040046 Name: "voltha_olt_tx_packets_total",
Matteo Scandoloaab36db2018-10-09 19:54:11 -070047 Help: "Number of total packets transmitted",
48 },
49 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
50 )
kesavand6753e5e2020-04-28 03:34:21 -040051 volthaOltRxPacketsTotal = prometheus.NewGaugeVec(
Matteo Scandoloaab36db2018-10-09 19:54:11 -070052 prometheus.GaugeOpts{
kesavand6753e5e2020-04-28 03:34:21 -040053 Name: "voltha_olt_rx_packets_total",
Matteo Scandoloaab36db2018-10-09 19:54:11 -070054 Help: "Number of total packets received",
55 },
56 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
57 )
58
kesavand6753e5e2020-04-28 03:34:21 -040059 volthaOltTxErrorPacketsTotal = prometheus.NewGaugeVec(
Matteo Scandoloaab36db2018-10-09 19:54:11 -070060 prometheus.GaugeOpts{
kesavand6753e5e2020-04-28 03:34:21 -040061 Name: "voltha_olt_tx_error_packets_total",
Matteo Scandoloaab36db2018-10-09 19:54:11 -070062 Help: "Number of total transmitted packets error",
63 },
64 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
65 )
66
kesavand6753e5e2020-04-28 03:34:21 -040067 volthaOltRxErrorPacketsTotal = prometheus.NewGaugeVec(
Matteo Scandoloaab36db2018-10-09 19:54:11 -070068 prometheus.GaugeOpts{
kesavand6753e5e2020-04-28 03:34:21 -040069 Name: "voltha_olt_rx_error_packets_total",
Matteo Scandoloaab36db2018-10-09 19:54:11 -070070 Help: "Number of total received packets error",
71 },
72 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
73 )
Ganesh Bhure8d0c9942019-05-24 11:42:09 +053074
kesavand6753e5e2020-04-28 03:34:21 -040075 volthaOltTxBroadcastPacketsTotal = prometheus.NewGaugeVec(
76 prometheus.GaugeOpts{
77 Name: "voltha_olt_tx_broadcast_packets_total",
78 Help: "Number of total broadcast packets transmitted",
79 },
80 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
81 )
82
83 volthaOltTxUnicastPacketsTotal = prometheus.NewGaugeVec(
84 prometheus.GaugeOpts{
85 Name: "voltha_olt_tx_unicast_packets_total",
86 Help: "Number of total unicast packets transmitted",
87 },
88 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
89 )
90
91 volthaOltTxMulticastPacketsTotal = prometheus.NewGaugeVec(
92 prometheus.GaugeOpts{
93 Name: "voltha_olt_tx_multicast_packets_total",
94 Help: "Number of total multicast packets transmitted",
95 },
96 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
97 )
98
99 volthaOltRxBroadcastPacketsTotal = prometheus.NewGaugeVec(
100 prometheus.GaugeOpts{
101 Name: "voltha_olt_rx_broadcast_packets_total",
102 Help: "Number of total broadcast packets received",
103 },
104 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
105 )
106
107 volthaOltRxUnicastPacketsTotal = prometheus.NewGaugeVec(
108 prometheus.GaugeOpts{
109 Name: "voltha_olt_rx_unicast_packets_total",
110 Help: "Number of total unicast packets received",
111 },
112 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
113 )
114
115 volthaOltRxMulticastPacketsTotal = prometheus.NewGaugeVec(
116 prometheus.GaugeOpts{
117 Name: "voltha_olt_rx_multicast_packets_total",
118 Help: "Number of total multicast packets received",
119 },
120 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
121 )
122
Ganesh Bhure967018e2019-07-29 14:48:32 +0530123 // optical parameters
124 VolthaOnuLaserBiasCurrent = prometheus.NewGaugeVec(
125 prometheus.GaugeOpts{
126 Name: "voltha_onu_laser_bias_current",
127 Help: "ONU Laser bias current value",
128 },
129 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
130 )
131
132 volthaOnuTemperature = prometheus.NewGaugeVec(
133 prometheus.GaugeOpts{
134 Name: "voltha_onu_temperature",
135 Help: "ONU temperature value",
136 },
137 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
138 )
139
140 VolthaOnuPowerFeedVoltage = prometheus.NewGaugeVec(
141 prometheus.GaugeOpts{
142 Name: "voltha_onu_power_feed_voltage",
143 Help: "ONU power feed voltage",
144 },
145 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
146 )
147
148 VolthaOnuMeanOpticalLaunchPower = prometheus.NewGaugeVec(
149 prometheus.GaugeOpts{
150 Name: "voltha_onu_mean_optical_launch_power",
151 Help: "ONU mean optical launch power",
152 },
153 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
154 )
155
156 VolthaOnuReceivedOpticalPower = prometheus.NewGaugeVec(
157 prometheus.GaugeOpts{
158 Name: "voltha_onu_received_optical_power",
159 Help: "ONU received optical power",
160 },
161 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
162 )
163
kesavand6753e5e2020-04-28 03:34:21 -0400164 VolthaOnuTransmtOpticalPower = prometheus.NewGaugeVec(
165 prometheus.GaugeOpts{
166 Name: "voltha_onu_transmit_optical_power",
167 Help: "ONU transmited optical power",
168 },
169 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
170 )
171
172 // FEC parameters
173 volthaOnuFecCorrectedCodewordsTotal = prometheus.NewGaugeVec(
174 prometheus.GaugeOpts{
175 Name: "voltha_onu_fec_corrected_code_words",
176 Help: "Number of total code words corrected",
177 },
178 []string{"logical_device_id", "serial_number", "device_id", "title"},
179 )
180
181 volthaOnuFecCodewordsTotal = prometheus.NewGaugeVec(
182 prometheus.GaugeOpts{
183 Name: "voltha_onu_fec_code_words_total",
184 Help: "Number of total code words",
185 },
186 []string{"logical_device_id", "serial_number", "device_id", "title"},
187 )
188
189 volthaOnuFecCorrectedBytesTotal = prometheus.NewGaugeVec(
190 prometheus.GaugeOpts{
191 Name: "voltha_onu_fec_corrected_bytes_total",
192 Help: "Number of total corrected bytes",
193 },
194 []string{"logical_device_id", "serial_number", "device_id", "title"},
195 )
196
197 volthaOnuFecSecondsTotal = prometheus.NewGaugeVec(
198 prometheus.GaugeOpts{
199 Name: "voltha_onu_fec_corrected_fec_seconds_total",
200 Help: "Number of fec seconds total",
201 },
202 []string{"logical_device_id", "serial_number", "device_id", "title"},
203 )
204
205 volthaOnuFecUncorrectablewordsTotal = prometheus.NewGaugeVec(
206 prometheus.GaugeOpts{
207 Name: "voltha_onu_fec_uncorrectable_words_total",
208 Help: "Number of fec uncorrectable words",
209 },
210 []string{"logical_device_id", "serial_number", "device_id", "title"},
211 )
212 //Etheret UNI
213
214 volthaEthernetUniSingleCollisionTotal = prometheus.NewGaugeVec(
215 prometheus.GaugeOpts{
216 Name: "voltha_ethernet_uni_single_collision_frame_counter",
217 Help: "successfully transmitted frames but delayed by exactly one collision.",
218 },
219 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
220 )
221
222 volthaEthernetUniMacLayerTramsmitErrorTotal = prometheus.NewGaugeVec(
223 prometheus.GaugeOpts{
224 Name: "voltha_ethernet_uni_internal_mac_rx_error_counter",
225 Help: "transmission failed due to an internal MAC sublayer transmit error.",
226 },
227 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
228 )
229
230 volthaEthernetUniMultiCollisionTotal = prometheus.NewGaugeVec(
231 prometheus.GaugeOpts{
232 Name: "voltha_ethernet_uni_multiple_collisions_frame_counter",
233 Help: "successfully transmitted frames but delayed by multiple collisions.",
234 },
235 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
236 )
237
238 volthaEthernetUniFramestooLongTotal = prometheus.NewGaugeVec(
239 prometheus.GaugeOpts{
240 Name: "voltha_ethernet_uni_frames_too_long",
241 Help: "frames that exceeded the maximum permitted frame size.",
242 },
243 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
244 )
245
246 volthaEthernetUniAlignmentErrorTotal = prometheus.NewGaugeVec(
247 prometheus.GaugeOpts{
248 Name: "voltha_ethernet_uni_alignment_error_counter",
249 Help: "frames that were not an integral number of octets in length and did not pass the FCS check.",
250 },
251 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
252 )
253 volthaEthernetUniCarrierErrorTotal = prometheus.NewGaugeVec(
254 prometheus.GaugeOpts{
255 Name: "voltha_ethernet_uni_carrier_sense_error_counter",
256 Help: "number of times that carrier sense was lost or never asserted when attempting to transmit a frame.",
257 },
258 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
259 )
260 volthaEthernetUniExcessiveCollisionErrorTotal = prometheus.NewGaugeVec(
261 prometheus.GaugeOpts{
262 Name: "voltha_ethernet_uni_excessive_collision_counter",
263 Help: "frames whose transmission failed due to excessive collisions.",
264 },
265 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
266 )
267 volthaEthernetUniDeferredTxTotal = prometheus.NewGaugeVec(
268 prometheus.GaugeOpts{
269 Name: "voltha_ethernet_uni_deferred_tx_counter",
270 Help: "frames whose first transmission attempt was delayed because the medium was busy.",
271 },
272 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
273 )
274 volthaEthernetUniLateCollisionTotal = prometheus.NewGaugeVec(
275 prometheus.GaugeOpts{
276 Name: "voltha_ethernet_uni_late_collision_counter",
277 Help: "number of times that a collision was detected later than 512 bit times into the transmission of a packet.",
278 },
279 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
280 )
281 volthaEthernetUniBufferOverflowsRxErrorTotal = prometheus.NewGaugeVec(
282 prometheus.GaugeOpts{
283 Name: "voltha_ethernet_uni_buffer_overflows_on_rx",
284 Help: "number of times that the receive buffer overflowed.",
285 },
286 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
287 )
288 volthaEthernetUniFcsErrorTotal = prometheus.NewGaugeVec(
289 prometheus.GaugeOpts{
290 Name: "voltha_ethernet_uni_fcs_errors",
291 Help: " frames failed the frame check sequence (FCS) check.",
292 },
293 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
294 )
295 volthaEthernetUniSqeErrorTotal = prometheus.NewGaugeVec(
296 prometheus.GaugeOpts{
297 Name: "voltha_ethernet_uni_sqe_counter",
298 Help: "number of times that the SQE test error message was generated by the PLS sublayer",
299 },
300 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
301 )
302 volthaEthernetUniBufferOverflowsTxErrorTotal = prometheus.NewGaugeVec(
303 prometheus.GaugeOpts{
304 Name: "voltha_ethernet_uni_buffer_overflows_on_tx",
305 Help: " number of times that the transmit buffer overflowed.",
306 },
307 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
308 )
309 //Ethernet_Bridge_Port
310
311 volthaOnuBridgePortTxBytesTotal = prometheus.NewGaugeVec(
312 prometheus.GaugeOpts{
313 Name: "voltha_onu_bridge_port_tx_bytes_total",
314 Help: "Number of total bytes transmitted",
315 },
316 []string{"logical_device_id", "serial_number", "device_id", "title"},
317 )
318 volthaOnuBridgePortRxBytesTotal = prometheus.NewGaugeVec(
319 prometheus.GaugeOpts{
320 Name: "voltha_onu_bridge_port_rx_bytes_total",
321 Help: "Number of total bytes received",
322 },
323 []string{"logical_device_id", "serial_number", "device_id", "title"},
324 )
325 volthaOnuBridgePortTxPacketsTotal = prometheus.NewGaugeVec(
326 prometheus.GaugeOpts{
327 Name: "voltha_onu_bridge_port_tx_packets_total",
328 Help: "Number of total packets transmitted",
329 },
330 []string{"logical_device_id", "serial_number", "device_id", "title"},
331 )
332 volthaOnuBridgePortRxPacketsTotal = prometheus.NewGaugeVec(
333 prometheus.GaugeOpts{
334 Name: "voltha_onu_bridge_port_rx_packets_total",
335 Help: "Number of total packets received",
336 },
337 []string{"logical_device_id", "serial_number", "device_id", "title"},
338 )
339
340 volthaOnuBridgePort_64octetTxPacketsTotal = prometheus.NewGaugeVec(
341 prometheus.GaugeOpts{
342 Name: "voltha_onu_bridge_port_64_octets_Txpackets",
343 Help: "packets (including bad packets) that were 64 octets long",
344 },
345 []string{"logical_device_id", "serial_number", "device_id", "title"},
346 )
347
348 volthaOnuBridgePort_65_127_octetTxPacketsTotal = prometheus.NewGaugeVec(
349 prometheus.GaugeOpts{
350 Name: "voltha_onu_bridge_port_65_to_127_octet_Txpackets",
351 Help: "packets (including bad packets) that were 65..127 octets long, excluding framing bits but including FCS.",
352 },
353 []string{"logical_device_id", "serial_number", "device_id", "title"},
354 )
355
356 volthaOnuBridgePort_128_255_octetTxPacketsTotal = prometheus.NewGaugeVec(
357 prometheus.GaugeOpts{
358 Name: "voltha_onu_bridge_port_128_to_255_octet_Txpackets",
359 Help: "packets (including bad packets) received that were 128..255 octets long, excluding framing bits but including FCS.",
360 },
361 []string{"logical_device_id", "serial_number", "device_id", "title"},
362 )
363
364 volthaOnuBridgePort_256_511_octetTxPacketsTotal = prometheus.NewGaugeVec(
365 prometheus.GaugeOpts{
366 Name: "voltha_onu_bridge_port_256_to_511_octet_Txpackets",
367 Help: "packets (including bad packets) received that were 256..511 octets long, excluding framing bits but including FCS.",
368 },
369 []string{"logical_device_id", "serial_number", "device_id", "title"},
370 )
371
372 volthaOnuBridgePort_512_1023_octetTxPacketsTotal = prometheus.NewGaugeVec(
373 prometheus.GaugeOpts{
374 Name: "voltha_onu_bridge_port_512_to_1023_octet_Txpackets",
375 Help: "packets (including bad packets) received that were 512..1 023 octets long, excluding framing bits but including FCS.",
376 },
377 []string{"logical_device_id", "serial_number", "device_id", "title"},
378 )
379
380 volthaOnuBridgePort_1024_1518_octetTxPacketsTotal = prometheus.NewGaugeVec(
381 prometheus.GaugeOpts{
382 Name: "voltha_onu_bridge_port_1024_to_1518_octet_Txpackets",
383 Help: "packets (including bad packets) received that were 1024..1518 octets long, excluding framing bits, but including FCS.",
384 },
385 []string{"logical_device_id", "serial_number", "device_id", "title"},
386 )
387 volthaOnuBridgePortTxMulticastPacketsTotal = prometheus.NewGaugeVec(
388 prometheus.GaugeOpts{
389 Name: "voltha_onu_bridge_port_multicast_Txpackets",
390 Help: "packets received that were directed to a multicast address.",
391 },
392 []string{"logical_device_id", "serial_number", "device_id", "title"},
393 )
394 volthaOnuBridgePortTxBroadcastPacketsTotal = prometheus.NewGaugeVec(
395 prometheus.GaugeOpts{
396 Name: "voltha_onu_bridge_port_broadcast_Txpackets",
397 Help: "packets received that were directed to the broadcast address.",
398 },
399 []string{"logical_device_id", "serial_number", "device_id", "title"},
400 )
401 volthaOnuBridgePortTxOversizePacketsTotal = prometheus.NewGaugeVec(
402 prometheus.GaugeOpts{
403 Name: "voltha_onu_bridge_port_oversize_Txpackets",
404 Help: " packets received that were longer than 1518 octets",
405 },
406 []string{"logical_device_id", "serial_number", "device_id", "title"},
407 )
408 volthaOnuBridgePortTxCrcErrorPacketsTotal = prometheus.NewGaugeVec(
409 prometheus.GaugeOpts{
410 Name: "voltha_onu_bridge_port_crc_errored_Txpackets",
411 Help: "Packets with CRC errors",
412 },
413 []string{"logical_device_id", "serial_number", "device_id", "title"},
414 )
415 volthaOnuBridgePortTxUndersizePacketsTotal = prometheus.NewGaugeVec(
416 prometheus.GaugeOpts{
417 Name: "voltha_onu_bridge_port_undersize_Txpackets",
418 Help: "Packets received that were less than 64 octets long, but were otherwise well formed",
419 },
420 []string{"logical_device_id", "serial_number", "device_id", "title"},
421 )
422
423 volthaOnuBridgePortTxDropEventsTotal = prometheus.NewGaugeVec(
424 prometheus.GaugeOpts{
425 Name: "voltha_onu_bridge_port_Txdrop_events",
426 Help: "total number of events in which packets were dropped due to a lack of resources. ",
427 },
428 []string{"logical_device_id", "serial_number", "device_id", "title"},
429 )
430 volthaOnuBridgePort_64octetRxPacketsTotal = prometheus.NewGaugeVec(
431 prometheus.GaugeOpts{
432 Name: "voltha_onu_bridge_port_64_octets_Rxpackets",
433 Help: "packets (including bad packets) that were 64 octets long",
434 },
435 []string{"logical_device_id", "serial_number", "device_id", "title"},
436 )
437
438 volthaOnuBridgePort_65_127_octetRxPacketsTotal = prometheus.NewGaugeVec(
439 prometheus.GaugeOpts{
440 Name: "voltha_onu_bridge_port_65_to_127_octet_Rxpackets",
441 Help: "packets (including bad packets) that were 65..127 octets long, excluding framing bits but including FCS.",
442 },
443 []string{"logical_device_id", "serial_number", "device_id", "title"},
444 )
445
446 volthaOnuBridgePort_128_255_octetRxPacketsTotal = prometheus.NewGaugeVec(
447 prometheus.GaugeOpts{
448 Name: "voltha_onu_bridge_port_128_to_255_octet_packets",
449 Help: "packets (including bad packets) received that were 128..255 octets long, excluding framing bits but including FCS.",
450 },
451 []string{"logical_device_id", "serial_number", "device_id", "title"},
452 )
453
454 volthaOnuBridgePort_256_511_octetRxPacketsTotal = prometheus.NewGaugeVec(
455 prometheus.GaugeOpts{
456 Name: "voltha_onu_bridge_port_256_to_511_octet_Rxpackets",
457 Help: "packets (including bad packets) received that were 256..511 octets long, excluding framing bits but including FCS.",
458 },
459 []string{"logical_device_id", "serial_number", "device_id", "title"},
460 )
461
462 volthaOnuBridgePort_512_1023_octetRxPacketsTotal = prometheus.NewGaugeVec(
463 prometheus.GaugeOpts{
464 Name: "voltha_onu_bridge_port_512_to_1023_octet_Rxpackets",
465 Help: "packets (including bad packets) received that were 512..1 023 octets long, excluding framing bits but including FCS.",
466 },
467 []string{"logical_device_id", "serial_number", "device_id", "title"},
468 )
469
470 volthaOnuBridgePort_1024_1518_octetRxPacketsTotal = prometheus.NewGaugeVec(
471 prometheus.GaugeOpts{
472 Name: "voltha_onu_bridge_port_1024_to_1518_octet_Rxpackets",
473 Help: "packets (including bad packets) received that were 1024..1518 octets long, excluding framing bits, but including FCS.",
474 },
475 []string{"logical_device_id", "serial_number", "device_id", "title"},
476 )
477 volthaOnuBridgePortRxMulticastPacketsTotal = prometheus.NewGaugeVec(
478 prometheus.GaugeOpts{
479 Name: "voltha_onu_bridge_port_multicast_Rxpackets",
480 Help: "packets received that were directed to a multicast address.",
481 },
482 []string{"logical_device_id", "serial_number", "device_id", "title"},
483 )
484 volthaOnuBridgePortRxBroadcastPacketsTotal = prometheus.NewGaugeVec(
485 prometheus.GaugeOpts{
486 Name: "voltha_onu_bridge_port_broadcast_Rxpackets",
487 Help: "packets received that were directed to the broadcast address.",
488 },
489 []string{"logical_device_id", "serial_number", "device_id", "title"},
490 )
491 volthaOnuBridgePortRxOversizePacketsTotal = prometheus.NewGaugeVec(
492 prometheus.GaugeOpts{
493 Name: "voltha_onu_bridge_port_oversize_Rxpackets",
494 Help: " packets received that were longer than 1518 octets",
495 },
496 []string{"logical_device_id", "serial_number", "device_id", "title"},
497 )
498 volthaOnuBridgePortRxCrcErrorPacketsTotal = prometheus.NewGaugeVec(
499 prometheus.GaugeOpts{
500 Name: "voltha_onu_bridge_port_crc_errored_Rxpackets",
501 Help: "Packets with CRC errors",
502 },
503 []string{"logical_device_id", "serial_number", "device_id", "title"},
504 )
505 volthaOnuBridgePortRxUndersizePacketsTotal = prometheus.NewGaugeVec(
506 prometheus.GaugeOpts{
507 Name: "voltha_onu_bridge_port_undersize_Rxpackets",
508 Help: "Packets received that were less than 64 octets long, but were otherwise well formed",
509 },
510 []string{"logical_device_id", "serial_number", "device_id", "title"},
511 )
512
513 volthaOnuBridgePortRxDropEventsTotal = prometheus.NewGaugeVec(
514 prometheus.GaugeOpts{
515 Name: "voltha_onu_bridge_port_Rxdrop_events",
516 Help: "total number of events in which packets were dropped due to a lack of resources. ",
517 },
518 []string{"logical_device_id", "serial_number", "device_id", "title"},
519 )
520
Ganesh Bhure8d0c9942019-05-24 11:42:09 +0530521 // onos kpis
522 onosTxBytesTotal = prometheus.NewGaugeVec(
523 prometheus.GaugeOpts{
524 Name: "onos_tx_bytes_total",
525 Help: "Number of total bytes transmitted",
526 },
527 []string{"device_id", "port_id"},
528 )
529 onosRxBytesTotal = prometheus.NewGaugeVec(
530 prometheus.GaugeOpts{
531 Name: "onos_rx_bytes_total",
532 Help: "Number of total bytes received",
533 },
534 []string{"device_id", "port_id"},
535 )
536 onosTxPacketsTotal = prometheus.NewGaugeVec(
537 prometheus.GaugeOpts{
538 Name: "onos_tx_packets_total",
539 Help: "Number of total packets transmitted",
540 },
541 []string{"device_id", "port_id"},
542 )
543 onosRxPacketsTotal = prometheus.NewGaugeVec(
544 prometheus.GaugeOpts{
545 Name: "onos_rx_packets_total",
546 Help: "Number of total packets received",
547 },
548 []string{"device_id", "port_id"},
549 )
550
551 onosTxDropPacketsTotal = prometheus.NewGaugeVec(
552 prometheus.GaugeOpts{
553 Name: "onos_tx_drop_packets_total",
554 Help: "Number of total transmitted packets dropped",
555 },
556 []string{"device_id", "port_id"},
557 )
558
559 onosRxDropPacketsTotal = prometheus.NewGaugeVec(
560 prometheus.GaugeOpts{
561 Name: "onos_rx_drop_packets_total",
562 Help: "Number of total received packets dropped",
563 },
564 []string{"device_id", "port_id"},
565 )
kartikey dubey72ef3b82019-05-27 06:50:04 +0000566
567 // onos.aaa kpis
568 onosaaaRxAcceptResponses = prometheus.NewGauge(
569 prometheus.GaugeOpts{
570 Name: "onosaaa_rx_accept_responses",
571 Help: "Number of access accept packets received from the server",
572 })
573 onosaaaRxRejectResponses = prometheus.NewGauge(
574 prometheus.GaugeOpts{
575 Name: "onosaaa_rx_reject_responses",
576 Help: "Number of access reject packets received from the server",
577 })
578 onosaaaRxChallengeResponses = prometheus.NewGauge(
579 prometheus.GaugeOpts{
580 Name: "onosaaa_rx_challenge_response",
581 Help: "Number of access challenge packets received from the server",
582 })
583 onosaaaTxAccessRequests = prometheus.NewGauge(
584 prometheus.GaugeOpts{
585 Name: "onosaaa_tx_access_requests",
586 Help: "Number of access request packets sent to the server",
587 })
588 onosaaaRxInvalidValidators = prometheus.NewGauge(
589 prometheus.GaugeOpts{
590 Name: "onosaaa_rx_invalid_validators",
591 Help: "Number of access response packets received from the server with an invalid validator",
592 })
593 onosaaaRxUnknownType = prometheus.NewGauge(
594 prometheus.GaugeOpts{
595 Name: "onosaaa_rx_unknown_type",
596 Help: "Number of packets of an unknown RADIUS type received from the accounting server",
597 })
598 onosaaaPendingRequests = prometheus.NewGauge(
599 prometheus.GaugeOpts{
600 Name: "onosaaa_pending_responses",
601 Help: "Number of access request packets pending a response from the server",
602 })
603 onosaaaRxDroppedResponses = prometheus.NewGauge(
604 prometheus.GaugeOpts{
605 Name: "onosaaa_rx_dropped_responses",
606 Help: "Number of dropped packets received from the accounting server",
607 })
608 onosaaaRxMalformedResponses = prometheus.NewGauge(
609 prometheus.GaugeOpts{
610 Name: "onosaaa_rx_malformed_responses",
611 Help: "Number of malformed access response packets received from the server",
612 })
613 onosaaaRxUnknownserver = prometheus.NewGauge(
614 prometheus.GaugeOpts{
615 Name: "onosaaa_rx_from_unknown_server",
616 Help: "Number of packets received from an unknown server",
617 })
618 onosaaaRequestRttMillis = prometheus.NewGauge(
619 prometheus.GaugeOpts{
620 Name: "onosaaa_request_rttmillis",
621 Help: "Roundtrip packet time to the accounting server in Miliseconds",
622 })
623 onosaaaRequestReTx = prometheus.NewGauge(
624 prometheus.GaugeOpts{
625 Name: "onosaaa_request_re_tx",
626 Help: "Number of access request packets retransmitted to the server",
627 })
Daniele Morobe242582019-10-01 14:02:46 -0700628
Daniele Moro707c2092019-12-06 16:39:18 -0800629 // ONOS BNG kpis
Daniele Morobe242582019-10-01 14:02:46 -0700630
Daniele Moro707c2092019-12-06 16:39:18 -0800631 // --------------------- BNG UPSTREAM STATISTICS -----------------------------------------
632 onosBngUpTxBytes = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700633 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800634 Name: "onosBngUpTxBytes",
635 Help: "onosBngUpTxBytes",
Daniele Morobe242582019-10-01 14:02:46 -0700636 },
Daniele Moro707c2092019-12-06 16:39:18 -0800637 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700638 )
Daniele Moro707c2092019-12-06 16:39:18 -0800639 onosBngUpTxPackets = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700640 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800641 Name: "onosBngUpTxPackets",
642 Help: "onosBngUpTxPackets",
Daniele Morobe242582019-10-01 14:02:46 -0700643 },
Daniele Moro707c2092019-12-06 16:39:18 -0800644 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700645 )
Daniele Moro707c2092019-12-06 16:39:18 -0800646
647 onosBngUpRxBytes = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700648 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800649 Name: "onosBngUpRxBytes",
650 Help: "onosBngUpRxBytes",
Daniele Morobe242582019-10-01 14:02:46 -0700651 },
Daniele Moro707c2092019-12-06 16:39:18 -0800652 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700653 )
Daniele Moro707c2092019-12-06 16:39:18 -0800654
655 onosBngUpRxPackets = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700656 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800657 Name: "onosBngUpRxPackets",
658 Help: "onosBngUpRxPackets",
Daniele Morobe242582019-10-01 14:02:46 -0700659 },
Daniele Moro707c2092019-12-06 16:39:18 -0800660 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700661 )
Daniele Moro707c2092019-12-06 16:39:18 -0800662 onosBngUpDropBytes = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700663 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800664 Name: "onosBngUpDropBytes",
665 Help: "onosBngUpDropBytes",
Daniele Morobe242582019-10-01 14:02:46 -0700666 },
Daniele Moro707c2092019-12-06 16:39:18 -0800667 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700668 )
Daniele Moro707c2092019-12-06 16:39:18 -0800669 onosBngUpDropPackets = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700670 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800671 Name: "onosBngUpDropPackets",
672 Help: "onosBngUpDropPackets",
Daniele Morobe242582019-10-01 14:02:46 -0700673 },
Daniele Moro707c2092019-12-06 16:39:18 -0800674 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700675 )
Daniele Moro707c2092019-12-06 16:39:18 -0800676
677 // --------------------- BNG CONTROL STATISTICS ------------------------------------------
678 onosBngControlPackets = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700679 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800680 Name: "onosBngControlPackets",
681 Help: "onosBngControlPackets",
Daniele Morobe242582019-10-01 14:02:46 -0700682 },
Daniele Moro707c2092019-12-06 16:39:18 -0800683 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700684 )
Daniele Moro707c2092019-12-06 16:39:18 -0800685
686 // -------------------- BNG DOWNSTREAM STATISTICS ----------------------------------------
687 onosBngDownTxBytes = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700688 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800689 Name: "onosBngDownTxBytes",
690 Help: "onosBngDownTxBytes",
Daniele Morobe242582019-10-01 14:02:46 -0700691 },
Daniele Moro707c2092019-12-06 16:39:18 -0800692 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700693 )
Daniele Moro707c2092019-12-06 16:39:18 -0800694 onosBngDownTxPackets = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700695 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800696 Name: "onosBngDownTxPackets",
697 Help: "onosBngDownTxPackets",
Daniele Morobe242582019-10-01 14:02:46 -0700698 },
Daniele Moro707c2092019-12-06 16:39:18 -0800699 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700700 )
Daniele Moro707c2092019-12-06 16:39:18 -0800701
702 onosBngDownRxBytes = prometheus.NewGaugeVec(
703 prometheus.GaugeOpts{
704 Name: "onosBngDownRxBytes",
705 Help: "onosBngDownRxBytes",
706 },
707 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
708 )
709 onosBngDownRxPackets = prometheus.NewGaugeVec(
710 prometheus.GaugeOpts{
711 Name: "onosBngDownRxPackets",
712 Help: "onosBngDownRxPackets",
713 },
714 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
715 )
716
717 onosBngDownDropBytes = prometheus.NewGaugeVec(
718 prometheus.GaugeOpts{
719 Name: "onosBngDownDropBytes",
720 Help: "onosBngDownDropBytes",
721 },
722 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
723 )
724 onosBngDownDropPackets = prometheus.NewGaugeVec(
725 prometheus.GaugeOpts{
726 Name: "onosBngDownDropPackets",
727 Help: "onosBngDownDropPackets",
728 },
729 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
730 )
731
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +0530732 deviceLaserBiasCurrent = prometheus.NewGaugeVec(
Ganesh Bhuref15383e2019-11-11 15:15:14 +0530733 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800734 Name: "device_laser_bias_current",
Ganesh Bhuref15383e2019-11-11 15:15:14 +0530735 Help: "Device Laser Bias Current",
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +0530736 },
737 []string{"port_id"},
738 )
739 deviceTemperature = prometheus.NewGaugeVec(
Ganesh Bhuref15383e2019-11-11 15:15:14 +0530740 prometheus.GaugeOpts{
741 Name: "device_temperature",
742 Help: "Device Temperature",
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +0530743 },
744 []string{"port_id"},
745 )
746 deviceTxPower = prometheus.NewGaugeVec(
Ganesh Bhuref15383e2019-11-11 15:15:14 +0530747 prometheus.GaugeOpts{
748 Name: "device_tx_power",
749 Help: "Device Tx Power",
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +0530750 },
751 []string{"port_id"},
752 )
753 deviceVoltage = prometheus.NewGaugeVec(
Ganesh Bhuref15383e2019-11-11 15:15:14 +0530754 prometheus.GaugeOpts{
755 Name: "device_voltage",
756 Help: "Device Voltage",
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +0530757 },
758 []string{"port_id"},
759 )
760
Shubham Sharma57600bf2019-08-09 07:09:57 +0000761 onosaaaRxEapolLogoff = prometheus.NewGauge(
762 prometheus.GaugeOpts{
763 Name: "onosaaa_rx_eapol_Logoff",
764 Help: "Number of EAPOL logoff messages received resulting in disconnected state",
765 })
766 onosaaaTxEapolResIdentityMsg = prometheus.NewGauge(
767 prometheus.GaugeOpts{
768 Name: "onosaaa_tx_eapol_Res_IdentityMsg",
769 Help: "Number of authenticating transitions due to EAP response or identity message",
770 })
771 onosaaaTxAuthSuccess = prometheus.NewGauge(
772 prometheus.GaugeOpts{
773 Name: "onosaaa_tx_auth_Success",
774 Help: "Number of authenticated transitions due to successful authentication",
775 })
776 onosaaaTxAuthFailure = prometheus.NewGauge(
777 prometheus.GaugeOpts{
778 Name: "onosaaa_tx_auth_Failure",
779 Help: "Number of transitions to held due to authentication failure",
780 })
781 onosaaaTxStartReq = prometheus.NewGauge(
782 prometheus.GaugeOpts{
783 Name: "onosaaa_tx_start_Req",
784 Help: "Number of transitions to connecting due to start request",
785 })
786 onosaaaEapPktTxAuthChooseEap = prometheus.NewGauge(
787 prometheus.GaugeOpts{
788 Name: "onosaaa_eap_Pkt_tx_auth_choosing_Eap",
789 Help: "Number of EAP request packets sent due to the authenticator choosing the EAP method",
790 })
791 onosaaaTxRespnotNak = prometheus.NewGauge(
792 prometheus.GaugeOpts{
793 Name: "onosaaa_tx_Resp_not_Nak",
794 Help: "Number of transitions to response (received response other that NAK)",
Daniele Moro707c2092019-12-06 16:39:18 -0800795 })
shubham sharmae7f85752019-09-16 13:37:18 +0000796 onosaaaEapolFramesTx = prometheus.NewGauge(
797 prometheus.GaugeOpts{
798 Name: "onosaaa_eapol_frames_tx",
799 Help: "Number of EAPOL frames transmitted",
800 })
801 onosaaaAuthStateIdle = prometheus.NewGauge(
802 prometheus.GaugeOpts{
803 Name: "onosaaa_auth_state_idle",
804 Help: "Number of state machine status as Idle",
805 })
806 onosaaaRequestIdFramesTx = prometheus.NewGauge(
807 prometheus.GaugeOpts{
808 Name: "onosaaa_tx_request_id_frames",
809 Help: "Number of request ID EAP frames transmitted",
810 })
811 onosaaaRequestEapFramesTx = prometheus.NewGauge(
812 prometheus.GaugeOpts{
813 Name: "onosaaa_tx_request_eap_frames",
814 Help: "Number of request EAP frames transmitted",
815 })
816 onosaaaInvalidPktType = prometheus.NewGauge(
817 prometheus.GaugeOpts{
818 Name: "onosaaa_invalid_pkt_type",
819 Help: "Number of EAPOL frames received with invalid frame(Packet) type",
820 })
821 onosaaaInvalidBodyLength = prometheus.NewGauge(
822 prometheus.GaugeOpts{
823 Name: "onosaaa_invalid_body_length",
824 Help: "Number of EAPOL frames received with invalid body length",
825 })
826 onosaaaValidEapolFramesRx = prometheus.NewGauge(
827 prometheus.GaugeOpts{
828 Name: "onosaaa_rx_valid_eapol_frames",
829 Help: "Number of valid EAPOL frames received",
830 })
831 onosaaaPendingResSupplicant = prometheus.NewGauge(
832 prometheus.GaugeOpts{
833 Name: "onosaaa_pending_response_supplicant",
834 Help: "Number of request pending response from supplicant",
835 })
836 onosaaaRxResIdEapFrames = prometheus.NewGauge(
837 prometheus.GaugeOpts{
838 Name: "onosaaa_rx_res_id_eap_frames",
839 Help: "Number of response ID EAP frames received",
Shubham Sharma57600bf2019-08-09 07:09:57 +0000840 })
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700841)
842
kesavand6753e5e2020-04-28 03:34:21 -0400843func exportVolthaEthernetPonStats(data *voltha.MetricInformation) {
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700844
kesavand6753e5e2020-04-28 03:34:21 -0400845 volthaOltTxBytesTotal.WithLabelValues(
846 data.GetMetadata().GetLogicalDeviceId(),
847 data.GetMetadata().GetSerialNo(),
848 data.GetMetadata().GetDeviceId(),
849 "NA", // InterfaceID
850 "NA", // PonID
851 data.GetMetadata().GetContext()["portno"],
852 data.GetMetadata().GetTitle(),
853 ).Set(float64(data.GetMetrics()["TxBytes"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700854
kesavand6753e5e2020-04-28 03:34:21 -0400855 volthaOltRxBytesTotal.WithLabelValues(
856 data.GetMetadata().GetLogicalDeviceId(),
857 data.GetMetadata().GetSerialNo(),
858 data.GetMetadata().GetDeviceId(),
859 "NA", // InterfaceID
860 "NA", // PonID
861 data.GetMetadata().GetContext()["portno"],
862 data.GetMetadata().GetTitle(),
863 ).Set(float64(data.GetMetrics()["RxBytes"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700864
kesavand6753e5e2020-04-28 03:34:21 -0400865 volthaOltTxPacketsTotal.WithLabelValues(
866 data.GetMetadata().GetLogicalDeviceId(),
867 data.GetMetadata().GetSerialNo(),
868 data.GetMetadata().GetDeviceId(),
869 "NA", // InterfaceID
870 "NA", // PonID
871 data.GetMetadata().GetContext()["portno"],
872 data.GetMetadata().GetTitle(),
873 ).Set(float64(data.GetMetrics()["TxPackets"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700874
kesavand6753e5e2020-04-28 03:34:21 -0400875 volthaOltRxPacketsTotal.WithLabelValues(
876 data.GetMetadata().GetLogicalDeviceId(),
877 data.GetMetadata().GetSerialNo(),
878 data.GetMetadata().GetDeviceId(),
879 "NA", // InterfaceID
880 "NA", // PonID
881 data.GetMetadata().GetContext()["portno"],
882 data.GetMetadata().GetTitle(),
883 ).Set(float64(data.GetMetrics()["RxPackets"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700884
kesavand6753e5e2020-04-28 03:34:21 -0400885 volthaOltTxErrorPacketsTotal.WithLabelValues(
886 data.GetMetadata().GetLogicalDeviceId(),
887 data.GetMetadata().GetSerialNo(),
888 data.GetMetadata().GetDeviceId(),
889 "NA", // InterfaceID
890 "NA", // PonID
891 data.GetMetadata().GetContext()["portno"],
892 data.GetMetadata().GetTitle(),
893 ).Set(float64(data.GetMetrics()["TxErrorPackets"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700894
kesavand6753e5e2020-04-28 03:34:21 -0400895 volthaOltRxErrorPacketsTotal.WithLabelValues(
896 data.GetMetadata().GetLogicalDeviceId(),
897 data.GetMetadata().GetSerialNo(),
898 data.GetMetadata().GetDeviceId(),
899 "NA", // InterfaceID
900 "NA", // PonID
901 data.GetMetadata().GetContext()["portno"],
902 data.GetMetadata().GetTitle(),
903 ).Set(float64(data.GetMetrics()["RxErrorPackets"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700904
kesavand6753e5e2020-04-28 03:34:21 -0400905 volthaOltTxBroadcastPacketsTotal.WithLabelValues(
906 data.GetMetadata().GetLogicalDeviceId(),
907 data.GetMetadata().GetSerialNo(),
908 data.GetMetadata().GetDeviceId(),
909 "NA", // InterfaceID
910 "NA", // PonID
911 data.GetMetadata().GetContext()["portno"],
912 data.GetMetadata().GetTitle(),
913 ).Set(float64(data.GetMetrics()["TxBcastPackets"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700914
kesavand6753e5e2020-04-28 03:34:21 -0400915 volthaOltTxUnicastPacketsTotal.WithLabelValues(
916 data.GetMetadata().GetLogicalDeviceId(),
917 data.GetMetadata().GetSerialNo(),
918 data.GetMetadata().GetDeviceId(),
919 "NA", // InterfaceID
920 "NA", // PonID
921 data.GetMetadata().GetContext()["portno"],
922 data.GetMetadata().GetTitle(),
923 ).Set(float64(data.GetMetrics()["TxUcastPackets"]))
924
925 volthaOltTxMulticastPacketsTotal.WithLabelValues(
926 data.GetMetadata().GetLogicalDeviceId(),
927 data.GetMetadata().GetSerialNo(),
928 data.GetMetadata().GetDeviceId(),
929 "NA", // InterfaceID
930 "NA", // PonID
931 data.GetMetadata().GetContext()["portno"],
932 data.GetMetadata().GetTitle(),
933 ).Set(float64(data.GetMetrics()["TxMcastPackets"]))
934
935 volthaOltRxBroadcastPacketsTotal.WithLabelValues(
936 data.GetMetadata().GetLogicalDeviceId(),
937 data.GetMetadata().GetSerialNo(),
938 data.GetMetadata().GetDeviceId(),
939 "NA", // InterfaceID
940 "NA", // PonID
941 data.GetMetadata().GetContext()["portno"],
942 data.GetMetadata().GetTitle(),
943 ).Set(float64(data.GetMetrics()["RxBcastPackets"]))
944
945 volthaOltRxUnicastPacketsTotal.WithLabelValues(
946 data.GetMetadata().GetLogicalDeviceId(),
947 data.GetMetadata().GetSerialNo(),
948 data.GetMetadata().GetDeviceId(),
949 "NA", // InterfaceID
950 "NA", // PonID
951 data.GetMetadata().GetContext()["portno"],
952 data.GetMetadata().GetTitle(),
953 ).Set(float64(data.GetMetrics()["RxUcastPackets"]))
954
955 volthaOltRxMulticastPacketsTotal.WithLabelValues(
956 data.GetMetadata().GetLogicalDeviceId(),
957 data.GetMetadata().GetSerialNo(),
958 data.GetMetadata().GetDeviceId(),
959 "NA", // InterfaceID
960 "NA", // PonID
961 data.GetMetadata().GetContext()["portno"],
962 data.GetMetadata().GetTitle(),
963 ).Set(float64(data.GetMetrics()["RxMcastPackets"]))
964}
965
966func exportVolthaOnuEthernetBridgePortStats(data *voltha.MetricInformation) {
967
968 if (data.GetMetadata().GetContext()["upstream"]) == "True" {
969 // ONU. Extended Ethernet statistics.
970 volthaOnuBridgePortTxPacketsTotal.WithLabelValues(
971 data.Metadata.GetLogicalDeviceId(),
972 data.Metadata.GetSerialNo(),
973 data.Metadata.GetDeviceId(),
974 data.GetMetadata().GetTitle(),
975 ).Add(float64(data.GetMetrics()["packets"]))
976
977 volthaOnuBridgePortTxBytesTotal.WithLabelValues(
978 data.GetMetadata().GetLogicalDeviceId(),
979 data.GetMetadata().GetSerialNo(),
980 data.GetMetadata().GetDeviceId(),
981 data.GetMetadata().GetTitle(),
982 ).Add(float64(data.GetMetrics()["octets"]))
983
984 volthaOnuBridgePort_64octetTxPacketsTotal.WithLabelValues(
985 data.GetMetadata().GetLogicalDeviceId(),
986 data.Metadata.GetSerialNo(),
987 data.Metadata.GetDeviceId(),
988 data.GetMetadata().GetTitle(),
989 ).Add(float64(data.GetMetrics()["64_octets"]))
990
991 volthaOnuBridgePort_65_127_octetTxPacketsTotal.WithLabelValues(
992 data.GetMetadata().GetLogicalDeviceId(),
993 data.Metadata.GetSerialNo(),
994 data.Metadata.GetDeviceId(),
995 data.GetMetadata().GetTitle(),
996 ).Add(float64(data.GetMetrics()["65_to_127_octets"]))
997
998 volthaOnuBridgePort_128_255_octetTxPacketsTotal.WithLabelValues(
999 data.GetMetadata().GetLogicalDeviceId(),
1000 data.Metadata.GetSerialNo(),
1001 data.Metadata.GetDeviceId(),
1002 data.GetMetadata().GetTitle(),
1003 ).Add(float64(data.GetMetrics()["128_to_255_octets"]))
1004
1005 volthaOnuBridgePort_256_511_octetTxPacketsTotal.WithLabelValues(
1006 data.GetMetadata().GetLogicalDeviceId(),
1007 data.Metadata.GetSerialNo(),
1008 data.Metadata.GetDeviceId(),
1009 data.GetMetadata().GetTitle(),
1010 ).Add(float64(data.GetMetrics()["256_to_511_octets"]))
1011
1012 volthaOnuBridgePort_512_1023_octetTxPacketsTotal.WithLabelValues(
1013 data.GetMetadata().GetLogicalDeviceId(),
1014 data.Metadata.GetSerialNo(),
1015 data.Metadata.GetDeviceId(),
1016 data.GetMetadata().GetTitle(),
1017 ).Add(float64(data.GetMetrics()["512_to_1023_octets"]))
1018
1019 volthaOnuBridgePort_1024_1518_octetTxPacketsTotal.WithLabelValues(
1020 data.GetMetadata().GetLogicalDeviceId(),
1021 data.Metadata.GetSerialNo(),
1022 data.Metadata.GetDeviceId(),
1023 data.GetMetadata().GetTitle(),
1024 ).Add(float64(data.GetMetrics()["1024_to_1518_octets"]))
1025
1026 volthaOnuBridgePortTxMulticastPacketsTotal.WithLabelValues(
1027 data.GetMetadata().GetLogicalDeviceId(),
1028 data.Metadata.GetSerialNo(),
1029 data.Metadata.GetDeviceId(),
1030 data.GetMetadata().GetTitle(),
1031 ).Add(float64(data.GetMetrics()["multicast_packets"]))
1032
1033 volthaOnuBridgePortTxBroadcastPacketsTotal.WithLabelValues(
1034 data.GetMetadata().GetLogicalDeviceId(),
1035 data.Metadata.GetSerialNo(),
1036 data.Metadata.GetDeviceId(),
1037 data.GetMetadata().GetTitle(),
1038 ).Add(float64(data.GetMetrics()["broadcast_packets"]))
1039
1040 volthaOnuBridgePortTxOversizePacketsTotal.WithLabelValues(
1041 data.GetMetadata().GetLogicalDeviceId(),
1042 data.Metadata.GetSerialNo(),
1043 data.Metadata.GetDeviceId(),
1044 data.GetMetadata().GetTitle(),
1045 ).Add(float64(data.GetMetrics()["oversize_packets"]))
1046
1047 volthaOnuBridgePortTxCrcErrorPacketsTotal.WithLabelValues(
1048 data.GetMetadata().GetLogicalDeviceId(),
1049 data.Metadata.GetSerialNo(),
1050 data.Metadata.GetDeviceId(),
1051 data.GetMetadata().GetTitle(),
1052 ).Add(float64(data.GetMetrics()["crc_errored_packets"]))
1053
1054 volthaOnuBridgePortTxUndersizePacketsTotal.WithLabelValues(
1055 data.GetMetadata().GetLogicalDeviceId(),
1056 data.Metadata.GetSerialNo(),
1057 data.Metadata.GetDeviceId(),
1058 data.GetMetadata().GetTitle(),
1059 ).Add(float64(data.GetMetrics()["undersize_packets"]))
1060
1061 volthaOnuBridgePortTxDropEventsTotal.WithLabelValues(
1062 data.GetMetadata().GetLogicalDeviceId(),
1063 data.Metadata.GetSerialNo(),
1064 data.Metadata.GetDeviceId(),
1065 data.GetMetadata().GetTitle(),
1066 ).Add(float64(data.GetMetrics()["drop_events"]))
1067
1068 } else {
1069
1070 // ONU. Extended Ethernet statistics.
1071 volthaOnuBridgePortRxPacketsTotal.WithLabelValues(
1072 data.GetMetadata().GetLogicalDeviceId(),
1073 data.GetMetadata().GetSerialNo(),
1074 data.GetMetadata().GetDeviceId(),
1075 data.GetMetadata().GetTitle(),
1076 ).Add(float64(data.GetMetrics()["packets"]))
1077
1078 volthaOnuBridgePortRxBytesTotal.WithLabelValues(
1079 data.GetMetadata().GetLogicalDeviceId(),
1080 data.GetMetadata().GetSerialNo(),
1081 data.GetMetadata().GetDeviceId(),
1082 data.GetMetadata().GetTitle(),
1083 ).Add(float64(data.GetMetrics()["octets"]))
1084
1085 volthaOnuBridgePort_64octetRxPacketsTotal.WithLabelValues(
1086 data.GetMetadata().GetLogicalDeviceId(),
1087 data.Metadata.GetSerialNo(),
1088 data.Metadata.GetDeviceId(),
1089 data.GetMetadata().GetTitle(),
1090 ).Add(float64(data.GetMetrics()["64_octets"]))
1091
1092 volthaOnuBridgePort_65_127_octetRxPacketsTotal.WithLabelValues(
1093 data.GetMetadata().GetLogicalDeviceId(),
1094 data.Metadata.GetSerialNo(),
1095 data.Metadata.GetDeviceId(),
1096 data.GetMetadata().GetTitle(),
1097 ).Add(float64(data.GetMetrics()["65_to_127_octets"]))
1098
1099 volthaOnuBridgePort_128_255_octetRxPacketsTotal.WithLabelValues(
1100 data.GetMetadata().GetLogicalDeviceId(),
1101 data.Metadata.GetSerialNo(),
1102 data.Metadata.GetDeviceId(),
1103 data.GetMetadata().GetTitle(),
1104 ).Add(float64(data.GetMetrics()["128_to_255_octets"]))
1105
1106 volthaOnuBridgePort_256_511_octetRxPacketsTotal.WithLabelValues(
1107 data.GetMetadata().GetLogicalDeviceId(),
1108 data.Metadata.GetSerialNo(),
1109 data.Metadata.GetDeviceId(),
1110 data.GetMetadata().GetTitle(),
1111 ).Add(float64(data.GetMetrics()["256_to_511_octets"]))
1112
1113 volthaOnuBridgePort_512_1023_octetRxPacketsTotal.WithLabelValues(
1114 data.GetMetadata().GetLogicalDeviceId(),
1115 data.Metadata.GetSerialNo(),
1116 data.Metadata.GetDeviceId(),
1117 data.GetMetadata().GetTitle(),
1118 ).Add(float64(data.GetMetrics()["512_to_1023_octets"]))
1119
1120 volthaOnuBridgePort_1024_1518_octetRxPacketsTotal.WithLabelValues(
1121 data.GetMetadata().GetLogicalDeviceId(),
1122 data.Metadata.GetSerialNo(),
1123 data.Metadata.GetDeviceId(),
1124 data.GetMetadata().GetTitle(),
1125 ).Add(float64(data.GetMetrics()["1024_to_1518_octets"]))
1126
1127 volthaOnuBridgePortRxMulticastPacketsTotal.WithLabelValues(
1128 data.GetMetadata().GetLogicalDeviceId(),
1129 data.Metadata.GetSerialNo(),
1130 data.Metadata.GetDeviceId(),
1131 data.GetMetadata().GetTitle(),
1132 ).Add(float64(data.GetMetrics()["multicast_packets"]))
1133
1134 volthaOnuBridgePortRxBroadcastPacketsTotal.WithLabelValues(
1135 data.GetMetadata().GetLogicalDeviceId(),
1136 data.Metadata.GetSerialNo(),
1137 data.Metadata.GetDeviceId(),
1138 data.GetMetadata().GetTitle(),
1139 ).Add(float64(data.GetMetrics()["broadcast_packets"]))
1140
1141 volthaOnuBridgePortRxOversizePacketsTotal.WithLabelValues(
1142 data.GetMetadata().GetLogicalDeviceId(),
1143 data.Metadata.GetSerialNo(),
1144 data.Metadata.GetDeviceId(),
1145 data.GetMetadata().GetTitle(),
1146 ).Add(float64(data.GetMetrics()["oversize_packets"]))
1147
1148 volthaOnuBridgePortRxCrcErrorPacketsTotal.WithLabelValues(
1149 data.GetMetadata().GetLogicalDeviceId(),
1150 data.Metadata.GetSerialNo(),
1151 data.Metadata.GetDeviceId(),
1152 data.GetMetadata().GetTitle(),
1153 ).Add(float64(data.GetMetrics()["crc_errored_packets"]))
1154
1155 volthaOnuBridgePortRxUndersizePacketsTotal.WithLabelValues(
1156 data.GetMetadata().GetLogicalDeviceId(),
1157 data.Metadata.GetSerialNo(),
1158 data.Metadata.GetDeviceId(),
1159 data.GetMetadata().GetTitle(),
1160 ).Add(float64(data.GetMetrics()["undersize_packets"]))
1161
1162 volthaOnuBridgePortRxDropEventsTotal.WithLabelValues(
1163 data.GetMetadata().GetLogicalDeviceId(),
1164 data.Metadata.GetSerialNo(),
1165 data.Metadata.GetDeviceId(),
1166 data.GetMetadata().GetTitle(),
1167 ).Add(float64(data.GetMetrics()["drop_events"]))
1168
1169 }
1170}
1171
1172func exportVolthaOnuPonOpticalStats(data *voltha.MetricInformation) {
1173 VolthaOnuTransmtOpticalPower.WithLabelValues(
1174 data.GetMetadata().GetLogicalDeviceId(),
1175 data.GetMetadata().GetSerialNo(),
1176 data.GetMetadata().GetDeviceId(),
1177 data.GetMetadata().GetContext()["intf_id"],
1178 "NA", // PonID,
1179 "NA", //PortNumber
1180 data.GetMetadata().GetTitle(),
1181 ).Set(float64(data.GetMetrics()["transmit_power"]))
1182
1183 VolthaOnuReceivedOpticalPower.WithLabelValues(
1184 data.GetMetadata().GetLogicalDeviceId(),
1185 data.GetMetadata().GetSerialNo(),
1186 data.GetMetadata().GetDeviceId(),
1187 data.GetMetadata().GetContext()["intf_id"],
1188 "NA", // PonID,
1189 "NA", //PortNumber
1190 data.GetMetadata().GetTitle(),
1191 ).Set(float64(data.GetMetrics()["receive_power"]))
1192}
1193func exportVolthaOnuFecStats(data *voltha.MetricInformation) {
1194 volthaOnuFecCorrectedCodewordsTotal.WithLabelValues(
1195 data.GetMetadata().GetLogicalDeviceId(),
1196 data.GetMetadata().GetSerialNo(),
1197 data.GetMetadata().GetDeviceId(),
1198 data.GetMetadata().GetTitle(),
1199 ).Set(float64(data.GetMetrics()["corrected_code_words"]))
1200
1201 volthaOnuFecCodewordsTotal.WithLabelValues(
1202 data.GetMetadata().GetLogicalDeviceId(),
1203 data.GetMetadata().GetSerialNo(),
1204 data.GetMetadata().GetDeviceId(),
1205 data.GetMetadata().GetTitle(),
1206 ).Set(float64(data.GetMetrics()["total_code_words"]))
1207
1208 volthaOnuFecCorrectedBytesTotal.WithLabelValues(
1209 data.GetMetadata().GetLogicalDeviceId(),
1210 data.GetMetadata().GetSerialNo(),
1211 data.GetMetadata().GetDeviceId(),
1212 data.GetMetadata().GetTitle(),
1213 ).Set(float64(data.GetMetrics()["corrected_bytes"]))
1214
1215 volthaOnuFecSecondsTotal.WithLabelValues(
1216 data.GetMetadata().GetLogicalDeviceId(),
1217 data.GetMetadata().GetSerialNo(),
1218 data.GetMetadata().GetDeviceId(),
1219 data.GetMetadata().GetTitle(),
1220 ).Set(float64(data.GetMetrics()["fec_seconds"]))
1221
1222 volthaOnuFecUncorrectablewordsTotal.WithLabelValues(
1223 data.GetMetadata().GetLogicalDeviceId(),
1224 data.GetMetadata().GetSerialNo(),
1225 data.GetMetadata().GetDeviceId(),
1226 data.GetMetadata().GetTitle(),
1227 ).Set(float64(data.GetMetrics()["uncorrectable_code_words"]))
1228}
1229func exportVolthaOnuEthernetUniStats(data *voltha.MetricInformation) {
1230
1231 volthaEthernetUniSingleCollisionTotal.WithLabelValues(
1232 data.GetMetadata().GetLogicalDeviceId(),
1233 data.GetMetadata().GetSerialNo(),
1234 data.GetMetadata().GetDeviceId(),
1235 data.GetMetadata().GetContext()["intf_id"],
1236 data.GetMetadata().GetContext()["portno"],
1237 data.GetMetadata().GetTitle(),
1238 ).Set(float64(data.GetMetrics()["single_collision_frame_counter"]))
1239
1240 volthaEthernetUniMacLayerTramsmitErrorTotal.WithLabelValues(
1241 data.GetMetadata().GetLogicalDeviceId(),
1242 data.GetMetadata().GetSerialNo(),
1243 data.GetMetadata().GetDeviceId(),
1244 data.GetMetadata().GetContext()["intf_id"],
1245 data.GetMetadata().GetContext()["portno"],
1246 data.GetMetadata().GetTitle(),
1247 ).Set(float64(data.GetMetrics()["internal_mac_rx_error_counter"]))
1248
1249 volthaEthernetUniMultiCollisionTotal.WithLabelValues(
1250 data.GetMetadata().GetLogicalDeviceId(),
1251 data.GetMetadata().GetSerialNo(),
1252 data.GetMetadata().GetDeviceId(),
1253 data.GetMetadata().GetContext()["intf_id"],
1254 data.GetMetadata().GetContext()["portno"],
1255 data.GetMetadata().GetTitle(),
1256 ).Set(float64(data.GetMetrics()["multiple_collisions_frame_counter"]))
1257
1258 volthaEthernetUniFramestooLongTotal.WithLabelValues(
1259 data.GetMetadata().GetLogicalDeviceId(),
1260 data.GetMetadata().GetSerialNo(),
1261 data.GetMetadata().GetDeviceId(),
1262 data.GetMetadata().GetContext()["intf_id"],
1263 data.GetMetadata().GetContext()["portno"],
1264 data.GetMetadata().GetTitle(),
1265 ).Set(float64(data.GetMetrics()["frames_too_long"]))
1266 volthaEthernetUniAlignmentErrorTotal.WithLabelValues(
1267 data.GetMetadata().GetLogicalDeviceId(),
1268 data.GetMetadata().GetSerialNo(),
1269 data.GetMetadata().GetDeviceId(),
1270 data.GetMetadata().GetContext()["intf_id"],
1271 data.GetMetadata().GetContext()["portno"],
1272 data.GetMetadata().GetTitle(),
1273 ).Set(float64(data.GetMetrics()["alignment_error_counter"]))
1274
1275 volthaEthernetUniCarrierErrorTotal.WithLabelValues(
1276 data.GetMetadata().GetLogicalDeviceId(),
1277 data.GetMetadata().GetSerialNo(),
1278 data.GetMetadata().GetDeviceId(),
1279 data.GetMetadata().GetContext()["intf_id"],
1280 data.GetMetadata().GetContext()["portno"],
1281 data.GetMetadata().GetTitle(),
1282 ).Set(float64(data.GetMetrics()["carrier_sense_error_counter"]))
1283 volthaEthernetUniExcessiveCollisionErrorTotal.WithLabelValues(
1284 data.GetMetadata().GetLogicalDeviceId(),
1285 data.GetMetadata().GetSerialNo(),
1286 data.GetMetadata().GetDeviceId(),
1287 data.GetMetadata().GetContext()["intf_id"],
1288 data.GetMetadata().GetContext()["portno"],
1289 data.GetMetadata().GetTitle(),
1290 ).Set(float64(data.GetMetrics()["excessive_collision_counter"]))
1291
1292 volthaEthernetUniDeferredTxTotal.WithLabelValues(
1293 data.GetMetadata().GetLogicalDeviceId(),
1294 data.GetMetadata().GetSerialNo(),
1295 data.GetMetadata().GetDeviceId(),
1296 data.GetMetadata().GetContext()["intf_id"],
1297 data.GetMetadata().GetContext()["portno"],
1298 data.GetMetadata().GetTitle(),
1299 ).Set(float64(data.GetMetrics()["deferred_tx_counter"]))
1300
1301 volthaEthernetUniLateCollisionTotal.WithLabelValues(
1302 data.GetMetadata().GetLogicalDeviceId(),
1303 data.GetMetadata().GetSerialNo(),
1304 data.GetMetadata().GetDeviceId(),
1305 data.GetMetadata().GetContext()["intf_id"],
1306 data.GetMetadata().GetContext()["portno"],
1307 data.GetMetadata().GetTitle(),
1308 ).Set(float64(data.GetMetrics()["late_collision_counter"]))
1309
1310 volthaEthernetUniBufferOverflowsRxErrorTotal.WithLabelValues(
1311 data.GetMetadata().GetLogicalDeviceId(),
1312 data.GetMetadata().GetSerialNo(),
1313 data.GetMetadata().GetDeviceId(),
1314 data.GetMetadata().GetContext()["intf_id"],
1315 data.GetMetadata().GetContext()["portno"],
1316 data.GetMetadata().GetTitle(),
1317 ).Set(float64(data.GetMetrics()[""]))
1318
1319 volthaEthernetUniFcsErrorTotal.WithLabelValues(
1320 data.GetMetadata().GetLogicalDeviceId(),
1321 data.GetMetadata().GetSerialNo(),
1322 data.GetMetadata().GetDeviceId(),
1323 data.GetMetadata().GetContext()["intf_id"],
1324 data.GetMetadata().GetContext()["portno"],
1325 data.GetMetadata().GetTitle(),
1326 ).Set(float64(data.GetMetrics()["fcs_errors"]))
1327
1328 volthaEthernetUniSqeErrorTotal.WithLabelValues(
1329 data.GetMetadata().GetLogicalDeviceId(),
1330 data.GetMetadata().GetSerialNo(),
1331 data.GetMetadata().GetDeviceId(),
1332 data.GetMetadata().GetContext()["intf_id"],
1333 data.GetMetadata().GetContext()["portno"],
1334 data.GetMetadata().GetTitle(),
1335 ).Set(float64(data.GetMetrics()["sqe_counter"]))
1336
1337 volthaEthernetUniBufferOverflowsTxErrorTotal.WithLabelValues(
1338 data.GetMetadata().GetLogicalDeviceId(),
1339 data.GetMetadata().GetSerialNo(),
1340 data.GetMetadata().GetDeviceId(),
1341 data.GetMetadata().GetContext()["intf_id"],
1342 data.GetMetadata().GetContext()["portno"],
1343 data.GetMetadata().GetTitle(),
1344 ).Set(float64(data.GetMetrics()["buffer_overflows_on_tx"]))
1345
1346}
1347
1348func exportVolthaKPIevent2(kpi *voltha.KpiEvent2) {
1349 for _, data := range kpi.GetSliceData() {
1350 switch title := data.GetMetadata().GetTitle(); title {
1351 case "ETHERNET_NNI", "PON_OLT":
1352 exportVolthaEthernetPonStats(data)
Matteo Scandoloaab36db2018-10-09 19:54:11 -07001353 case "Ethernet_Bridge_Port_History":
kesavand6753e5e2020-04-28 03:34:21 -04001354 exportVolthaOnuEthernetBridgePortStats(data)
Ganesh Bhure967018e2019-07-29 14:48:32 +05301355 case "PON_Optical":
kesavand6753e5e2020-04-28 03:34:21 -04001356 exportVolthaOnuPonOpticalStats(data)
Matteo Scandoloaab36db2018-10-09 19:54:11 -07001357 case "Ethernet_UNI_History":
kesavand6753e5e2020-04-28 03:34:21 -04001358 exportVolthaOnuEthernetUniStats(data)
Matteo Scandoloaab36db2018-10-09 19:54:11 -07001359 case "FEC_History":
kesavand6753e5e2020-04-28 03:34:21 -04001360 exportVolthaOnuFecStats(data)
1361 case "UNI_Status":
1362 // Do nothing.
Matteo Scandoloaab36db2018-10-09 19:54:11 -07001363
Matteo Scandoloaab36db2018-10-09 19:54:11 -07001364 }
1365 }
1366}
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301367
1368func exportOnosKPI(kpi OnosKPI) {
1369
1370 for _, data := range kpi.Ports {
1371
1372 onosTxBytesTotal.WithLabelValues(
1373 kpi.DeviceID,
1374 data.PortID,
1375 ).Set(data.TxBytes)
1376
1377 onosRxBytesTotal.WithLabelValues(
1378 kpi.DeviceID,
1379 data.PortID,
1380 ).Set(data.RxBytes)
1381
1382 onosTxPacketsTotal.WithLabelValues(
1383 kpi.DeviceID,
1384 data.PortID,
1385 ).Set(data.TxPackets)
1386
1387 onosRxPacketsTotal.WithLabelValues(
1388 kpi.DeviceID,
1389 data.PortID,
1390 ).Set(data.RxPackets)
1391
1392 onosTxDropPacketsTotal.WithLabelValues(
1393 kpi.DeviceID,
1394 data.PortID,
1395 ).Set(data.TxPacketsDrop)
1396
1397 onosRxDropPacketsTotal.WithLabelValues(
1398 kpi.DeviceID,
1399 data.PortID,
1400 ).Set(data.RxPacketsDrop)
1401 }
1402}
1403
1404func exportImporterKPI(kpi ImporterKPI) {
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +05301405 deviceLaserBiasCurrent.WithLabelValues(
1406 kpi.PortId,
1407 ).Set(kpi.LaserBiasCurrent)
1408 deviceTemperature.WithLabelValues(
1409 kpi.PortId,
1410 ).Set(kpi.Temperature)
1411 deviceTxPower.WithLabelValues(
1412 kpi.PortId,
1413 ).Set(kpi.TxPower)
1414 deviceVoltage.WithLabelValues(
1415 kpi.PortId,
1416 ).Set(kpi.Voltage)
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301417}
1418
kartikey dubey72ef3b82019-05-27 06:50:04 +00001419func exportOnosAaaKPI(kpi OnosAaaKPI) {
1420
1421 onosaaaRxAcceptResponses.Set(kpi.RxAcceptResponses)
1422
1423 onosaaaRxRejectResponses.Set(kpi.RxRejectResponses)
1424
1425 onosaaaRxChallengeResponses.Set(kpi.RxChallengeResponses)
1426
1427 onosaaaTxAccessRequests.Set(kpi.TxAccessRequests)
1428
1429 onosaaaRxInvalidValidators.Set(kpi.RxInvalidValidators)
1430
1431 onosaaaRxUnknownType.Set(kpi.RxUnknownType)
1432
1433 onosaaaPendingRequests.Set(kpi.PendingRequests)
1434
1435 onosaaaRxDroppedResponses.Set(kpi.RxDroppedResponses)
1436
1437 onosaaaRxMalformedResponses.Set(kpi.RxMalformedResponses)
1438
1439 onosaaaRxUnknownserver.Set(kpi.RxUnknownserver)
1440
1441 onosaaaRequestRttMillis.Set(kpi.RequestRttMillis)
1442
1443 onosaaaRequestReTx.Set(kpi.RequestReTx)
Shubham Sharma57600bf2019-08-09 07:09:57 +00001444
1445 onosaaaRxEapolLogoff.Set(kpi.RxEapolLogoff)
1446
1447 onosaaaTxEapolResIdentityMsg.Set(kpi.TxEapolResIdentityMsg)
1448
1449 onosaaaTxAuthSuccess.Set(kpi.TxAuthSuccess)
1450
1451 onosaaaTxAuthFailure.Set(kpi.TxAuthFailure)
1452
1453 onosaaaTxStartReq.Set(kpi.TxStartReq)
1454
1455 onosaaaEapPktTxAuthChooseEap.Set(kpi.EapPktTxAuthChooseEap)
1456
1457 onosaaaTxRespnotNak.Set(kpi.TxResponseNotNak)
shubham sharmae7f85752019-09-16 13:37:18 +00001458
1459 onosaaaEapolFramesTx.Set(kpi.EapolFramesTx)
1460
1461 onosaaaAuthStateIdle.Set(kpi.AuthStateIdle)
1462
1463 onosaaaRequestIdFramesTx.Set(kpi.RequestIdFramesTx)
1464
1465 onosaaaRequestEapFramesTx.Set(kpi.RequestEapFramesTx)
1466
1467 onosaaaInvalidPktType.Set(kpi.InvalidPktType)
1468
1469 onosaaaInvalidBodyLength.Set(kpi.InvalidBodyLength)
1470
1471 onosaaaValidEapolFramesRx.Set(kpi.ValidEapolFramesRx)
1472
1473 onosaaaPendingResSupplicant.Set(kpi.PendingResSupplicant)
1474
1475 onosaaaRxResIdEapFrames.Set(kpi.RxResIdEapFrames)
kartikey dubey72ef3b82019-05-27 06:50:04 +00001476}
1477
Daniele Moro707c2092019-12-06 16:39:18 -08001478func exportOnosBngKPI(kpi OnosBngKPI) {
1479 logger.WithFields(log.Fields{
1480 "Mac": kpi.Mac,
1481 "Ip": kpi.Ip,
1482 "PppoeSessionId": strconv.Itoa(kpi.PppoeSessionId),
1483 "AttachmentType": kpi.AttachmentType,
1484 "STag": strconv.Itoa(kpi.STag),
1485 "CTag": strconv.Itoa(kpi.CTag),
1486 "onuSerialNumber": kpi.OnuSerialNumber,
1487 }).Trace("Received OnosBngKPI message")
Daniele Morobe242582019-10-01 14:02:46 -07001488
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +05301489 if kpi.UpTxBytes != nil {
Daniele Moro707c2092019-12-06 16:39:18 -08001490 onosBngUpTxBytes.WithLabelValues(
1491 kpi.Mac,
1492 kpi.Ip,
1493 strconv.Itoa(kpi.PppoeSessionId),
1494 strconv.Itoa(kpi.STag),
1495 strconv.Itoa(kpi.CTag),
1496 kpi.OnuSerialNumber,
1497 kpi.AttachmentType,
1498 ).Set(*kpi.UpTxBytes)
1499 }
1500 if kpi.UpTxPackets != nil {
1501 onosBngUpTxPackets.WithLabelValues(
1502 kpi.Mac,
1503 kpi.Ip,
1504 strconv.Itoa(kpi.PppoeSessionId),
1505 strconv.Itoa(kpi.STag),
1506 strconv.Itoa(kpi.CTag),
1507 kpi.OnuSerialNumber,
1508 kpi.AttachmentType,
1509 ).Set(*kpi.UpTxPackets)
1510 }
1511 if kpi.UpRxBytes != nil {
1512 onosBngUpRxBytes.WithLabelValues(
1513 kpi.Mac,
1514 kpi.Ip,
1515 strconv.Itoa(kpi.PppoeSessionId),
1516 strconv.Itoa(kpi.STag),
1517 strconv.Itoa(kpi.CTag),
1518 kpi.OnuSerialNumber,
1519 kpi.AttachmentType,
1520 ).Set(*kpi.UpRxBytes)
1521 }
1522 if kpi.UpRxPackets != nil {
1523 onosBngUpRxPackets.WithLabelValues(
1524 kpi.Mac,
1525 kpi.Ip,
1526 strconv.Itoa(kpi.PppoeSessionId),
1527 strconv.Itoa(kpi.STag),
1528 strconv.Itoa(kpi.CTag),
1529 kpi.OnuSerialNumber,
1530 kpi.AttachmentType,
1531 ).Set(*kpi.UpRxPackets)
1532 }
Daniele Morobe242582019-10-01 14:02:46 -07001533
Daniele Moro707c2092019-12-06 16:39:18 -08001534 if kpi.UpDropBytes != nil {
1535 onosBngUpDropBytes.WithLabelValues(
1536 kpi.Mac,
1537 kpi.Ip,
1538 strconv.Itoa(kpi.PppoeSessionId),
1539 strconv.Itoa(kpi.STag),
1540 strconv.Itoa(kpi.CTag),
1541 kpi.OnuSerialNumber,
1542 kpi.AttachmentType,
1543 ).Set(*kpi.UpDropBytes)
1544 }
1545 if kpi.UpDropPackets != nil {
1546 onosBngUpDropPackets.WithLabelValues(
1547 kpi.Mac,
1548 kpi.Ip,
1549 strconv.Itoa(kpi.PppoeSessionId),
1550 strconv.Itoa(kpi.STag),
1551 strconv.Itoa(kpi.CTag),
1552 kpi.OnuSerialNumber,
1553 kpi.AttachmentType,
1554 ).Set(*kpi.UpDropPackets)
1555 }
1556
1557 if kpi.ControlPackets != nil {
1558 onosBngControlPackets.WithLabelValues(
1559 kpi.Mac,
1560 kpi.Ip,
1561 strconv.Itoa(kpi.PppoeSessionId),
1562 strconv.Itoa(kpi.STag),
1563 strconv.Itoa(kpi.CTag),
1564 kpi.OnuSerialNumber,
1565 kpi.AttachmentType,
1566 ).Set(*kpi.ControlPackets)
1567 }
1568
1569 if kpi.DownTxBytes != nil {
1570 onosBngDownTxBytes.WithLabelValues(
1571 kpi.Mac,
1572 kpi.Ip,
1573 strconv.Itoa(kpi.PppoeSessionId),
1574 strconv.Itoa(kpi.STag),
1575 strconv.Itoa(kpi.CTag),
1576 kpi.OnuSerialNumber,
1577 kpi.AttachmentType,
1578 ).Set(*kpi.DownTxBytes)
1579 }
1580 if kpi.DownTxPackets != nil {
1581 onosBngDownTxPackets.WithLabelValues(
1582 kpi.Mac,
1583 kpi.Ip,
1584 strconv.Itoa(kpi.PppoeSessionId),
1585 strconv.Itoa(kpi.STag),
1586 strconv.Itoa(kpi.CTag),
1587 kpi.OnuSerialNumber,
1588 kpi.AttachmentType,
1589 ).Set(*kpi.DownTxPackets)
1590 }
1591
1592 if kpi.DownRxBytes != nil {
1593 onosBngDownRxBytes.WithLabelValues(
1594 kpi.Mac,
1595 kpi.Ip,
1596 strconv.Itoa(kpi.PppoeSessionId),
1597 strconv.Itoa(kpi.STag),
1598 strconv.Itoa(kpi.CTag),
1599 kpi.OnuSerialNumber,
1600 kpi.AttachmentType,
1601 ).Set(*kpi.DownRxBytes)
1602 }
1603 if kpi.DownRxPackets != nil {
1604 onosBngDownRxPackets.WithLabelValues(
1605 kpi.Mac,
1606 kpi.Ip,
1607 strconv.Itoa(kpi.PppoeSessionId),
1608 strconv.Itoa(kpi.STag),
1609 strconv.Itoa(kpi.CTag),
1610 kpi.OnuSerialNumber,
1611 kpi.AttachmentType,
1612 ).Set(*kpi.DownRxPackets)
1613 }
1614
1615 if kpi.DownDropBytes != nil {
1616 onosBngDownDropBytes.WithLabelValues(
1617 kpi.Mac,
1618 kpi.Ip,
1619 strconv.Itoa(kpi.PppoeSessionId),
1620 strconv.Itoa(kpi.STag),
1621 strconv.Itoa(kpi.CTag),
1622 kpi.OnuSerialNumber,
1623 kpi.AttachmentType,
1624 ).Set(*kpi.DownDropBytes)
1625 }
1626 if kpi.DownDropPackets != nil {
1627 onosBngDownDropPackets.WithLabelValues(
1628 kpi.Mac,
1629 kpi.Ip,
1630 strconv.Itoa(kpi.PppoeSessionId),
1631 strconv.Itoa(kpi.STag),
1632 strconv.Itoa(kpi.CTag),
1633 kpi.OnuSerialNumber,
1634 kpi.AttachmentType,
1635 ).Set(*kpi.DownDropPackets)
Daniele Morobe242582019-10-01 14:02:46 -07001636 }
1637}
1638
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301639func export(topic *string, data []byte) {
1640 switch *topic {
kesavand6753e5e2020-04-28 03:34:21 -04001641 case "voltha.events":
1642 event := voltha.Event{}
1643 err := proto.Unmarshal(data, &event)
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301644 if err != nil {
Ganesh Bhure74fb7b02019-06-28 16:16:26 +05301645 logger.Error("Invalid msg on voltha.kpis: %s, Unprocessed Msg: %s", err.Error(), string(data))
Ganesh Bhure0f2449c2019-07-15 10:31:38 +05301646 break
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301647 }
kesavand6753e5e2020-04-28 03:34:21 -04001648 if event.GetHeader().GetType() == voltha.EventType_KPI_EVENT2 {
1649 logger.Debug("KPI_EVENT2 received on voltha.events")
1650 kpiEvent2 := event.GetKpiEvent2()
1651 exportVolthaKPIevent2(kpiEvent2)
1652 }
1653
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301654 case "onos.kpis":
1655 kpi := OnosKPI{}
1656 err := json.Unmarshal(data, &kpi)
1657 if err != nil {
Ganesh Bhure74fb7b02019-06-28 16:16:26 +05301658 logger.Error("Invalid msg on onos.kpis: %s, Unprocessed Msg: %s", err.Error(), string(data))
Ganesh Bhure0f2449c2019-07-15 10:31:38 +05301659 break
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301660 }
1661 exportOnosKPI(kpi)
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +05301662 case "importer":
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301663 kpi := ImporterKPI{}
Ganesh Bhuref15383e2019-11-11 15:15:14 +05301664 strData := string(data)
1665 idx := strings.Index(strData, "{")
1666 strData = strData[idx:]
1667
1668 var m map[string]interface{}
1669 err := json.Unmarshal([]byte(strData), &m)
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301670 if err != nil {
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +05301671 logger.Error("Invalid msg on importer: %s", err.Error())
Ganesh Bhuref15383e2019-11-11 15:15:14 +05301672 logger.Debug("Unprocessed Msg: %s", strData)
1673 break
1674 }
1675 if val, ok := m["TransceiverStatistics"]; ok {
1676 stats := val.(map[string]interface{})
Ganesh Bhuref15383e2019-11-11 15:15:14 +05301677 kpi.LaserBiasCurrent = stats["BiasCurrent"].(map[string]interface{})["Reading"].(float64)
1678 kpi.Temperature = stats["Temperature"].(map[string]interface{})["Reading"].(float64)
1679 kpi.TxPower = stats["TxPower"].(map[string]interface{})["Reading"].(float64)
1680 kpi.Voltage = stats["Voltage"].(map[string]interface{})["Reading"].(float64)
1681 } else {
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +05301682 logger.Error("Optical stats (TransceiverStatistics) information missing [topic=importer")
Ganesh Bhuref15383e2019-11-11 15:15:14 +05301683 logger.Debug("Unprocessed Msg: %s", strData)
Ganesh Bhure0f2449c2019-07-15 10:31:38 +05301684 break
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301685 }
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +05301686 kpi.PortId = m["Id"].(string)
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301687 exportImporterKPI(kpi)
kartikey dubey72ef3b82019-05-27 06:50:04 +00001688 case "onos.aaa.stats.kpis":
1689 kpi := OnosAaaKPI{}
1690 err := json.Unmarshal(data, &kpi)
1691 if err != nil {
Ganesh Bhure74fb7b02019-06-28 16:16:26 +05301692 logger.Error("Invalid msg on onos.aaa.stats.kpis: %s, Unprocessed Msg: %s", err.Error(), string(data))
Ganesh Bhure0f2449c2019-07-15 10:31:38 +05301693 break
kartikey dubey72ef3b82019-05-27 06:50:04 +00001694 }
1695 exportOnosAaaKPI(kpi)
Daniele Moro707c2092019-12-06 16:39:18 -08001696 case "bng.stats":
1697 kpi := OnosBngKPI{}
Daniele Morobe242582019-10-01 14:02:46 -07001698 err := json.Unmarshal(data, &kpi)
1699 if err != nil {
Daniele Moro707c2092019-12-06 16:39:18 -08001700 logger.Error("Invalid msg on bng.stats: %s, Unprocessed Msg: %s", err.Error(), string(data))
Daniele Morobe242582019-10-01 14:02:46 -07001701 break
1702 }
Daniele Moro707c2092019-12-06 16:39:18 -08001703 exportOnosBngKPI(kpi)
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301704 default:
Ganesh Bhure74fb7b02019-06-28 16:16:26 +05301705 logger.Warn("Unexpected export. Topic [%s] not supported. Should not come here", *topic)
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301706 }
1707}