blob: e8ddc238cc3b3e2b2f54563b3df86eb6b02a7b14 [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"
kesavand2cde6582020-06-22 04:56:23 -040019 "strconv"
20 "strings"
21
Ganesh Bhure8d0c9942019-05-24 11:42:09 +053022 "gerrit.opencord.org/kafka-topic-exporter/common/logger"
kesavand0c064922020-12-15 15:36:25 +053023 "gerrit.opencord.org/kafka-topic-exporter/utils"
kesavand6753e5e2020-04-28 03:34:21 -040024 "github.com/golang/protobuf/proto"
kesavand2cde6582020-06-22 04:56:23 -040025 "github.com/opencord/device-management-interface/go/dmi"
Andrea Campanella764f1ed2022-03-24 11:46:38 +010026 "github.com/opencord/voltha-protos/v5/go/voltha"
Ganesh Bhure74fb7b02019-06-28 16:16:26 +053027 "github.com/prometheus/client_golang/prometheus"
Daniele Morobe242582019-10-01 14:02:46 -070028 log "github.com/sirupsen/logrus"
Matteo Scandoloaab36db2018-10-09 19:54:11 -070029)
30
31var (
Ganesh Bhure8d0c9942019-05-24 11:42:09 +053032 // voltha kpis
kesavand6753e5e2020-04-28 03:34:21 -040033 volthaOltTxBytesTotal = prometheus.NewGaugeVec(
Matteo Scandoloaab36db2018-10-09 19:54:11 -070034 prometheus.GaugeOpts{
kesavand6753e5e2020-04-28 03:34:21 -040035 Name: "voltha_olt_tx_bytes_total",
Matteo Scandoloaab36db2018-10-09 19:54:11 -070036 Help: "Number of total bytes transmitted",
37 },
38 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
39 )
kesavand6753e5e2020-04-28 03:34:21 -040040 volthaOltRxBytesTotal = prometheus.NewGaugeVec(
Matteo Scandoloaab36db2018-10-09 19:54:11 -070041 prometheus.GaugeOpts{
kesavand6753e5e2020-04-28 03:34:21 -040042 Name: "voltha_olt_rx_bytes_total",
Matteo Scandoloaab36db2018-10-09 19:54:11 -070043 Help: "Number of total bytes received",
44 },
45 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
46 )
kesavand6753e5e2020-04-28 03:34:21 -040047 volthaOltTxPacketsTotal = prometheus.NewGaugeVec(
Matteo Scandoloaab36db2018-10-09 19:54:11 -070048 prometheus.GaugeOpts{
kesavand6753e5e2020-04-28 03:34:21 -040049 Name: "voltha_olt_tx_packets_total",
Matteo Scandoloaab36db2018-10-09 19:54:11 -070050 Help: "Number of total packets transmitted",
51 },
52 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
53 )
kesavand6753e5e2020-04-28 03:34:21 -040054 volthaOltRxPacketsTotal = prometheus.NewGaugeVec(
Matteo Scandoloaab36db2018-10-09 19:54:11 -070055 prometheus.GaugeOpts{
kesavand6753e5e2020-04-28 03:34:21 -040056 Name: "voltha_olt_rx_packets_total",
Matteo Scandoloaab36db2018-10-09 19:54:11 -070057 Help: "Number of total packets received",
58 },
59 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
60 )
61
kesavand6753e5e2020-04-28 03:34:21 -040062 volthaOltTxErrorPacketsTotal = prometheus.NewGaugeVec(
Matteo Scandoloaab36db2018-10-09 19:54:11 -070063 prometheus.GaugeOpts{
kesavand6753e5e2020-04-28 03:34:21 -040064 Name: "voltha_olt_tx_error_packets_total",
Matteo Scandoloaab36db2018-10-09 19:54:11 -070065 Help: "Number of total transmitted packets error",
66 },
67 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
68 )
69
kesavand6753e5e2020-04-28 03:34:21 -040070 volthaOltRxErrorPacketsTotal = prometheus.NewGaugeVec(
Matteo Scandoloaab36db2018-10-09 19:54:11 -070071 prometheus.GaugeOpts{
kesavand6753e5e2020-04-28 03:34:21 -040072 Name: "voltha_olt_rx_error_packets_total",
Matteo Scandoloaab36db2018-10-09 19:54:11 -070073 Help: "Number of total received packets error",
74 },
75 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
76 )
Ganesh Bhure8d0c9942019-05-24 11:42:09 +053077
kesavand6753e5e2020-04-28 03:34:21 -040078 volthaOltTxBroadcastPacketsTotal = prometheus.NewGaugeVec(
79 prometheus.GaugeOpts{
80 Name: "voltha_olt_tx_broadcast_packets_total",
81 Help: "Number of total broadcast packets transmitted",
82 },
83 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
84 )
85
86 volthaOltTxUnicastPacketsTotal = prometheus.NewGaugeVec(
87 prometheus.GaugeOpts{
88 Name: "voltha_olt_tx_unicast_packets_total",
89 Help: "Number of total unicast packets transmitted",
90 },
91 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
92 )
93
94 volthaOltTxMulticastPacketsTotal = prometheus.NewGaugeVec(
95 prometheus.GaugeOpts{
96 Name: "voltha_olt_tx_multicast_packets_total",
97 Help: "Number of total multicast packets transmitted",
98 },
99 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
100 )
101
102 volthaOltRxBroadcastPacketsTotal = prometheus.NewGaugeVec(
103 prometheus.GaugeOpts{
104 Name: "voltha_olt_rx_broadcast_packets_total",
105 Help: "Number of total broadcast packets received",
106 },
107 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
108 )
109
110 volthaOltRxUnicastPacketsTotal = prometheus.NewGaugeVec(
111 prometheus.GaugeOpts{
112 Name: "voltha_olt_rx_unicast_packets_total",
113 Help: "Number of total unicast packets received",
114 },
115 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
116 )
117
118 volthaOltRxMulticastPacketsTotal = prometheus.NewGaugeVec(
119 prometheus.GaugeOpts{
120 Name: "voltha_olt_rx_multicast_packets_total",
121 Help: "Number of total multicast packets received",
122 },
123 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
124 )
125
Ganesh Bhure967018e2019-07-29 14:48:32 +0530126 // optical parameters
127 VolthaOnuLaserBiasCurrent = prometheus.NewGaugeVec(
128 prometheus.GaugeOpts{
129 Name: "voltha_onu_laser_bias_current",
130 Help: "ONU Laser bias current value",
131 },
132 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
133 )
134
135 volthaOnuTemperature = prometheus.NewGaugeVec(
136 prometheus.GaugeOpts{
137 Name: "voltha_onu_temperature",
138 Help: "ONU temperature value",
139 },
140 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
141 )
142
143 VolthaOnuPowerFeedVoltage = prometheus.NewGaugeVec(
144 prometheus.GaugeOpts{
145 Name: "voltha_onu_power_feed_voltage",
146 Help: "ONU power feed voltage",
147 },
148 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
149 )
150
151 VolthaOnuMeanOpticalLaunchPower = prometheus.NewGaugeVec(
152 prometheus.GaugeOpts{
153 Name: "voltha_onu_mean_optical_launch_power",
154 Help: "ONU mean optical launch power",
155 },
156 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
157 )
158
159 VolthaOnuReceivedOpticalPower = prometheus.NewGaugeVec(
160 prometheus.GaugeOpts{
161 Name: "voltha_onu_received_optical_power",
162 Help: "ONU received optical power",
163 },
164 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
165 )
166
kesavand6753e5e2020-04-28 03:34:21 -0400167 VolthaOnuTransmtOpticalPower = prometheus.NewGaugeVec(
168 prometheus.GaugeOpts{
169 Name: "voltha_onu_transmit_optical_power",
170 Help: "ONU transmited optical power",
171 },
172 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
173 )
174
175 // FEC parameters
176 volthaOnuFecCorrectedCodewordsTotal = prometheus.NewGaugeVec(
177 prometheus.GaugeOpts{
178 Name: "voltha_onu_fec_corrected_code_words",
179 Help: "Number of total code words corrected",
180 },
181 []string{"logical_device_id", "serial_number", "device_id", "title"},
182 )
183
184 volthaOnuFecCodewordsTotal = prometheus.NewGaugeVec(
185 prometheus.GaugeOpts{
186 Name: "voltha_onu_fec_code_words_total",
187 Help: "Number of total code words",
188 },
189 []string{"logical_device_id", "serial_number", "device_id", "title"},
190 )
191
192 volthaOnuFecCorrectedBytesTotal = prometheus.NewGaugeVec(
193 prometheus.GaugeOpts{
194 Name: "voltha_onu_fec_corrected_bytes_total",
195 Help: "Number of total corrected bytes",
196 },
197 []string{"logical_device_id", "serial_number", "device_id", "title"},
198 )
199
200 volthaOnuFecSecondsTotal = prometheus.NewGaugeVec(
201 prometheus.GaugeOpts{
202 Name: "voltha_onu_fec_corrected_fec_seconds_total",
203 Help: "Number of fec seconds total",
204 },
205 []string{"logical_device_id", "serial_number", "device_id", "title"},
206 )
207
208 volthaOnuFecUncorrectablewordsTotal = prometheus.NewGaugeVec(
209 prometheus.GaugeOpts{
210 Name: "voltha_onu_fec_uncorrectable_words_total",
211 Help: "Number of fec uncorrectable words",
212 },
213 []string{"logical_device_id", "serial_number", "device_id", "title"},
214 )
215 //Etheret UNI
216
217 volthaEthernetUniSingleCollisionTotal = prometheus.NewGaugeVec(
218 prometheus.GaugeOpts{
219 Name: "voltha_ethernet_uni_single_collision_frame_counter",
220 Help: "successfully transmitted frames but delayed by exactly one collision.",
221 },
222 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
223 )
224
225 volthaEthernetUniMacLayerTramsmitErrorTotal = prometheus.NewGaugeVec(
226 prometheus.GaugeOpts{
227 Name: "voltha_ethernet_uni_internal_mac_rx_error_counter",
228 Help: "transmission failed due to an internal MAC sublayer transmit error.",
229 },
230 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
231 )
232
233 volthaEthernetUniMultiCollisionTotal = prometheus.NewGaugeVec(
234 prometheus.GaugeOpts{
235 Name: "voltha_ethernet_uni_multiple_collisions_frame_counter",
236 Help: "successfully transmitted frames but delayed by multiple collisions.",
237 },
238 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
239 )
240
241 volthaEthernetUniFramestooLongTotal = prometheus.NewGaugeVec(
242 prometheus.GaugeOpts{
243 Name: "voltha_ethernet_uni_frames_too_long",
244 Help: "frames that exceeded the maximum permitted frame size.",
245 },
246 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
247 )
248
249 volthaEthernetUniAlignmentErrorTotal = prometheus.NewGaugeVec(
250 prometheus.GaugeOpts{
251 Name: "voltha_ethernet_uni_alignment_error_counter",
252 Help: "frames that were not an integral number of octets in length and did not pass the FCS check.",
253 },
254 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
255 )
256 volthaEthernetUniCarrierErrorTotal = prometheus.NewGaugeVec(
257 prometheus.GaugeOpts{
258 Name: "voltha_ethernet_uni_carrier_sense_error_counter",
259 Help: "number of times that carrier sense was lost or never asserted when attempting to transmit a frame.",
260 },
261 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
262 )
263 volthaEthernetUniExcessiveCollisionErrorTotal = prometheus.NewGaugeVec(
264 prometheus.GaugeOpts{
265 Name: "voltha_ethernet_uni_excessive_collision_counter",
266 Help: "frames whose transmission failed due to excessive collisions.",
267 },
268 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
269 )
270 volthaEthernetUniDeferredTxTotal = prometheus.NewGaugeVec(
271 prometheus.GaugeOpts{
272 Name: "voltha_ethernet_uni_deferred_tx_counter",
273 Help: "frames whose first transmission attempt was delayed because the medium was busy.",
274 },
275 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
276 )
277 volthaEthernetUniLateCollisionTotal = prometheus.NewGaugeVec(
278 prometheus.GaugeOpts{
279 Name: "voltha_ethernet_uni_late_collision_counter",
280 Help: "number of times that a collision was detected later than 512 bit times into the transmission of a packet.",
281 },
282 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
283 )
284 volthaEthernetUniBufferOverflowsRxErrorTotal = prometheus.NewGaugeVec(
285 prometheus.GaugeOpts{
286 Name: "voltha_ethernet_uni_buffer_overflows_on_rx",
287 Help: "number of times that the receive buffer overflowed.",
288 },
289 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
290 )
291 volthaEthernetUniFcsErrorTotal = prometheus.NewGaugeVec(
292 prometheus.GaugeOpts{
293 Name: "voltha_ethernet_uni_fcs_errors",
294 Help: " frames failed the frame check sequence (FCS) check.",
295 },
296 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
297 )
298 volthaEthernetUniSqeErrorTotal = prometheus.NewGaugeVec(
299 prometheus.GaugeOpts{
300 Name: "voltha_ethernet_uni_sqe_counter",
301 Help: "number of times that the SQE test error message was generated by the PLS sublayer",
302 },
303 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
304 )
305 volthaEthernetUniBufferOverflowsTxErrorTotal = prometheus.NewGaugeVec(
306 prometheus.GaugeOpts{
307 Name: "voltha_ethernet_uni_buffer_overflows_on_tx",
308 Help: " number of times that the transmit buffer overflowed.",
309 },
310 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
311 )
312 //Ethernet_Bridge_Port
313
314 volthaOnuBridgePortTxBytesTotal = prometheus.NewGaugeVec(
315 prometheus.GaugeOpts{
316 Name: "voltha_onu_bridge_port_tx_bytes_total",
317 Help: "Number of total bytes transmitted",
318 },
319 []string{"logical_device_id", "serial_number", "device_id", "title"},
320 )
321 volthaOnuBridgePortRxBytesTotal = prometheus.NewGaugeVec(
322 prometheus.GaugeOpts{
323 Name: "voltha_onu_bridge_port_rx_bytes_total",
324 Help: "Number of total bytes received",
325 },
326 []string{"logical_device_id", "serial_number", "device_id", "title"},
327 )
328 volthaOnuBridgePortTxPacketsTotal = prometheus.NewGaugeVec(
329 prometheus.GaugeOpts{
330 Name: "voltha_onu_bridge_port_tx_packets_total",
331 Help: "Number of total packets transmitted",
332 },
333 []string{"logical_device_id", "serial_number", "device_id", "title"},
334 )
335 volthaOnuBridgePortRxPacketsTotal = prometheus.NewGaugeVec(
336 prometheus.GaugeOpts{
337 Name: "voltha_onu_bridge_port_rx_packets_total",
338 Help: "Number of total packets received",
339 },
340 []string{"logical_device_id", "serial_number", "device_id", "title"},
341 )
342
343 volthaOnuBridgePort_64octetTxPacketsTotal = prometheus.NewGaugeVec(
344 prometheus.GaugeOpts{
345 Name: "voltha_onu_bridge_port_64_octets_Txpackets",
346 Help: "packets (including bad packets) that were 64 octets long",
347 },
348 []string{"logical_device_id", "serial_number", "device_id", "title"},
349 )
350
351 volthaOnuBridgePort_65_127_octetTxPacketsTotal = prometheus.NewGaugeVec(
352 prometheus.GaugeOpts{
353 Name: "voltha_onu_bridge_port_65_to_127_octet_Txpackets",
354 Help: "packets (including bad packets) that were 65..127 octets long, excluding framing bits but including FCS.",
355 },
356 []string{"logical_device_id", "serial_number", "device_id", "title"},
357 )
358
359 volthaOnuBridgePort_128_255_octetTxPacketsTotal = prometheus.NewGaugeVec(
360 prometheus.GaugeOpts{
361 Name: "voltha_onu_bridge_port_128_to_255_octet_Txpackets",
362 Help: "packets (including bad packets) received that were 128..255 octets long, excluding framing bits but including FCS.",
363 },
364 []string{"logical_device_id", "serial_number", "device_id", "title"},
365 )
366
367 volthaOnuBridgePort_256_511_octetTxPacketsTotal = prometheus.NewGaugeVec(
368 prometheus.GaugeOpts{
369 Name: "voltha_onu_bridge_port_256_to_511_octet_Txpackets",
370 Help: "packets (including bad packets) received that were 256..511 octets long, excluding framing bits but including FCS.",
371 },
372 []string{"logical_device_id", "serial_number", "device_id", "title"},
373 )
374
375 volthaOnuBridgePort_512_1023_octetTxPacketsTotal = prometheus.NewGaugeVec(
376 prometheus.GaugeOpts{
377 Name: "voltha_onu_bridge_port_512_to_1023_octet_Txpackets",
378 Help: "packets (including bad packets) received that were 512..1 023 octets long, excluding framing bits but including FCS.",
379 },
380 []string{"logical_device_id", "serial_number", "device_id", "title"},
381 )
382
383 volthaOnuBridgePort_1024_1518_octetTxPacketsTotal = prometheus.NewGaugeVec(
384 prometheus.GaugeOpts{
385 Name: "voltha_onu_bridge_port_1024_to_1518_octet_Txpackets",
386 Help: "packets (including bad packets) received that were 1024..1518 octets long, excluding framing bits, but including FCS.",
387 },
388 []string{"logical_device_id", "serial_number", "device_id", "title"},
389 )
390 volthaOnuBridgePortTxMulticastPacketsTotal = prometheus.NewGaugeVec(
391 prometheus.GaugeOpts{
392 Name: "voltha_onu_bridge_port_multicast_Txpackets",
393 Help: "packets received that were directed to a multicast address.",
394 },
395 []string{"logical_device_id", "serial_number", "device_id", "title"},
396 )
397 volthaOnuBridgePortTxBroadcastPacketsTotal = prometheus.NewGaugeVec(
398 prometheus.GaugeOpts{
399 Name: "voltha_onu_bridge_port_broadcast_Txpackets",
400 Help: "packets received that were directed to the broadcast address.",
401 },
402 []string{"logical_device_id", "serial_number", "device_id", "title"},
403 )
404 volthaOnuBridgePortTxOversizePacketsTotal = prometheus.NewGaugeVec(
405 prometheus.GaugeOpts{
406 Name: "voltha_onu_bridge_port_oversize_Txpackets",
407 Help: " packets received that were longer than 1518 octets",
408 },
409 []string{"logical_device_id", "serial_number", "device_id", "title"},
410 )
411 volthaOnuBridgePortTxCrcErrorPacketsTotal = prometheus.NewGaugeVec(
412 prometheus.GaugeOpts{
413 Name: "voltha_onu_bridge_port_crc_errored_Txpackets",
414 Help: "Packets with CRC errors",
415 },
416 []string{"logical_device_id", "serial_number", "device_id", "title"},
417 )
418 volthaOnuBridgePortTxUndersizePacketsTotal = prometheus.NewGaugeVec(
419 prometheus.GaugeOpts{
420 Name: "voltha_onu_bridge_port_undersize_Txpackets",
421 Help: "Packets received that were less than 64 octets long, but were otherwise well formed",
422 },
423 []string{"logical_device_id", "serial_number", "device_id", "title"},
424 )
425
426 volthaOnuBridgePortTxDropEventsTotal = prometheus.NewGaugeVec(
427 prometheus.GaugeOpts{
428 Name: "voltha_onu_bridge_port_Txdrop_events",
429 Help: "total number of events in which packets were dropped due to a lack of resources. ",
430 },
431 []string{"logical_device_id", "serial_number", "device_id", "title"},
432 )
433 volthaOnuBridgePort_64octetRxPacketsTotal = prometheus.NewGaugeVec(
434 prometheus.GaugeOpts{
435 Name: "voltha_onu_bridge_port_64_octets_Rxpackets",
436 Help: "packets (including bad packets) that were 64 octets long",
437 },
438 []string{"logical_device_id", "serial_number", "device_id", "title"},
439 )
440
441 volthaOnuBridgePort_65_127_octetRxPacketsTotal = prometheus.NewGaugeVec(
442 prometheus.GaugeOpts{
443 Name: "voltha_onu_bridge_port_65_to_127_octet_Rxpackets",
444 Help: "packets (including bad packets) that were 65..127 octets long, excluding framing bits but including FCS.",
445 },
446 []string{"logical_device_id", "serial_number", "device_id", "title"},
447 )
448
449 volthaOnuBridgePort_128_255_octetRxPacketsTotal = prometheus.NewGaugeVec(
450 prometheus.GaugeOpts{
451 Name: "voltha_onu_bridge_port_128_to_255_octet_packets",
452 Help: "packets (including bad packets) received that were 128..255 octets long, excluding framing bits but including FCS.",
453 },
454 []string{"logical_device_id", "serial_number", "device_id", "title"},
455 )
456
457 volthaOnuBridgePort_256_511_octetRxPacketsTotal = prometheus.NewGaugeVec(
458 prometheus.GaugeOpts{
459 Name: "voltha_onu_bridge_port_256_to_511_octet_Rxpackets",
460 Help: "packets (including bad packets) received that were 256..511 octets long, excluding framing bits but including FCS.",
461 },
462 []string{"logical_device_id", "serial_number", "device_id", "title"},
463 )
464
465 volthaOnuBridgePort_512_1023_octetRxPacketsTotal = prometheus.NewGaugeVec(
466 prometheus.GaugeOpts{
467 Name: "voltha_onu_bridge_port_512_to_1023_octet_Rxpackets",
468 Help: "packets (including bad packets) received that were 512..1 023 octets long, excluding framing bits but including FCS.",
469 },
470 []string{"logical_device_id", "serial_number", "device_id", "title"},
471 )
472
473 volthaOnuBridgePort_1024_1518_octetRxPacketsTotal = prometheus.NewGaugeVec(
474 prometheus.GaugeOpts{
475 Name: "voltha_onu_bridge_port_1024_to_1518_octet_Rxpackets",
476 Help: "packets (including bad packets) received that were 1024..1518 octets long, excluding framing bits, but including FCS.",
477 },
478 []string{"logical_device_id", "serial_number", "device_id", "title"},
479 )
480 volthaOnuBridgePortRxMulticastPacketsTotal = prometheus.NewGaugeVec(
481 prometheus.GaugeOpts{
482 Name: "voltha_onu_bridge_port_multicast_Rxpackets",
483 Help: "packets received that were directed to a multicast address.",
484 },
485 []string{"logical_device_id", "serial_number", "device_id", "title"},
486 )
487 volthaOnuBridgePortRxBroadcastPacketsTotal = prometheus.NewGaugeVec(
488 prometheus.GaugeOpts{
489 Name: "voltha_onu_bridge_port_broadcast_Rxpackets",
490 Help: "packets received that were directed to the broadcast address.",
491 },
492 []string{"logical_device_id", "serial_number", "device_id", "title"},
493 )
494 volthaOnuBridgePortRxOversizePacketsTotal = prometheus.NewGaugeVec(
495 prometheus.GaugeOpts{
496 Name: "voltha_onu_bridge_port_oversize_Rxpackets",
497 Help: " packets received that were longer than 1518 octets",
498 },
499 []string{"logical_device_id", "serial_number", "device_id", "title"},
500 )
501 volthaOnuBridgePortRxCrcErrorPacketsTotal = prometheus.NewGaugeVec(
502 prometheus.GaugeOpts{
503 Name: "voltha_onu_bridge_port_crc_errored_Rxpackets",
504 Help: "Packets with CRC errors",
505 },
506 []string{"logical_device_id", "serial_number", "device_id", "title"},
507 )
508 volthaOnuBridgePortRxUndersizePacketsTotal = prometheus.NewGaugeVec(
509 prometheus.GaugeOpts{
510 Name: "voltha_onu_bridge_port_undersize_Rxpackets",
511 Help: "Packets received that were less than 64 octets long, but were otherwise well formed",
512 },
513 []string{"logical_device_id", "serial_number", "device_id", "title"},
514 )
515
516 volthaOnuBridgePortRxDropEventsTotal = prometheus.NewGaugeVec(
517 prometheus.GaugeOpts{
518 Name: "voltha_onu_bridge_port_Rxdrop_events",
519 Help: "total number of events in which packets were dropped due to a lack of resources. ",
520 },
521 []string{"logical_device_id", "serial_number", "device_id", "title"},
522 )
523
Ganesh Bhure8d0c9942019-05-24 11:42:09 +0530524 // onos kpis
525 onosTxBytesTotal = prometheus.NewGaugeVec(
526 prometheus.GaugeOpts{
527 Name: "onos_tx_bytes_total",
528 Help: "Number of total bytes transmitted",
529 },
530 []string{"device_id", "port_id"},
531 )
532 onosRxBytesTotal = prometheus.NewGaugeVec(
533 prometheus.GaugeOpts{
534 Name: "onos_rx_bytes_total",
535 Help: "Number of total bytes received",
536 },
537 []string{"device_id", "port_id"},
538 )
539 onosTxPacketsTotal = prometheus.NewGaugeVec(
540 prometheus.GaugeOpts{
541 Name: "onos_tx_packets_total",
542 Help: "Number of total packets transmitted",
543 },
544 []string{"device_id", "port_id"},
545 )
546 onosRxPacketsTotal = prometheus.NewGaugeVec(
547 prometheus.GaugeOpts{
548 Name: "onos_rx_packets_total",
549 Help: "Number of total packets received",
550 },
551 []string{"device_id", "port_id"},
552 )
553
554 onosTxDropPacketsTotal = prometheus.NewGaugeVec(
555 prometheus.GaugeOpts{
556 Name: "onos_tx_drop_packets_total",
557 Help: "Number of total transmitted packets dropped",
558 },
559 []string{"device_id", "port_id"},
560 )
561
562 onosRxDropPacketsTotal = prometheus.NewGaugeVec(
563 prometheus.GaugeOpts{
564 Name: "onos_rx_drop_packets_total",
565 Help: "Number of total received packets dropped",
566 },
567 []string{"device_id", "port_id"},
568 )
kartikey dubey72ef3b82019-05-27 06:50:04 +0000569
570 // onos.aaa kpis
571 onosaaaRxAcceptResponses = prometheus.NewGauge(
572 prometheus.GaugeOpts{
573 Name: "onosaaa_rx_accept_responses",
574 Help: "Number of access accept packets received from the server",
575 })
576 onosaaaRxRejectResponses = prometheus.NewGauge(
577 prometheus.GaugeOpts{
578 Name: "onosaaa_rx_reject_responses",
579 Help: "Number of access reject packets received from the server",
580 })
581 onosaaaRxChallengeResponses = prometheus.NewGauge(
582 prometheus.GaugeOpts{
583 Name: "onosaaa_rx_challenge_response",
584 Help: "Number of access challenge packets received from the server",
585 })
586 onosaaaTxAccessRequests = prometheus.NewGauge(
587 prometheus.GaugeOpts{
588 Name: "onosaaa_tx_access_requests",
589 Help: "Number of access request packets sent to the server",
590 })
591 onosaaaRxInvalidValidators = prometheus.NewGauge(
592 prometheus.GaugeOpts{
593 Name: "onosaaa_rx_invalid_validators",
594 Help: "Number of access response packets received from the server with an invalid validator",
595 })
596 onosaaaRxUnknownType = prometheus.NewGauge(
597 prometheus.GaugeOpts{
598 Name: "onosaaa_rx_unknown_type",
599 Help: "Number of packets of an unknown RADIUS type received from the accounting server",
600 })
601 onosaaaPendingRequests = prometheus.NewGauge(
602 prometheus.GaugeOpts{
603 Name: "onosaaa_pending_responses",
604 Help: "Number of access request packets pending a response from the server",
605 })
606 onosaaaRxDroppedResponses = prometheus.NewGauge(
607 prometheus.GaugeOpts{
608 Name: "onosaaa_rx_dropped_responses",
609 Help: "Number of dropped packets received from the accounting server",
610 })
611 onosaaaRxMalformedResponses = prometheus.NewGauge(
612 prometheus.GaugeOpts{
613 Name: "onosaaa_rx_malformed_responses",
614 Help: "Number of malformed access response packets received from the server",
615 })
616 onosaaaRxUnknownserver = prometheus.NewGauge(
617 prometheus.GaugeOpts{
618 Name: "onosaaa_rx_from_unknown_server",
619 Help: "Number of packets received from an unknown server",
620 })
621 onosaaaRequestRttMillis = prometheus.NewGauge(
622 prometheus.GaugeOpts{
623 Name: "onosaaa_request_rttmillis",
624 Help: "Roundtrip packet time to the accounting server in Miliseconds",
625 })
626 onosaaaRequestReTx = prometheus.NewGauge(
627 prometheus.GaugeOpts{
628 Name: "onosaaa_request_re_tx",
629 Help: "Number of access request packets retransmitted to the server",
630 })
Daniele Morobe242582019-10-01 14:02:46 -0700631
Daniele Moro707c2092019-12-06 16:39:18 -0800632 // ONOS BNG kpis
Daniele Morobe242582019-10-01 14:02:46 -0700633
Daniele Moro707c2092019-12-06 16:39:18 -0800634 // --------------------- BNG UPSTREAM STATISTICS -----------------------------------------
635 onosBngUpTxBytes = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700636 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800637 Name: "onosBngUpTxBytes",
638 Help: "onosBngUpTxBytes",
Daniele Morobe242582019-10-01 14:02:46 -0700639 },
Daniele Moro707c2092019-12-06 16:39:18 -0800640 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700641 )
Daniele Moro707c2092019-12-06 16:39:18 -0800642 onosBngUpTxPackets = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700643 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800644 Name: "onosBngUpTxPackets",
645 Help: "onosBngUpTxPackets",
Daniele Morobe242582019-10-01 14:02:46 -0700646 },
Daniele Moro707c2092019-12-06 16:39:18 -0800647 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700648 )
Daniele Moro707c2092019-12-06 16:39:18 -0800649
650 onosBngUpRxBytes = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700651 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800652 Name: "onosBngUpRxBytes",
653 Help: "onosBngUpRxBytes",
Daniele Morobe242582019-10-01 14:02:46 -0700654 },
Daniele Moro707c2092019-12-06 16:39:18 -0800655 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700656 )
Daniele Moro707c2092019-12-06 16:39:18 -0800657
658 onosBngUpRxPackets = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700659 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800660 Name: "onosBngUpRxPackets",
661 Help: "onosBngUpRxPackets",
Daniele Morobe242582019-10-01 14:02:46 -0700662 },
Daniele Moro707c2092019-12-06 16:39:18 -0800663 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700664 )
Daniele Moro707c2092019-12-06 16:39:18 -0800665 onosBngUpDropBytes = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700666 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800667 Name: "onosBngUpDropBytes",
668 Help: "onosBngUpDropBytes",
Daniele Morobe242582019-10-01 14:02:46 -0700669 },
Daniele Moro707c2092019-12-06 16:39:18 -0800670 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700671 )
Daniele Moro707c2092019-12-06 16:39:18 -0800672 onosBngUpDropPackets = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700673 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800674 Name: "onosBngUpDropPackets",
675 Help: "onosBngUpDropPackets",
Daniele Morobe242582019-10-01 14:02:46 -0700676 },
Daniele Moro707c2092019-12-06 16:39:18 -0800677 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700678 )
Daniele Moro707c2092019-12-06 16:39:18 -0800679
680 // --------------------- BNG CONTROL STATISTICS ------------------------------------------
681 onosBngControlPackets = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700682 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800683 Name: "onosBngControlPackets",
684 Help: "onosBngControlPackets",
Daniele Morobe242582019-10-01 14:02:46 -0700685 },
Daniele Moro707c2092019-12-06 16:39:18 -0800686 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700687 )
Daniele Moro707c2092019-12-06 16:39:18 -0800688
689 // -------------------- BNG DOWNSTREAM STATISTICS ----------------------------------------
690 onosBngDownTxBytes = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700691 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800692 Name: "onosBngDownTxBytes",
693 Help: "onosBngDownTxBytes",
Daniele Morobe242582019-10-01 14:02:46 -0700694 },
Daniele Moro707c2092019-12-06 16:39:18 -0800695 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700696 )
Daniele Moro707c2092019-12-06 16:39:18 -0800697 onosBngDownTxPackets = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700698 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800699 Name: "onosBngDownTxPackets",
700 Help: "onosBngDownTxPackets",
Daniele Morobe242582019-10-01 14:02:46 -0700701 },
Daniele Moro707c2092019-12-06 16:39:18 -0800702 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700703 )
Daniele Moro707c2092019-12-06 16:39:18 -0800704
705 onosBngDownRxBytes = prometheus.NewGaugeVec(
706 prometheus.GaugeOpts{
707 Name: "onosBngDownRxBytes",
708 Help: "onosBngDownRxBytes",
709 },
710 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
711 )
712 onosBngDownRxPackets = prometheus.NewGaugeVec(
713 prometheus.GaugeOpts{
714 Name: "onosBngDownRxPackets",
715 Help: "onosBngDownRxPackets",
716 },
717 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
718 )
719
720 onosBngDownDropBytes = prometheus.NewGaugeVec(
721 prometheus.GaugeOpts{
722 Name: "onosBngDownDropBytes",
723 Help: "onosBngDownDropBytes",
724 },
725 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
726 )
727 onosBngDownDropPackets = prometheus.NewGaugeVec(
728 prometheus.GaugeOpts{
729 Name: "onosBngDownDropPackets",
730 Help: "onosBngDownDropPackets",
731 },
732 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
733 )
kesavand2cde6582020-06-22 04:56:23 -0400734 /* The device metrics will be removed in future and device
735 metrics defined in VOL-3255 will be supported
736 */
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +0530737 deviceLaserBiasCurrent = prometheus.NewGaugeVec(
Ganesh Bhuref15383e2019-11-11 15:15:14 +0530738 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800739 Name: "device_laser_bias_current",
Ganesh Bhuref15383e2019-11-11 15:15:14 +0530740 Help: "Device Laser Bias Current",
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +0530741 },
742 []string{"port_id"},
743 )
744 deviceTemperature = prometheus.NewGaugeVec(
Ganesh Bhuref15383e2019-11-11 15:15:14 +0530745 prometheus.GaugeOpts{
746 Name: "device_temperature",
747 Help: "Device Temperature",
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +0530748 },
749 []string{"port_id"},
750 )
751 deviceTxPower = prometheus.NewGaugeVec(
Ganesh Bhuref15383e2019-11-11 15:15:14 +0530752 prometheus.GaugeOpts{
753 Name: "device_tx_power",
754 Help: "Device Tx Power",
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +0530755 },
756 []string{"port_id"},
757 )
758 deviceVoltage = prometheus.NewGaugeVec(
Ganesh Bhuref15383e2019-11-11 15:15:14 +0530759 prometheus.GaugeOpts{
760 Name: "device_voltage",
761 Help: "Device Voltage",
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +0530762 },
763 []string{"port_id"},
764 )
765
Shubham Sharma57600bf2019-08-09 07:09:57 +0000766 onosaaaRxEapolLogoff = prometheus.NewGauge(
767 prometheus.GaugeOpts{
768 Name: "onosaaa_rx_eapol_Logoff",
769 Help: "Number of EAPOL logoff messages received resulting in disconnected state",
770 })
771 onosaaaTxEapolResIdentityMsg = prometheus.NewGauge(
772 prometheus.GaugeOpts{
773 Name: "onosaaa_tx_eapol_Res_IdentityMsg",
774 Help: "Number of authenticating transitions due to EAP response or identity message",
775 })
776 onosaaaTxAuthSuccess = prometheus.NewGauge(
777 prometheus.GaugeOpts{
778 Name: "onosaaa_tx_auth_Success",
779 Help: "Number of authenticated transitions due to successful authentication",
780 })
781 onosaaaTxAuthFailure = prometheus.NewGauge(
782 prometheus.GaugeOpts{
783 Name: "onosaaa_tx_auth_Failure",
784 Help: "Number of transitions to held due to authentication failure",
785 })
786 onosaaaTxStartReq = prometheus.NewGauge(
787 prometheus.GaugeOpts{
788 Name: "onosaaa_tx_start_Req",
789 Help: "Number of transitions to connecting due to start request",
790 })
791 onosaaaEapPktTxAuthChooseEap = prometheus.NewGauge(
792 prometheus.GaugeOpts{
793 Name: "onosaaa_eap_Pkt_tx_auth_choosing_Eap",
794 Help: "Number of EAP request packets sent due to the authenticator choosing the EAP method",
795 })
796 onosaaaTxRespnotNak = prometheus.NewGauge(
797 prometheus.GaugeOpts{
798 Name: "onosaaa_tx_Resp_not_Nak",
799 Help: "Number of transitions to response (received response other that NAK)",
Daniele Moro707c2092019-12-06 16:39:18 -0800800 })
shubham sharmae7f85752019-09-16 13:37:18 +0000801 onosaaaEapolFramesTx = prometheus.NewGauge(
802 prometheus.GaugeOpts{
803 Name: "onosaaa_eapol_frames_tx",
804 Help: "Number of EAPOL frames transmitted",
805 })
806 onosaaaAuthStateIdle = prometheus.NewGauge(
807 prometheus.GaugeOpts{
808 Name: "onosaaa_auth_state_idle",
809 Help: "Number of state machine status as Idle",
810 })
811 onosaaaRequestIdFramesTx = prometheus.NewGauge(
812 prometheus.GaugeOpts{
813 Name: "onosaaa_tx_request_id_frames",
814 Help: "Number of request ID EAP frames transmitted",
815 })
816 onosaaaRequestEapFramesTx = prometheus.NewGauge(
817 prometheus.GaugeOpts{
818 Name: "onosaaa_tx_request_eap_frames",
819 Help: "Number of request EAP frames transmitted",
820 })
821 onosaaaInvalidPktType = prometheus.NewGauge(
822 prometheus.GaugeOpts{
823 Name: "onosaaa_invalid_pkt_type",
824 Help: "Number of EAPOL frames received with invalid frame(Packet) type",
825 })
826 onosaaaInvalidBodyLength = prometheus.NewGauge(
827 prometheus.GaugeOpts{
828 Name: "onosaaa_invalid_body_length",
829 Help: "Number of EAPOL frames received with invalid body length",
830 })
831 onosaaaValidEapolFramesRx = prometheus.NewGauge(
832 prometheus.GaugeOpts{
833 Name: "onosaaa_rx_valid_eapol_frames",
834 Help: "Number of valid EAPOL frames received",
835 })
836 onosaaaPendingResSupplicant = prometheus.NewGauge(
837 prometheus.GaugeOpts{
838 Name: "onosaaa_pending_response_supplicant",
839 Help: "Number of request pending response from supplicant",
840 })
841 onosaaaRxResIdEapFrames = prometheus.NewGauge(
842 prometheus.GaugeOpts{
843 Name: "onosaaa_rx_res_id_eap_frames",
844 Help: "Number of response ID EAP frames received",
Shubham Sharma57600bf2019-08-09 07:09:57 +0000845 })
kesavand2cde6582020-06-22 04:56:23 -0400846 //OLT Device Metrics
847 //TODO: Check if component level temperatures are supported by Devices,If not remove in later versions of exporter
848 oltDeviceCpuTemp = prometheus.NewGaugeVec(
849 prometheus.GaugeOpts{
850 Name: "olt_device_cpu_temperature",
851 Help: "cpu temperature",
852 },
853 []string{"deviceuuid", "componentuuid", "componentname"},
854 )
855
856 oltDeviceCpuUsagePercent = prometheus.NewGaugeVec(
857 prometheus.GaugeOpts{
858 Name: "olt_device_cpu_usage_percentage",
859 Help: "usage of cpu",
860 },
861 []string{"deviceuuid", "componentuuid", "componentname"},
862 )
863 oltDeviceFanSpeed = prometheus.NewGaugeVec(
864 prometheus.GaugeOpts{
865 Name: "olt_device_fan_speed",
866 Help: "fan speed",
867 },
868 []string{"deviceuuid", "componentuuid", "componentname"},
869 )
870 oltDeviceDiskTemp = prometheus.NewGaugeVec(
871 prometheus.GaugeOpts{
872 Name: "olt_device_disk_temp",
873 Help: "disk temperature",
874 },
875 []string{"deviceuuid", "componentuuid", "componentname"},
876 )
877 oltDeviceDiskUsagePercent = prometheus.NewGaugeVec(
878 prometheus.GaugeOpts{
879 Name: "olt_device_disk_usage_percent",
880 Help: "disk usage percentage",
881 },
882 []string{"deviceuuid", "componentuuid", "componentname"},
883 )
884 oltDeviceRamTemp = prometheus.NewGaugeVec(
885 prometheus.GaugeOpts{
886 Name: "olt_device_ram_temp",
887 Help: "RAM temperature",
888 },
889 []string{"deviceuuid", "componentuuid", "componentname"},
890 )
891 oltDeviceRamUsagePercent = prometheus.NewGaugeVec(
892 prometheus.GaugeOpts{
893 Name: "olt_device_ram_usage_percentage",
894 Help: "RAM usage percentage",
895 },
896 []string{"deviceuuid", "componentuuid", "componentname"},
897 )
898
899 oltDevicePowerUsagePercent = prometheus.NewGaugeVec(
900 prometheus.GaugeOpts{
901 Name: "olt_device_power_usage_percentage",
902 Help: "power usage percentage",
903 },
904 []string{"deviceuuid", "componentuuid", "componentname"},
905 )
906
907 oltDeviceInnerSurroundTemp = prometheus.NewGaugeVec(
908 prometheus.GaugeOpts{
909 Name: "olt_device_inner_surrounding_temperature",
910 Help: "inner surrounding temperature",
911 },
912 []string{"deviceuuid", "componentuuid", "componentname"},
913 )
914
915 oltDevicePowerUsage = prometheus.NewGaugeVec(
916 prometheus.GaugeOpts{
917 Name: "olt_device_power_usage",
918 Help: "power usage",
919 },
920 []string{"deviceuuid", "componentuuid", "componentname"},
921 )
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700922)
923
kesavand2cde6582020-06-22 04:56:23 -0400924var oltDeviceMetrics = map[dmi.MetricNames]*prometheus.GaugeVec{
925 dmi.MetricNames_METRIC_CPU_TEMP: oltDeviceCpuTemp,
926 dmi.MetricNames_METRIC_CPU_USAGE_PERCENTAGE: oltDeviceCpuUsagePercent,
927 dmi.MetricNames_METRIC_FAN_SPEED: oltDeviceFanSpeed,
928 dmi.MetricNames_METRIC_DISK_TEMP: oltDeviceDiskTemp,
929 dmi.MetricNames_METRIC_DISK_USAGE_PERCENTAGE: oltDeviceDiskUsagePercent,
930 dmi.MetricNames_METRIC_RAM_TEMP: oltDeviceRamTemp,
931 dmi.MetricNames_METRIC_RAM_USAGE_PERCENTAGE: oltDeviceRamUsagePercent,
932 dmi.MetricNames_METRIC_POWER_USAGE_PERCENTAGE: oltDevicePowerUsagePercent,
933 dmi.MetricNames_METRIC_INNER_SURROUNDING_TEMP: oltDeviceInnerSurroundTemp,
934 dmi.MetricNames_METRIC_POWER_USAGE: oltDevicePowerUsage,
935}
936
kesavand6753e5e2020-04-28 03:34:21 -0400937func exportVolthaEthernetPonStats(data *voltha.MetricInformation) {
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700938
kesavand6753e5e2020-04-28 03:34:21 -0400939 volthaOltTxBytesTotal.WithLabelValues(
940 data.GetMetadata().GetLogicalDeviceId(),
941 data.GetMetadata().GetSerialNo(),
942 data.GetMetadata().GetDeviceId(),
943 "NA", // InterfaceID
944 "NA", // PonID
945 data.GetMetadata().GetContext()["portno"],
946 data.GetMetadata().GetTitle(),
947 ).Set(float64(data.GetMetrics()["TxBytes"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700948
kesavand6753e5e2020-04-28 03:34:21 -0400949 volthaOltRxBytesTotal.WithLabelValues(
950 data.GetMetadata().GetLogicalDeviceId(),
951 data.GetMetadata().GetSerialNo(),
952 data.GetMetadata().GetDeviceId(),
953 "NA", // InterfaceID
954 "NA", // PonID
955 data.GetMetadata().GetContext()["portno"],
956 data.GetMetadata().GetTitle(),
957 ).Set(float64(data.GetMetrics()["RxBytes"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700958
kesavand6753e5e2020-04-28 03:34:21 -0400959 volthaOltTxPacketsTotal.WithLabelValues(
960 data.GetMetadata().GetLogicalDeviceId(),
961 data.GetMetadata().GetSerialNo(),
962 data.GetMetadata().GetDeviceId(),
963 "NA", // InterfaceID
964 "NA", // PonID
965 data.GetMetadata().GetContext()["portno"],
966 data.GetMetadata().GetTitle(),
967 ).Set(float64(data.GetMetrics()["TxPackets"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700968
kesavand6753e5e2020-04-28 03:34:21 -0400969 volthaOltRxPacketsTotal.WithLabelValues(
970 data.GetMetadata().GetLogicalDeviceId(),
971 data.GetMetadata().GetSerialNo(),
972 data.GetMetadata().GetDeviceId(),
973 "NA", // InterfaceID
974 "NA", // PonID
975 data.GetMetadata().GetContext()["portno"],
976 data.GetMetadata().GetTitle(),
977 ).Set(float64(data.GetMetrics()["RxPackets"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700978
kesavand6753e5e2020-04-28 03:34:21 -0400979 volthaOltTxErrorPacketsTotal.WithLabelValues(
980 data.GetMetadata().GetLogicalDeviceId(),
981 data.GetMetadata().GetSerialNo(),
982 data.GetMetadata().GetDeviceId(),
983 "NA", // InterfaceID
984 "NA", // PonID
985 data.GetMetadata().GetContext()["portno"],
986 data.GetMetadata().GetTitle(),
987 ).Set(float64(data.GetMetrics()["TxErrorPackets"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700988
kesavand6753e5e2020-04-28 03:34:21 -0400989 volthaOltRxErrorPacketsTotal.WithLabelValues(
990 data.GetMetadata().GetLogicalDeviceId(),
991 data.GetMetadata().GetSerialNo(),
992 data.GetMetadata().GetDeviceId(),
993 "NA", // InterfaceID
994 "NA", // PonID
995 data.GetMetadata().GetContext()["portno"],
996 data.GetMetadata().GetTitle(),
997 ).Set(float64(data.GetMetrics()["RxErrorPackets"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700998
kesavand6753e5e2020-04-28 03:34:21 -0400999 volthaOltTxBroadcastPacketsTotal.WithLabelValues(
1000 data.GetMetadata().GetLogicalDeviceId(),
1001 data.GetMetadata().GetSerialNo(),
1002 data.GetMetadata().GetDeviceId(),
1003 "NA", // InterfaceID
1004 "NA", // PonID
1005 data.GetMetadata().GetContext()["portno"],
1006 data.GetMetadata().GetTitle(),
1007 ).Set(float64(data.GetMetrics()["TxBcastPackets"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -07001008
kesavand6753e5e2020-04-28 03:34:21 -04001009 volthaOltTxUnicastPacketsTotal.WithLabelValues(
1010 data.GetMetadata().GetLogicalDeviceId(),
1011 data.GetMetadata().GetSerialNo(),
1012 data.GetMetadata().GetDeviceId(),
1013 "NA", // InterfaceID
1014 "NA", // PonID
1015 data.GetMetadata().GetContext()["portno"],
1016 data.GetMetadata().GetTitle(),
1017 ).Set(float64(data.GetMetrics()["TxUcastPackets"]))
1018
1019 volthaOltTxMulticastPacketsTotal.WithLabelValues(
1020 data.GetMetadata().GetLogicalDeviceId(),
1021 data.GetMetadata().GetSerialNo(),
1022 data.GetMetadata().GetDeviceId(),
1023 "NA", // InterfaceID
1024 "NA", // PonID
1025 data.GetMetadata().GetContext()["portno"],
1026 data.GetMetadata().GetTitle(),
1027 ).Set(float64(data.GetMetrics()["TxMcastPackets"]))
1028
1029 volthaOltRxBroadcastPacketsTotal.WithLabelValues(
1030 data.GetMetadata().GetLogicalDeviceId(),
1031 data.GetMetadata().GetSerialNo(),
1032 data.GetMetadata().GetDeviceId(),
1033 "NA", // InterfaceID
1034 "NA", // PonID
1035 data.GetMetadata().GetContext()["portno"],
1036 data.GetMetadata().GetTitle(),
1037 ).Set(float64(data.GetMetrics()["RxBcastPackets"]))
1038
1039 volthaOltRxUnicastPacketsTotal.WithLabelValues(
1040 data.GetMetadata().GetLogicalDeviceId(),
1041 data.GetMetadata().GetSerialNo(),
1042 data.GetMetadata().GetDeviceId(),
1043 "NA", // InterfaceID
1044 "NA", // PonID
1045 data.GetMetadata().GetContext()["portno"],
1046 data.GetMetadata().GetTitle(),
1047 ).Set(float64(data.GetMetrics()["RxUcastPackets"]))
1048
1049 volthaOltRxMulticastPacketsTotal.WithLabelValues(
1050 data.GetMetadata().GetLogicalDeviceId(),
1051 data.GetMetadata().GetSerialNo(),
1052 data.GetMetadata().GetDeviceId(),
1053 "NA", // InterfaceID
1054 "NA", // PonID
1055 data.GetMetadata().GetContext()["portno"],
1056 data.GetMetadata().GetTitle(),
1057 ).Set(float64(data.GetMetrics()["RxMcastPackets"]))
1058}
1059
1060func exportVolthaOnuEthernetBridgePortStats(data *voltha.MetricInformation) {
kesavand0c064922020-12-15 15:36:25 +05301061 onuSN := utils.GetOnuSN(data.GetMetadata().GetSerialNo())
kesavand6753e5e2020-04-28 03:34:21 -04001062 if (data.GetMetadata().GetContext()["upstream"]) == "True" {
1063 // ONU. Extended Ethernet statistics.
kesavand0c064922020-12-15 15:36:25 +05301064
1065
kesavand6753e5e2020-04-28 03:34:21 -04001066 volthaOnuBridgePortTxPacketsTotal.WithLabelValues(
1067 data.Metadata.GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301068 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001069 data.Metadata.GetDeviceId(),
1070 data.GetMetadata().GetTitle(),
1071 ).Add(float64(data.GetMetrics()["packets"]))
1072
1073 volthaOnuBridgePortTxBytesTotal.WithLabelValues(
1074 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301075 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001076 data.GetMetadata().GetDeviceId(),
1077 data.GetMetadata().GetTitle(),
1078 ).Add(float64(data.GetMetrics()["octets"]))
1079
1080 volthaOnuBridgePort_64octetTxPacketsTotal.WithLabelValues(
1081 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301082 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001083 data.Metadata.GetDeviceId(),
1084 data.GetMetadata().GetTitle(),
1085 ).Add(float64(data.GetMetrics()["64_octets"]))
1086
1087 volthaOnuBridgePort_65_127_octetTxPacketsTotal.WithLabelValues(
1088 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301089 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001090 data.Metadata.GetDeviceId(),
1091 data.GetMetadata().GetTitle(),
1092 ).Add(float64(data.GetMetrics()["65_to_127_octets"]))
1093
1094 volthaOnuBridgePort_128_255_octetTxPacketsTotal.WithLabelValues(
1095 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301096 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001097 data.Metadata.GetDeviceId(),
1098 data.GetMetadata().GetTitle(),
1099 ).Add(float64(data.GetMetrics()["128_to_255_octets"]))
1100
1101 volthaOnuBridgePort_256_511_octetTxPacketsTotal.WithLabelValues(
1102 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301103 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001104 data.Metadata.GetDeviceId(),
1105 data.GetMetadata().GetTitle(),
1106 ).Add(float64(data.GetMetrics()["256_to_511_octets"]))
1107
1108 volthaOnuBridgePort_512_1023_octetTxPacketsTotal.WithLabelValues(
1109 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301110 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001111 data.Metadata.GetDeviceId(),
1112 data.GetMetadata().GetTitle(),
1113 ).Add(float64(data.GetMetrics()["512_to_1023_octets"]))
1114
1115 volthaOnuBridgePort_1024_1518_octetTxPacketsTotal.WithLabelValues(
1116 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301117 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001118 data.Metadata.GetDeviceId(),
1119 data.GetMetadata().GetTitle(),
1120 ).Add(float64(data.GetMetrics()["1024_to_1518_octets"]))
1121
1122 volthaOnuBridgePortTxMulticastPacketsTotal.WithLabelValues(
1123 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301124 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001125 data.Metadata.GetDeviceId(),
1126 data.GetMetadata().GetTitle(),
1127 ).Add(float64(data.GetMetrics()["multicast_packets"]))
1128
1129 volthaOnuBridgePortTxBroadcastPacketsTotal.WithLabelValues(
1130 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301131 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001132 data.Metadata.GetDeviceId(),
1133 data.GetMetadata().GetTitle(),
1134 ).Add(float64(data.GetMetrics()["broadcast_packets"]))
1135
1136 volthaOnuBridgePortTxOversizePacketsTotal.WithLabelValues(
1137 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301138 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001139 data.Metadata.GetDeviceId(),
1140 data.GetMetadata().GetTitle(),
1141 ).Add(float64(data.GetMetrics()["oversize_packets"]))
1142
1143 volthaOnuBridgePortTxCrcErrorPacketsTotal.WithLabelValues(
1144 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301145 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001146 data.Metadata.GetDeviceId(),
1147 data.GetMetadata().GetTitle(),
1148 ).Add(float64(data.GetMetrics()["crc_errored_packets"]))
1149
1150 volthaOnuBridgePortTxUndersizePacketsTotal.WithLabelValues(
1151 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301152 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001153 data.Metadata.GetDeviceId(),
1154 data.GetMetadata().GetTitle(),
1155 ).Add(float64(data.GetMetrics()["undersize_packets"]))
1156
1157 volthaOnuBridgePortTxDropEventsTotal.WithLabelValues(
1158 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301159 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001160 data.Metadata.GetDeviceId(),
1161 data.GetMetadata().GetTitle(),
1162 ).Add(float64(data.GetMetrics()["drop_events"]))
1163
1164 } else {
1165
kesavand0c064922020-12-15 15:36:25 +05301166
kesavand6753e5e2020-04-28 03:34:21 -04001167 // ONU. Extended Ethernet statistics.
1168 volthaOnuBridgePortRxPacketsTotal.WithLabelValues(
1169 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301170 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001171 data.GetMetadata().GetDeviceId(),
1172 data.GetMetadata().GetTitle(),
1173 ).Add(float64(data.GetMetrics()["packets"]))
1174
1175 volthaOnuBridgePortRxBytesTotal.WithLabelValues(
1176 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301177 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001178 data.GetMetadata().GetDeviceId(),
1179 data.GetMetadata().GetTitle(),
1180 ).Add(float64(data.GetMetrics()["octets"]))
1181
1182 volthaOnuBridgePort_64octetRxPacketsTotal.WithLabelValues(
1183 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301184 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001185 data.Metadata.GetDeviceId(),
1186 data.GetMetadata().GetTitle(),
1187 ).Add(float64(data.GetMetrics()["64_octets"]))
1188
1189 volthaOnuBridgePort_65_127_octetRxPacketsTotal.WithLabelValues(
1190 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301191 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001192 data.Metadata.GetDeviceId(),
1193 data.GetMetadata().GetTitle(),
1194 ).Add(float64(data.GetMetrics()["65_to_127_octets"]))
1195
1196 volthaOnuBridgePort_128_255_octetRxPacketsTotal.WithLabelValues(
1197 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301198 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001199 data.Metadata.GetDeviceId(),
1200 data.GetMetadata().GetTitle(),
1201 ).Add(float64(data.GetMetrics()["128_to_255_octets"]))
1202
1203 volthaOnuBridgePort_256_511_octetRxPacketsTotal.WithLabelValues(
1204 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301205 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001206 data.Metadata.GetDeviceId(),
1207 data.GetMetadata().GetTitle(),
1208 ).Add(float64(data.GetMetrics()["256_to_511_octets"]))
1209
1210 volthaOnuBridgePort_512_1023_octetRxPacketsTotal.WithLabelValues(
1211 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301212 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001213 data.Metadata.GetDeviceId(),
1214 data.GetMetadata().GetTitle(),
1215 ).Add(float64(data.GetMetrics()["512_to_1023_octets"]))
1216
1217 volthaOnuBridgePort_1024_1518_octetRxPacketsTotal.WithLabelValues(
1218 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301219 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001220 data.Metadata.GetDeviceId(),
1221 data.GetMetadata().GetTitle(),
1222 ).Add(float64(data.GetMetrics()["1024_to_1518_octets"]))
1223
1224 volthaOnuBridgePortRxMulticastPacketsTotal.WithLabelValues(
1225 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301226 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001227 data.Metadata.GetDeviceId(),
1228 data.GetMetadata().GetTitle(),
1229 ).Add(float64(data.GetMetrics()["multicast_packets"]))
1230
1231 volthaOnuBridgePortRxBroadcastPacketsTotal.WithLabelValues(
1232 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301233 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001234 data.Metadata.GetDeviceId(),
1235 data.GetMetadata().GetTitle(),
1236 ).Add(float64(data.GetMetrics()["broadcast_packets"]))
1237
1238 volthaOnuBridgePortRxOversizePacketsTotal.WithLabelValues(
1239 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301240 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001241 data.Metadata.GetDeviceId(),
1242 data.GetMetadata().GetTitle(),
1243 ).Add(float64(data.GetMetrics()["oversize_packets"]))
1244
1245 volthaOnuBridgePortRxCrcErrorPacketsTotal.WithLabelValues(
1246 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301247 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001248 data.Metadata.GetDeviceId(),
1249 data.GetMetadata().GetTitle(),
1250 ).Add(float64(data.GetMetrics()["crc_errored_packets"]))
1251
1252 volthaOnuBridgePortRxUndersizePacketsTotal.WithLabelValues(
1253 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301254 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001255 data.Metadata.GetDeviceId(),
1256 data.GetMetadata().GetTitle(),
1257 ).Add(float64(data.GetMetrics()["undersize_packets"]))
1258
1259 volthaOnuBridgePortRxDropEventsTotal.WithLabelValues(
1260 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301261 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001262 data.Metadata.GetDeviceId(),
1263 data.GetMetadata().GetTitle(),
1264 ).Add(float64(data.GetMetrics()["drop_events"]))
1265
1266 }
1267}
1268
1269func exportVolthaOnuPonOpticalStats(data *voltha.MetricInformation) {
kesavand0c064922020-12-15 15:36:25 +05301270 onuSN := utils.GetOnuSN(data.GetMetadata().GetSerialNo())
kesavand6753e5e2020-04-28 03:34:21 -04001271 VolthaOnuTransmtOpticalPower.WithLabelValues(
1272 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301273 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001274 data.GetMetadata().GetDeviceId(),
1275 data.GetMetadata().GetContext()["intf_id"],
1276 "NA", // PonID,
1277 "NA", //PortNumber
1278 data.GetMetadata().GetTitle(),
1279 ).Set(float64(data.GetMetrics()["transmit_power"]))
1280
1281 VolthaOnuReceivedOpticalPower.WithLabelValues(
1282 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301283 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001284 data.GetMetadata().GetDeviceId(),
1285 data.GetMetadata().GetContext()["intf_id"],
1286 "NA", // PonID,
1287 "NA", //PortNumber
1288 data.GetMetadata().GetTitle(),
1289 ).Set(float64(data.GetMetrics()["receive_power"]))
1290}
1291func exportVolthaOnuFecStats(data *voltha.MetricInformation) {
kesavand0c064922020-12-15 15:36:25 +05301292 onuSN := utils.GetOnuSN(data.GetMetadata().GetSerialNo())
kesavand6753e5e2020-04-28 03:34:21 -04001293 volthaOnuFecCorrectedCodewordsTotal.WithLabelValues(
1294 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301295 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001296 data.GetMetadata().GetDeviceId(),
1297 data.GetMetadata().GetTitle(),
1298 ).Set(float64(data.GetMetrics()["corrected_code_words"]))
1299
1300 volthaOnuFecCodewordsTotal.WithLabelValues(
1301 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301302 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001303 data.GetMetadata().GetDeviceId(),
1304 data.GetMetadata().GetTitle(),
1305 ).Set(float64(data.GetMetrics()["total_code_words"]))
1306
1307 volthaOnuFecCorrectedBytesTotal.WithLabelValues(
1308 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301309 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001310 data.GetMetadata().GetDeviceId(),
1311 data.GetMetadata().GetTitle(),
1312 ).Set(float64(data.GetMetrics()["corrected_bytes"]))
1313
1314 volthaOnuFecSecondsTotal.WithLabelValues(
1315 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301316 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001317 data.GetMetadata().GetDeviceId(),
1318 data.GetMetadata().GetTitle(),
1319 ).Set(float64(data.GetMetrics()["fec_seconds"]))
1320
1321 volthaOnuFecUncorrectablewordsTotal.WithLabelValues(
1322 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301323 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001324 data.GetMetadata().GetDeviceId(),
1325 data.GetMetadata().GetTitle(),
1326 ).Set(float64(data.GetMetrics()["uncorrectable_code_words"]))
1327}
1328func exportVolthaOnuEthernetUniStats(data *voltha.MetricInformation) {
kesavand0c064922020-12-15 15:36:25 +05301329 onuSN := utils.GetOnuSN(data.GetMetadata().GetSerialNo())
kesavand6753e5e2020-04-28 03:34:21 -04001330
1331 volthaEthernetUniSingleCollisionTotal.WithLabelValues(
1332 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301333 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001334 data.GetMetadata().GetDeviceId(),
1335 data.GetMetadata().GetContext()["intf_id"],
1336 data.GetMetadata().GetContext()["portno"],
1337 data.GetMetadata().GetTitle(),
1338 ).Set(float64(data.GetMetrics()["single_collision_frame_counter"]))
1339
1340 volthaEthernetUniMacLayerTramsmitErrorTotal.WithLabelValues(
1341 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301342 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001343 data.GetMetadata().GetDeviceId(),
1344 data.GetMetadata().GetContext()["intf_id"],
1345 data.GetMetadata().GetContext()["portno"],
1346 data.GetMetadata().GetTitle(),
1347 ).Set(float64(data.GetMetrics()["internal_mac_rx_error_counter"]))
1348
1349 volthaEthernetUniMultiCollisionTotal.WithLabelValues(
1350 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301351 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001352 data.GetMetadata().GetDeviceId(),
1353 data.GetMetadata().GetContext()["intf_id"],
1354 data.GetMetadata().GetContext()["portno"],
1355 data.GetMetadata().GetTitle(),
1356 ).Set(float64(data.GetMetrics()["multiple_collisions_frame_counter"]))
1357
1358 volthaEthernetUniFramestooLongTotal.WithLabelValues(
1359 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301360 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001361 data.GetMetadata().GetDeviceId(),
1362 data.GetMetadata().GetContext()["intf_id"],
1363 data.GetMetadata().GetContext()["portno"],
1364 data.GetMetadata().GetTitle(),
1365 ).Set(float64(data.GetMetrics()["frames_too_long"]))
1366 volthaEthernetUniAlignmentErrorTotal.WithLabelValues(
1367 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301368 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001369 data.GetMetadata().GetDeviceId(),
1370 data.GetMetadata().GetContext()["intf_id"],
1371 data.GetMetadata().GetContext()["portno"],
1372 data.GetMetadata().GetTitle(),
1373 ).Set(float64(data.GetMetrics()["alignment_error_counter"]))
1374
1375 volthaEthernetUniCarrierErrorTotal.WithLabelValues(
1376 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301377 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001378 data.GetMetadata().GetDeviceId(),
1379 data.GetMetadata().GetContext()["intf_id"],
1380 data.GetMetadata().GetContext()["portno"],
1381 data.GetMetadata().GetTitle(),
1382 ).Set(float64(data.GetMetrics()["carrier_sense_error_counter"]))
1383 volthaEthernetUniExcessiveCollisionErrorTotal.WithLabelValues(
1384 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301385 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001386 data.GetMetadata().GetDeviceId(),
1387 data.GetMetadata().GetContext()["intf_id"],
1388 data.GetMetadata().GetContext()["portno"],
1389 data.GetMetadata().GetTitle(),
1390 ).Set(float64(data.GetMetrics()["excessive_collision_counter"]))
1391
1392 volthaEthernetUniDeferredTxTotal.WithLabelValues(
1393 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301394 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001395 data.GetMetadata().GetDeviceId(),
1396 data.GetMetadata().GetContext()["intf_id"],
1397 data.GetMetadata().GetContext()["portno"],
1398 data.GetMetadata().GetTitle(),
1399 ).Set(float64(data.GetMetrics()["deferred_tx_counter"]))
1400
1401 volthaEthernetUniLateCollisionTotal.WithLabelValues(
1402 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301403 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001404 data.GetMetadata().GetDeviceId(),
1405 data.GetMetadata().GetContext()["intf_id"],
1406 data.GetMetadata().GetContext()["portno"],
1407 data.GetMetadata().GetTitle(),
1408 ).Set(float64(data.GetMetrics()["late_collision_counter"]))
1409
1410 volthaEthernetUniBufferOverflowsRxErrorTotal.WithLabelValues(
1411 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301412 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001413 data.GetMetadata().GetDeviceId(),
1414 data.GetMetadata().GetContext()["intf_id"],
1415 data.GetMetadata().GetContext()["portno"],
1416 data.GetMetadata().GetTitle(),
1417 ).Set(float64(data.GetMetrics()[""]))
1418
1419 volthaEthernetUniFcsErrorTotal.WithLabelValues(
1420 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301421 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001422 data.GetMetadata().GetDeviceId(),
1423 data.GetMetadata().GetContext()["intf_id"],
1424 data.GetMetadata().GetContext()["portno"],
1425 data.GetMetadata().GetTitle(),
1426 ).Set(float64(data.GetMetrics()["fcs_errors"]))
1427
1428 volthaEthernetUniSqeErrorTotal.WithLabelValues(
1429 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301430 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001431 data.GetMetadata().GetDeviceId(),
1432 data.GetMetadata().GetContext()["intf_id"],
1433 data.GetMetadata().GetContext()["portno"],
1434 data.GetMetadata().GetTitle(),
1435 ).Set(float64(data.GetMetrics()["sqe_counter"]))
1436
1437 volthaEthernetUniBufferOverflowsTxErrorTotal.WithLabelValues(
1438 data.GetMetadata().GetLogicalDeviceId(),
kesavand0c064922020-12-15 15:36:25 +05301439 onuSN,
kesavand6753e5e2020-04-28 03:34:21 -04001440 data.GetMetadata().GetDeviceId(),
1441 data.GetMetadata().GetContext()["intf_id"],
1442 data.GetMetadata().GetContext()["portno"],
1443 data.GetMetadata().GetTitle(),
1444 ).Set(float64(data.GetMetrics()["buffer_overflows_on_tx"]))
1445
1446}
1447
1448func exportVolthaKPIevent2(kpi *voltha.KpiEvent2) {
1449 for _, data := range kpi.GetSliceData() {
1450 switch title := data.GetMetadata().GetTitle(); title {
1451 case "ETHERNET_NNI", "PON_OLT":
1452 exportVolthaEthernetPonStats(data)
Matteo Scandoloaab36db2018-10-09 19:54:11 -07001453 case "Ethernet_Bridge_Port_History":
kesavand6753e5e2020-04-28 03:34:21 -04001454 exportVolthaOnuEthernetBridgePortStats(data)
Ganesh Bhure967018e2019-07-29 14:48:32 +05301455 case "PON_Optical":
kesavand6753e5e2020-04-28 03:34:21 -04001456 exportVolthaOnuPonOpticalStats(data)
Matteo Scandoloaab36db2018-10-09 19:54:11 -07001457 case "Ethernet_UNI_History":
kesavand6753e5e2020-04-28 03:34:21 -04001458 exportVolthaOnuEthernetUniStats(data)
Matteo Scandoloaab36db2018-10-09 19:54:11 -07001459 case "FEC_History":
kesavand6753e5e2020-04-28 03:34:21 -04001460 exportVolthaOnuFecStats(data)
1461 case "UNI_Status":
1462 // Do nothing.
Matteo Scandoloaab36db2018-10-09 19:54:11 -07001463
Matteo Scandoloaab36db2018-10-09 19:54:11 -07001464 }
1465 }
1466}
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301467
1468func exportOnosKPI(kpi OnosKPI) {
1469
1470 for _, data := range kpi.Ports {
1471
1472 onosTxBytesTotal.WithLabelValues(
1473 kpi.DeviceID,
1474 data.PortID,
1475 ).Set(data.TxBytes)
1476
1477 onosRxBytesTotal.WithLabelValues(
1478 kpi.DeviceID,
1479 data.PortID,
1480 ).Set(data.RxBytes)
1481
1482 onosTxPacketsTotal.WithLabelValues(
1483 kpi.DeviceID,
1484 data.PortID,
1485 ).Set(data.TxPackets)
1486
1487 onosRxPacketsTotal.WithLabelValues(
1488 kpi.DeviceID,
1489 data.PortID,
1490 ).Set(data.RxPackets)
1491
1492 onosTxDropPacketsTotal.WithLabelValues(
1493 kpi.DeviceID,
1494 data.PortID,
1495 ).Set(data.TxPacketsDrop)
1496
1497 onosRxDropPacketsTotal.WithLabelValues(
1498 kpi.DeviceID,
1499 data.PortID,
1500 ).Set(data.RxPacketsDrop)
1501 }
1502}
1503
1504func exportImporterKPI(kpi ImporterKPI) {
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +05301505 deviceLaserBiasCurrent.WithLabelValues(
1506 kpi.PortId,
1507 ).Set(kpi.LaserBiasCurrent)
1508 deviceTemperature.WithLabelValues(
1509 kpi.PortId,
1510 ).Set(kpi.Temperature)
1511 deviceTxPower.WithLabelValues(
1512 kpi.PortId,
1513 ).Set(kpi.TxPower)
1514 deviceVoltage.WithLabelValues(
1515 kpi.PortId,
1516 ).Set(kpi.Voltage)
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301517}
1518
kesavand2cde6582020-06-22 04:56:23 -04001519func exportDeviceKPI(kpi *dmi.Metric) {
1520
1521 if metrics, ok := oltDeviceMetrics[kpi.GetMetricId()]; ok {
1522 metrics.WithLabelValues(
1523 kpi.GetMetricMetadata().GetDeviceUuid().GetUuid(),
1524 kpi.GetMetricMetadata().GetComponentUuid().GetUuid(),
1525 kpi.GetMetricMetadata().GetComponentName(),
1526 ).Set(float64(kpi.GetValue().GetValue()))
1527 }
1528}
1529
kartikey dubey72ef3b82019-05-27 06:50:04 +00001530func exportOnosAaaKPI(kpi OnosAaaKPI) {
1531
1532 onosaaaRxAcceptResponses.Set(kpi.RxAcceptResponses)
1533
1534 onosaaaRxRejectResponses.Set(kpi.RxRejectResponses)
1535
1536 onosaaaRxChallengeResponses.Set(kpi.RxChallengeResponses)
1537
1538 onosaaaTxAccessRequests.Set(kpi.TxAccessRequests)
1539
1540 onosaaaRxInvalidValidators.Set(kpi.RxInvalidValidators)
1541
1542 onosaaaRxUnknownType.Set(kpi.RxUnknownType)
1543
1544 onosaaaPendingRequests.Set(kpi.PendingRequests)
1545
1546 onosaaaRxDroppedResponses.Set(kpi.RxDroppedResponses)
1547
1548 onosaaaRxMalformedResponses.Set(kpi.RxMalformedResponses)
1549
1550 onosaaaRxUnknownserver.Set(kpi.RxUnknownserver)
1551
1552 onosaaaRequestRttMillis.Set(kpi.RequestRttMillis)
1553
1554 onosaaaRequestReTx.Set(kpi.RequestReTx)
Shubham Sharma57600bf2019-08-09 07:09:57 +00001555
1556 onosaaaRxEapolLogoff.Set(kpi.RxEapolLogoff)
1557
1558 onosaaaTxEapolResIdentityMsg.Set(kpi.TxEapolResIdentityMsg)
1559
1560 onosaaaTxAuthSuccess.Set(kpi.TxAuthSuccess)
1561
1562 onosaaaTxAuthFailure.Set(kpi.TxAuthFailure)
1563
1564 onosaaaTxStartReq.Set(kpi.TxStartReq)
1565
1566 onosaaaEapPktTxAuthChooseEap.Set(kpi.EapPktTxAuthChooseEap)
1567
1568 onosaaaTxRespnotNak.Set(kpi.TxResponseNotNak)
shubham sharmae7f85752019-09-16 13:37:18 +00001569
1570 onosaaaEapolFramesTx.Set(kpi.EapolFramesTx)
1571
1572 onosaaaAuthStateIdle.Set(kpi.AuthStateIdle)
1573
1574 onosaaaRequestIdFramesTx.Set(kpi.RequestIdFramesTx)
1575
1576 onosaaaRequestEapFramesTx.Set(kpi.RequestEapFramesTx)
1577
1578 onosaaaInvalidPktType.Set(kpi.InvalidPktType)
1579
1580 onosaaaInvalidBodyLength.Set(kpi.InvalidBodyLength)
1581
1582 onosaaaValidEapolFramesRx.Set(kpi.ValidEapolFramesRx)
1583
1584 onosaaaPendingResSupplicant.Set(kpi.PendingResSupplicant)
1585
1586 onosaaaRxResIdEapFrames.Set(kpi.RxResIdEapFrames)
kartikey dubey72ef3b82019-05-27 06:50:04 +00001587}
1588
Daniele Moro707c2092019-12-06 16:39:18 -08001589func exportOnosBngKPI(kpi OnosBngKPI) {
1590 logger.WithFields(log.Fields{
1591 "Mac": kpi.Mac,
1592 "Ip": kpi.Ip,
1593 "PppoeSessionId": strconv.Itoa(kpi.PppoeSessionId),
1594 "AttachmentType": kpi.AttachmentType,
1595 "STag": strconv.Itoa(kpi.STag),
1596 "CTag": strconv.Itoa(kpi.CTag),
1597 "onuSerialNumber": kpi.OnuSerialNumber,
1598 }).Trace("Received OnosBngKPI message")
Daniele Morobe242582019-10-01 14:02:46 -07001599
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +05301600 if kpi.UpTxBytes != nil {
Daniele Moro707c2092019-12-06 16:39:18 -08001601 onosBngUpTxBytes.WithLabelValues(
1602 kpi.Mac,
1603 kpi.Ip,
1604 strconv.Itoa(kpi.PppoeSessionId),
1605 strconv.Itoa(kpi.STag),
1606 strconv.Itoa(kpi.CTag),
1607 kpi.OnuSerialNumber,
1608 kpi.AttachmentType,
1609 ).Set(*kpi.UpTxBytes)
1610 }
1611 if kpi.UpTxPackets != nil {
1612 onosBngUpTxPackets.WithLabelValues(
1613 kpi.Mac,
1614 kpi.Ip,
1615 strconv.Itoa(kpi.PppoeSessionId),
1616 strconv.Itoa(kpi.STag),
1617 strconv.Itoa(kpi.CTag),
1618 kpi.OnuSerialNumber,
1619 kpi.AttachmentType,
1620 ).Set(*kpi.UpTxPackets)
1621 }
1622 if kpi.UpRxBytes != nil {
1623 onosBngUpRxBytes.WithLabelValues(
1624 kpi.Mac,
1625 kpi.Ip,
1626 strconv.Itoa(kpi.PppoeSessionId),
1627 strconv.Itoa(kpi.STag),
1628 strconv.Itoa(kpi.CTag),
1629 kpi.OnuSerialNumber,
1630 kpi.AttachmentType,
1631 ).Set(*kpi.UpRxBytes)
1632 }
1633 if kpi.UpRxPackets != nil {
1634 onosBngUpRxPackets.WithLabelValues(
1635 kpi.Mac,
1636 kpi.Ip,
1637 strconv.Itoa(kpi.PppoeSessionId),
1638 strconv.Itoa(kpi.STag),
1639 strconv.Itoa(kpi.CTag),
1640 kpi.OnuSerialNumber,
1641 kpi.AttachmentType,
1642 ).Set(*kpi.UpRxPackets)
1643 }
Daniele Morobe242582019-10-01 14:02:46 -07001644
Daniele Moro707c2092019-12-06 16:39:18 -08001645 if kpi.UpDropBytes != nil {
1646 onosBngUpDropBytes.WithLabelValues(
1647 kpi.Mac,
1648 kpi.Ip,
1649 strconv.Itoa(kpi.PppoeSessionId),
1650 strconv.Itoa(kpi.STag),
1651 strconv.Itoa(kpi.CTag),
1652 kpi.OnuSerialNumber,
1653 kpi.AttachmentType,
1654 ).Set(*kpi.UpDropBytes)
1655 }
1656 if kpi.UpDropPackets != nil {
1657 onosBngUpDropPackets.WithLabelValues(
1658 kpi.Mac,
1659 kpi.Ip,
1660 strconv.Itoa(kpi.PppoeSessionId),
1661 strconv.Itoa(kpi.STag),
1662 strconv.Itoa(kpi.CTag),
1663 kpi.OnuSerialNumber,
1664 kpi.AttachmentType,
1665 ).Set(*kpi.UpDropPackets)
1666 }
1667
1668 if kpi.ControlPackets != nil {
1669 onosBngControlPackets.WithLabelValues(
1670 kpi.Mac,
1671 kpi.Ip,
1672 strconv.Itoa(kpi.PppoeSessionId),
1673 strconv.Itoa(kpi.STag),
1674 strconv.Itoa(kpi.CTag),
1675 kpi.OnuSerialNumber,
1676 kpi.AttachmentType,
1677 ).Set(*kpi.ControlPackets)
1678 }
1679
1680 if kpi.DownTxBytes != nil {
1681 onosBngDownTxBytes.WithLabelValues(
1682 kpi.Mac,
1683 kpi.Ip,
1684 strconv.Itoa(kpi.PppoeSessionId),
1685 strconv.Itoa(kpi.STag),
1686 strconv.Itoa(kpi.CTag),
1687 kpi.OnuSerialNumber,
1688 kpi.AttachmentType,
1689 ).Set(*kpi.DownTxBytes)
1690 }
1691 if kpi.DownTxPackets != nil {
1692 onosBngDownTxPackets.WithLabelValues(
1693 kpi.Mac,
1694 kpi.Ip,
1695 strconv.Itoa(kpi.PppoeSessionId),
1696 strconv.Itoa(kpi.STag),
1697 strconv.Itoa(kpi.CTag),
1698 kpi.OnuSerialNumber,
1699 kpi.AttachmentType,
1700 ).Set(*kpi.DownTxPackets)
1701 }
1702
1703 if kpi.DownRxBytes != nil {
1704 onosBngDownRxBytes.WithLabelValues(
1705 kpi.Mac,
1706 kpi.Ip,
1707 strconv.Itoa(kpi.PppoeSessionId),
1708 strconv.Itoa(kpi.STag),
1709 strconv.Itoa(kpi.CTag),
1710 kpi.OnuSerialNumber,
1711 kpi.AttachmentType,
1712 ).Set(*kpi.DownRxBytes)
1713 }
1714 if kpi.DownRxPackets != nil {
1715 onosBngDownRxPackets.WithLabelValues(
1716 kpi.Mac,
1717 kpi.Ip,
1718 strconv.Itoa(kpi.PppoeSessionId),
1719 strconv.Itoa(kpi.STag),
1720 strconv.Itoa(kpi.CTag),
1721 kpi.OnuSerialNumber,
1722 kpi.AttachmentType,
1723 ).Set(*kpi.DownRxPackets)
1724 }
1725
1726 if kpi.DownDropBytes != nil {
1727 onosBngDownDropBytes.WithLabelValues(
1728 kpi.Mac,
1729 kpi.Ip,
1730 strconv.Itoa(kpi.PppoeSessionId),
1731 strconv.Itoa(kpi.STag),
1732 strconv.Itoa(kpi.CTag),
1733 kpi.OnuSerialNumber,
1734 kpi.AttachmentType,
1735 ).Set(*kpi.DownDropBytes)
1736 }
1737 if kpi.DownDropPackets != nil {
1738 onosBngDownDropPackets.WithLabelValues(
1739 kpi.Mac,
1740 kpi.Ip,
1741 strconv.Itoa(kpi.PppoeSessionId),
1742 strconv.Itoa(kpi.STag),
1743 strconv.Itoa(kpi.CTag),
1744 kpi.OnuSerialNumber,
1745 kpi.AttachmentType,
1746 ).Set(*kpi.DownDropPackets)
Daniele Morobe242582019-10-01 14:02:46 -07001747 }
1748}
1749
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301750func export(topic *string, data []byte) {
1751 switch *topic {
kesavand6753e5e2020-04-28 03:34:21 -04001752 case "voltha.events":
1753 event := voltha.Event{}
1754 err := proto.Unmarshal(data, &event)
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301755 if err != nil {
Ganesh Bhure74fb7b02019-06-28 16:16:26 +05301756 logger.Error("Invalid msg on voltha.kpis: %s, Unprocessed Msg: %s", err.Error(), string(data))
Ganesh Bhure0f2449c2019-07-15 10:31:38 +05301757 break
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301758 }
kesavand6753e5e2020-04-28 03:34:21 -04001759 if event.GetHeader().GetType() == voltha.EventType_KPI_EVENT2 {
1760 logger.Debug("KPI_EVENT2 received on voltha.events")
1761 kpiEvent2 := event.GetKpiEvent2()
1762 exportVolthaKPIevent2(kpiEvent2)
1763 }
1764
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301765 case "onos.kpis":
1766 kpi := OnosKPI{}
1767 err := json.Unmarshal(data, &kpi)
1768 if err != nil {
Ganesh Bhure74fb7b02019-06-28 16:16:26 +05301769 logger.Error("Invalid msg on onos.kpis: %s, Unprocessed Msg: %s", err.Error(), string(data))
Ganesh Bhure0f2449c2019-07-15 10:31:38 +05301770 break
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301771 }
1772 exportOnosKPI(kpi)
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +05301773 case "importer":
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301774 kpi := ImporterKPI{}
Ganesh Bhuref15383e2019-11-11 15:15:14 +05301775 strData := string(data)
1776 idx := strings.Index(strData, "{")
1777 strData = strData[idx:]
1778
1779 var m map[string]interface{}
1780 err := json.Unmarshal([]byte(strData), &m)
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301781 if err != nil {
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +05301782 logger.Error("Invalid msg on importer: %s", err.Error())
Ganesh Bhuref15383e2019-11-11 15:15:14 +05301783 logger.Debug("Unprocessed Msg: %s", strData)
1784 break
1785 }
1786 if val, ok := m["TransceiverStatistics"]; ok {
1787 stats := val.(map[string]interface{})
Ganesh Bhuref15383e2019-11-11 15:15:14 +05301788 kpi.LaserBiasCurrent = stats["BiasCurrent"].(map[string]interface{})["Reading"].(float64)
1789 kpi.Temperature = stats["Temperature"].(map[string]interface{})["Reading"].(float64)
1790 kpi.TxPower = stats["TxPower"].(map[string]interface{})["Reading"].(float64)
1791 kpi.Voltage = stats["Voltage"].(map[string]interface{})["Reading"].(float64)
1792 } else {
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +05301793 logger.Error("Optical stats (TransceiverStatistics) information missing [topic=importer")
Ganesh Bhuref15383e2019-11-11 15:15:14 +05301794 logger.Debug("Unprocessed Msg: %s", strData)
Ganesh Bhure0f2449c2019-07-15 10:31:38 +05301795 break
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301796 }
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +05301797 kpi.PortId = m["Id"].(string)
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301798 exportImporterKPI(kpi)
kartikey dubey72ef3b82019-05-27 06:50:04 +00001799 case "onos.aaa.stats.kpis":
1800 kpi := OnosAaaKPI{}
1801 err := json.Unmarshal(data, &kpi)
1802 if err != nil {
Ganesh Bhure74fb7b02019-06-28 16:16:26 +05301803 logger.Error("Invalid msg on onos.aaa.stats.kpis: %s, Unprocessed Msg: %s", err.Error(), string(data))
Ganesh Bhure0f2449c2019-07-15 10:31:38 +05301804 break
kartikey dubey72ef3b82019-05-27 06:50:04 +00001805 }
1806 exportOnosAaaKPI(kpi)
Daniele Moro707c2092019-12-06 16:39:18 -08001807 case "bng.stats":
1808 kpi := OnosBngKPI{}
Daniele Morobe242582019-10-01 14:02:46 -07001809 err := json.Unmarshal(data, &kpi)
1810 if err != nil {
Daniele Moro707c2092019-12-06 16:39:18 -08001811 logger.Error("Invalid msg on bng.stats: %s, Unprocessed Msg: %s", err.Error(), string(data))
Daniele Morobe242582019-10-01 14:02:46 -07001812 break
1813 }
Daniele Moro707c2092019-12-06 16:39:18 -08001814 exportOnosBngKPI(kpi)
kesavand2cde6582020-06-22 04:56:23 -04001815 case "dm.metrics":
1816 kpi := dmi.Metric{}
1817 err := proto.Unmarshal(data, &kpi)
1818 if err != nil {
1819 logger.Error("Invalid msg on device topic : %s, Unprocessed Msg: %s", err.Error(), string(data))
1820 break
1821 }
1822 exportDeviceKPI(&kpi)
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301823 default:
Ganesh Bhure74fb7b02019-06-28 16:16:26 +05301824 logger.Warn("Unexpected export. Topic [%s] not supported. Should not come here", *topic)
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301825 }
1826}