blob: c0615b921c6424ba30d934765b27199c3d86689b [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"
kesavand6753e5e2020-04-28 03:34:21 -040023 "github.com/golang/protobuf/proto"
kesavand2cde6582020-06-22 04:56:23 -040024 "github.com/opencord/device-management-interface/go/dmi"
kesavand6753e5e2020-04-28 03:34:21 -040025 "github.com/opencord/voltha-protos/go/voltha"
Ganesh Bhure74fb7b02019-06-28 16:16:26 +053026 "github.com/prometheus/client_golang/prometheus"
Daniele Morobe242582019-10-01 14:02:46 -070027 log "github.com/sirupsen/logrus"
Matteo Scandoloaab36db2018-10-09 19:54:11 -070028)
29
30var (
Ganesh Bhure8d0c9942019-05-24 11:42:09 +053031 // voltha kpis
kesavand6753e5e2020-04-28 03:34:21 -040032 volthaOltTxBytesTotal = prometheus.NewGaugeVec(
Matteo Scandoloaab36db2018-10-09 19:54:11 -070033 prometheus.GaugeOpts{
kesavand6753e5e2020-04-28 03:34:21 -040034 Name: "voltha_olt_tx_bytes_total",
Matteo Scandoloaab36db2018-10-09 19:54:11 -070035 Help: "Number of total bytes transmitted",
36 },
37 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
38 )
kesavand6753e5e2020-04-28 03:34:21 -040039 volthaOltRxBytesTotal = prometheus.NewGaugeVec(
Matteo Scandoloaab36db2018-10-09 19:54:11 -070040 prometheus.GaugeOpts{
kesavand6753e5e2020-04-28 03:34:21 -040041 Name: "voltha_olt_rx_bytes_total",
Matteo Scandoloaab36db2018-10-09 19:54:11 -070042 Help: "Number of total bytes received",
43 },
44 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
45 )
kesavand6753e5e2020-04-28 03:34:21 -040046 volthaOltTxPacketsTotal = prometheus.NewGaugeVec(
Matteo Scandoloaab36db2018-10-09 19:54:11 -070047 prometheus.GaugeOpts{
kesavand6753e5e2020-04-28 03:34:21 -040048 Name: "voltha_olt_tx_packets_total",
Matteo Scandoloaab36db2018-10-09 19:54:11 -070049 Help: "Number of total packets transmitted",
50 },
51 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
52 )
kesavand6753e5e2020-04-28 03:34:21 -040053 volthaOltRxPacketsTotal = prometheus.NewGaugeVec(
Matteo Scandoloaab36db2018-10-09 19:54:11 -070054 prometheus.GaugeOpts{
kesavand6753e5e2020-04-28 03:34:21 -040055 Name: "voltha_olt_rx_packets_total",
Matteo Scandoloaab36db2018-10-09 19:54:11 -070056 Help: "Number of total packets received",
57 },
58 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
59 )
60
kesavand6753e5e2020-04-28 03:34:21 -040061 volthaOltTxErrorPacketsTotal = prometheus.NewGaugeVec(
Matteo Scandoloaab36db2018-10-09 19:54:11 -070062 prometheus.GaugeOpts{
kesavand6753e5e2020-04-28 03:34:21 -040063 Name: "voltha_olt_tx_error_packets_total",
Matteo Scandoloaab36db2018-10-09 19:54:11 -070064 Help: "Number of total transmitted packets error",
65 },
66 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
67 )
68
kesavand6753e5e2020-04-28 03:34:21 -040069 volthaOltRxErrorPacketsTotal = prometheus.NewGaugeVec(
Matteo Scandoloaab36db2018-10-09 19:54:11 -070070 prometheus.GaugeOpts{
kesavand6753e5e2020-04-28 03:34:21 -040071 Name: "voltha_olt_rx_error_packets_total",
Matteo Scandoloaab36db2018-10-09 19:54:11 -070072 Help: "Number of total received packets error",
73 },
74 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
75 )
Ganesh Bhure8d0c9942019-05-24 11:42:09 +053076
kesavand6753e5e2020-04-28 03:34:21 -040077 volthaOltTxBroadcastPacketsTotal = prometheus.NewGaugeVec(
78 prometheus.GaugeOpts{
79 Name: "voltha_olt_tx_broadcast_packets_total",
80 Help: "Number of total broadcast packets transmitted",
81 },
82 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
83 )
84
85 volthaOltTxUnicastPacketsTotal = prometheus.NewGaugeVec(
86 prometheus.GaugeOpts{
87 Name: "voltha_olt_tx_unicast_packets_total",
88 Help: "Number of total unicast packets transmitted",
89 },
90 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
91 )
92
93 volthaOltTxMulticastPacketsTotal = prometheus.NewGaugeVec(
94 prometheus.GaugeOpts{
95 Name: "voltha_olt_tx_multicast_packets_total",
96 Help: "Number of total multicast packets transmitted",
97 },
98 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
99 )
100
101 volthaOltRxBroadcastPacketsTotal = prometheus.NewGaugeVec(
102 prometheus.GaugeOpts{
103 Name: "voltha_olt_rx_broadcast_packets_total",
104 Help: "Number of total broadcast packets received",
105 },
106 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
107 )
108
109 volthaOltRxUnicastPacketsTotal = prometheus.NewGaugeVec(
110 prometheus.GaugeOpts{
111 Name: "voltha_olt_rx_unicast_packets_total",
112 Help: "Number of total unicast packets received",
113 },
114 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
115 )
116
117 volthaOltRxMulticastPacketsTotal = prometheus.NewGaugeVec(
118 prometheus.GaugeOpts{
119 Name: "voltha_olt_rx_multicast_packets_total",
120 Help: "Number of total multicast packets received",
121 },
122 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
123 )
124
Ganesh Bhure967018e2019-07-29 14:48:32 +0530125 // optical parameters
126 VolthaOnuLaserBiasCurrent = prometheus.NewGaugeVec(
127 prometheus.GaugeOpts{
128 Name: "voltha_onu_laser_bias_current",
129 Help: "ONU Laser bias current value",
130 },
131 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
132 )
133
134 volthaOnuTemperature = prometheus.NewGaugeVec(
135 prometheus.GaugeOpts{
136 Name: "voltha_onu_temperature",
137 Help: "ONU temperature value",
138 },
139 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
140 )
141
142 VolthaOnuPowerFeedVoltage = prometheus.NewGaugeVec(
143 prometheus.GaugeOpts{
144 Name: "voltha_onu_power_feed_voltage",
145 Help: "ONU power feed voltage",
146 },
147 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
148 )
149
150 VolthaOnuMeanOpticalLaunchPower = prometheus.NewGaugeVec(
151 prometheus.GaugeOpts{
152 Name: "voltha_onu_mean_optical_launch_power",
153 Help: "ONU mean optical launch power",
154 },
155 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
156 )
157
158 VolthaOnuReceivedOpticalPower = prometheus.NewGaugeVec(
159 prometheus.GaugeOpts{
160 Name: "voltha_onu_received_optical_power",
161 Help: "ONU received optical power",
162 },
163 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
164 )
165
kesavand6753e5e2020-04-28 03:34:21 -0400166 VolthaOnuTransmtOpticalPower = prometheus.NewGaugeVec(
167 prometheus.GaugeOpts{
168 Name: "voltha_onu_transmit_optical_power",
169 Help: "ONU transmited optical power",
170 },
171 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
172 )
173
174 // FEC parameters
175 volthaOnuFecCorrectedCodewordsTotal = prometheus.NewGaugeVec(
176 prometheus.GaugeOpts{
177 Name: "voltha_onu_fec_corrected_code_words",
178 Help: "Number of total code words corrected",
179 },
180 []string{"logical_device_id", "serial_number", "device_id", "title"},
181 )
182
183 volthaOnuFecCodewordsTotal = prometheus.NewGaugeVec(
184 prometheus.GaugeOpts{
185 Name: "voltha_onu_fec_code_words_total",
186 Help: "Number of total code words",
187 },
188 []string{"logical_device_id", "serial_number", "device_id", "title"},
189 )
190
191 volthaOnuFecCorrectedBytesTotal = prometheus.NewGaugeVec(
192 prometheus.GaugeOpts{
193 Name: "voltha_onu_fec_corrected_bytes_total",
194 Help: "Number of total corrected bytes",
195 },
196 []string{"logical_device_id", "serial_number", "device_id", "title"},
197 )
198
199 volthaOnuFecSecondsTotal = prometheus.NewGaugeVec(
200 prometheus.GaugeOpts{
201 Name: "voltha_onu_fec_corrected_fec_seconds_total",
202 Help: "Number of fec seconds total",
203 },
204 []string{"logical_device_id", "serial_number", "device_id", "title"},
205 )
206
207 volthaOnuFecUncorrectablewordsTotal = prometheus.NewGaugeVec(
208 prometheus.GaugeOpts{
209 Name: "voltha_onu_fec_uncorrectable_words_total",
210 Help: "Number of fec uncorrectable words",
211 },
212 []string{"logical_device_id", "serial_number", "device_id", "title"},
213 )
214 //Etheret UNI
215
216 volthaEthernetUniSingleCollisionTotal = prometheus.NewGaugeVec(
217 prometheus.GaugeOpts{
218 Name: "voltha_ethernet_uni_single_collision_frame_counter",
219 Help: "successfully transmitted frames but delayed by exactly one collision.",
220 },
221 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
222 )
223
224 volthaEthernetUniMacLayerTramsmitErrorTotal = prometheus.NewGaugeVec(
225 prometheus.GaugeOpts{
226 Name: "voltha_ethernet_uni_internal_mac_rx_error_counter",
227 Help: "transmission failed due to an internal MAC sublayer transmit error.",
228 },
229 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
230 )
231
232 volthaEthernetUniMultiCollisionTotal = prometheus.NewGaugeVec(
233 prometheus.GaugeOpts{
234 Name: "voltha_ethernet_uni_multiple_collisions_frame_counter",
235 Help: "successfully transmitted frames but delayed by multiple collisions.",
236 },
237 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
238 )
239
240 volthaEthernetUniFramestooLongTotal = prometheus.NewGaugeVec(
241 prometheus.GaugeOpts{
242 Name: "voltha_ethernet_uni_frames_too_long",
243 Help: "frames that exceeded the maximum permitted frame size.",
244 },
245 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
246 )
247
248 volthaEthernetUniAlignmentErrorTotal = prometheus.NewGaugeVec(
249 prometheus.GaugeOpts{
250 Name: "voltha_ethernet_uni_alignment_error_counter",
251 Help: "frames that were not an integral number of octets in length and did not pass the FCS check.",
252 },
253 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
254 )
255 volthaEthernetUniCarrierErrorTotal = prometheus.NewGaugeVec(
256 prometheus.GaugeOpts{
257 Name: "voltha_ethernet_uni_carrier_sense_error_counter",
258 Help: "number of times that carrier sense was lost or never asserted when attempting to transmit a frame.",
259 },
260 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
261 )
262 volthaEthernetUniExcessiveCollisionErrorTotal = prometheus.NewGaugeVec(
263 prometheus.GaugeOpts{
264 Name: "voltha_ethernet_uni_excessive_collision_counter",
265 Help: "frames whose transmission failed due to excessive collisions.",
266 },
267 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
268 )
269 volthaEthernetUniDeferredTxTotal = prometheus.NewGaugeVec(
270 prometheus.GaugeOpts{
271 Name: "voltha_ethernet_uni_deferred_tx_counter",
272 Help: "frames whose first transmission attempt was delayed because the medium was busy.",
273 },
274 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
275 )
276 volthaEthernetUniLateCollisionTotal = prometheus.NewGaugeVec(
277 prometheus.GaugeOpts{
278 Name: "voltha_ethernet_uni_late_collision_counter",
279 Help: "number of times that a collision was detected later than 512 bit times into the transmission of a packet.",
280 },
281 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
282 )
283 volthaEthernetUniBufferOverflowsRxErrorTotal = prometheus.NewGaugeVec(
284 prometheus.GaugeOpts{
285 Name: "voltha_ethernet_uni_buffer_overflows_on_rx",
286 Help: "number of times that the receive buffer overflowed.",
287 },
288 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
289 )
290 volthaEthernetUniFcsErrorTotal = prometheus.NewGaugeVec(
291 prometheus.GaugeOpts{
292 Name: "voltha_ethernet_uni_fcs_errors",
293 Help: " frames failed the frame check sequence (FCS) check.",
294 },
295 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
296 )
297 volthaEthernetUniSqeErrorTotal = prometheus.NewGaugeVec(
298 prometheus.GaugeOpts{
299 Name: "voltha_ethernet_uni_sqe_counter",
300 Help: "number of times that the SQE test error message was generated by the PLS sublayer",
301 },
302 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
303 )
304 volthaEthernetUniBufferOverflowsTxErrorTotal = prometheus.NewGaugeVec(
305 prometheus.GaugeOpts{
306 Name: "voltha_ethernet_uni_buffer_overflows_on_tx",
307 Help: " number of times that the transmit buffer overflowed.",
308 },
309 []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
310 )
311 //Ethernet_Bridge_Port
312
313 volthaOnuBridgePortTxBytesTotal = prometheus.NewGaugeVec(
314 prometheus.GaugeOpts{
315 Name: "voltha_onu_bridge_port_tx_bytes_total",
316 Help: "Number of total bytes transmitted",
317 },
318 []string{"logical_device_id", "serial_number", "device_id", "title"},
319 )
320 volthaOnuBridgePortRxBytesTotal = prometheus.NewGaugeVec(
321 prometheus.GaugeOpts{
322 Name: "voltha_onu_bridge_port_rx_bytes_total",
323 Help: "Number of total bytes received",
324 },
325 []string{"logical_device_id", "serial_number", "device_id", "title"},
326 )
327 volthaOnuBridgePortTxPacketsTotal = prometheus.NewGaugeVec(
328 prometheus.GaugeOpts{
329 Name: "voltha_onu_bridge_port_tx_packets_total",
330 Help: "Number of total packets transmitted",
331 },
332 []string{"logical_device_id", "serial_number", "device_id", "title"},
333 )
334 volthaOnuBridgePortRxPacketsTotal = prometheus.NewGaugeVec(
335 prometheus.GaugeOpts{
336 Name: "voltha_onu_bridge_port_rx_packets_total",
337 Help: "Number of total packets received",
338 },
339 []string{"logical_device_id", "serial_number", "device_id", "title"},
340 )
341
342 volthaOnuBridgePort_64octetTxPacketsTotal = prometheus.NewGaugeVec(
343 prometheus.GaugeOpts{
344 Name: "voltha_onu_bridge_port_64_octets_Txpackets",
345 Help: "packets (including bad packets) that were 64 octets long",
346 },
347 []string{"logical_device_id", "serial_number", "device_id", "title"},
348 )
349
350 volthaOnuBridgePort_65_127_octetTxPacketsTotal = prometheus.NewGaugeVec(
351 prometheus.GaugeOpts{
352 Name: "voltha_onu_bridge_port_65_to_127_octet_Txpackets",
353 Help: "packets (including bad packets) that were 65..127 octets long, excluding framing bits but including FCS.",
354 },
355 []string{"logical_device_id", "serial_number", "device_id", "title"},
356 )
357
358 volthaOnuBridgePort_128_255_octetTxPacketsTotal = prometheus.NewGaugeVec(
359 prometheus.GaugeOpts{
360 Name: "voltha_onu_bridge_port_128_to_255_octet_Txpackets",
361 Help: "packets (including bad packets) received that were 128..255 octets long, excluding framing bits but including FCS.",
362 },
363 []string{"logical_device_id", "serial_number", "device_id", "title"},
364 )
365
366 volthaOnuBridgePort_256_511_octetTxPacketsTotal = prometheus.NewGaugeVec(
367 prometheus.GaugeOpts{
368 Name: "voltha_onu_bridge_port_256_to_511_octet_Txpackets",
369 Help: "packets (including bad packets) received that were 256..511 octets long, excluding framing bits but including FCS.",
370 },
371 []string{"logical_device_id", "serial_number", "device_id", "title"},
372 )
373
374 volthaOnuBridgePort_512_1023_octetTxPacketsTotal = prometheus.NewGaugeVec(
375 prometheus.GaugeOpts{
376 Name: "voltha_onu_bridge_port_512_to_1023_octet_Txpackets",
377 Help: "packets (including bad packets) received that were 512..1 023 octets long, excluding framing bits but including FCS.",
378 },
379 []string{"logical_device_id", "serial_number", "device_id", "title"},
380 )
381
382 volthaOnuBridgePort_1024_1518_octetTxPacketsTotal = prometheus.NewGaugeVec(
383 prometheus.GaugeOpts{
384 Name: "voltha_onu_bridge_port_1024_to_1518_octet_Txpackets",
385 Help: "packets (including bad packets) received that were 1024..1518 octets long, excluding framing bits, but including FCS.",
386 },
387 []string{"logical_device_id", "serial_number", "device_id", "title"},
388 )
389 volthaOnuBridgePortTxMulticastPacketsTotal = prometheus.NewGaugeVec(
390 prometheus.GaugeOpts{
391 Name: "voltha_onu_bridge_port_multicast_Txpackets",
392 Help: "packets received that were directed to a multicast address.",
393 },
394 []string{"logical_device_id", "serial_number", "device_id", "title"},
395 )
396 volthaOnuBridgePortTxBroadcastPacketsTotal = prometheus.NewGaugeVec(
397 prometheus.GaugeOpts{
398 Name: "voltha_onu_bridge_port_broadcast_Txpackets",
399 Help: "packets received that were directed to the broadcast address.",
400 },
401 []string{"logical_device_id", "serial_number", "device_id", "title"},
402 )
403 volthaOnuBridgePortTxOversizePacketsTotal = prometheus.NewGaugeVec(
404 prometheus.GaugeOpts{
405 Name: "voltha_onu_bridge_port_oversize_Txpackets",
406 Help: " packets received that were longer than 1518 octets",
407 },
408 []string{"logical_device_id", "serial_number", "device_id", "title"},
409 )
410 volthaOnuBridgePortTxCrcErrorPacketsTotal = prometheus.NewGaugeVec(
411 prometheus.GaugeOpts{
412 Name: "voltha_onu_bridge_port_crc_errored_Txpackets",
413 Help: "Packets with CRC errors",
414 },
415 []string{"logical_device_id", "serial_number", "device_id", "title"},
416 )
417 volthaOnuBridgePortTxUndersizePacketsTotal = prometheus.NewGaugeVec(
418 prometheus.GaugeOpts{
419 Name: "voltha_onu_bridge_port_undersize_Txpackets",
420 Help: "Packets received that were less than 64 octets long, but were otherwise well formed",
421 },
422 []string{"logical_device_id", "serial_number", "device_id", "title"},
423 )
424
425 volthaOnuBridgePortTxDropEventsTotal = prometheus.NewGaugeVec(
426 prometheus.GaugeOpts{
427 Name: "voltha_onu_bridge_port_Txdrop_events",
428 Help: "total number of events in which packets were dropped due to a lack of resources. ",
429 },
430 []string{"logical_device_id", "serial_number", "device_id", "title"},
431 )
432 volthaOnuBridgePort_64octetRxPacketsTotal = prometheus.NewGaugeVec(
433 prometheus.GaugeOpts{
434 Name: "voltha_onu_bridge_port_64_octets_Rxpackets",
435 Help: "packets (including bad packets) that were 64 octets long",
436 },
437 []string{"logical_device_id", "serial_number", "device_id", "title"},
438 )
439
440 volthaOnuBridgePort_65_127_octetRxPacketsTotal = prometheus.NewGaugeVec(
441 prometheus.GaugeOpts{
442 Name: "voltha_onu_bridge_port_65_to_127_octet_Rxpackets",
443 Help: "packets (including bad packets) that were 65..127 octets long, excluding framing bits but including FCS.",
444 },
445 []string{"logical_device_id", "serial_number", "device_id", "title"},
446 )
447
448 volthaOnuBridgePort_128_255_octetRxPacketsTotal = prometheus.NewGaugeVec(
449 prometheus.GaugeOpts{
450 Name: "voltha_onu_bridge_port_128_to_255_octet_packets",
451 Help: "packets (including bad packets) received that were 128..255 octets long, excluding framing bits but including FCS.",
452 },
453 []string{"logical_device_id", "serial_number", "device_id", "title"},
454 )
455
456 volthaOnuBridgePort_256_511_octetRxPacketsTotal = prometheus.NewGaugeVec(
457 prometheus.GaugeOpts{
458 Name: "voltha_onu_bridge_port_256_to_511_octet_Rxpackets",
459 Help: "packets (including bad packets) received that were 256..511 octets long, excluding framing bits but including FCS.",
460 },
461 []string{"logical_device_id", "serial_number", "device_id", "title"},
462 )
463
464 volthaOnuBridgePort_512_1023_octetRxPacketsTotal = prometheus.NewGaugeVec(
465 prometheus.GaugeOpts{
466 Name: "voltha_onu_bridge_port_512_to_1023_octet_Rxpackets",
467 Help: "packets (including bad packets) received that were 512..1 023 octets long, excluding framing bits but including FCS.",
468 },
469 []string{"logical_device_id", "serial_number", "device_id", "title"},
470 )
471
472 volthaOnuBridgePort_1024_1518_octetRxPacketsTotal = prometheus.NewGaugeVec(
473 prometheus.GaugeOpts{
474 Name: "voltha_onu_bridge_port_1024_to_1518_octet_Rxpackets",
475 Help: "packets (including bad packets) received that were 1024..1518 octets long, excluding framing bits, but including FCS.",
476 },
477 []string{"logical_device_id", "serial_number", "device_id", "title"},
478 )
479 volthaOnuBridgePortRxMulticastPacketsTotal = prometheus.NewGaugeVec(
480 prometheus.GaugeOpts{
481 Name: "voltha_onu_bridge_port_multicast_Rxpackets",
482 Help: "packets received that were directed to a multicast address.",
483 },
484 []string{"logical_device_id", "serial_number", "device_id", "title"},
485 )
486 volthaOnuBridgePortRxBroadcastPacketsTotal = prometheus.NewGaugeVec(
487 prometheus.GaugeOpts{
488 Name: "voltha_onu_bridge_port_broadcast_Rxpackets",
489 Help: "packets received that were directed to the broadcast address.",
490 },
491 []string{"logical_device_id", "serial_number", "device_id", "title"},
492 )
493 volthaOnuBridgePortRxOversizePacketsTotal = prometheus.NewGaugeVec(
494 prometheus.GaugeOpts{
495 Name: "voltha_onu_bridge_port_oversize_Rxpackets",
496 Help: " packets received that were longer than 1518 octets",
497 },
498 []string{"logical_device_id", "serial_number", "device_id", "title"},
499 )
500 volthaOnuBridgePortRxCrcErrorPacketsTotal = prometheus.NewGaugeVec(
501 prometheus.GaugeOpts{
502 Name: "voltha_onu_bridge_port_crc_errored_Rxpackets",
503 Help: "Packets with CRC errors",
504 },
505 []string{"logical_device_id", "serial_number", "device_id", "title"},
506 )
507 volthaOnuBridgePortRxUndersizePacketsTotal = prometheus.NewGaugeVec(
508 prometheus.GaugeOpts{
509 Name: "voltha_onu_bridge_port_undersize_Rxpackets",
510 Help: "Packets received that were less than 64 octets long, but were otherwise well formed",
511 },
512 []string{"logical_device_id", "serial_number", "device_id", "title"},
513 )
514
515 volthaOnuBridgePortRxDropEventsTotal = prometheus.NewGaugeVec(
516 prometheus.GaugeOpts{
517 Name: "voltha_onu_bridge_port_Rxdrop_events",
518 Help: "total number of events in which packets were dropped due to a lack of resources. ",
519 },
520 []string{"logical_device_id", "serial_number", "device_id", "title"},
521 )
522
Ganesh Bhure8d0c9942019-05-24 11:42:09 +0530523 // onos kpis
524 onosTxBytesTotal = prometheus.NewGaugeVec(
525 prometheus.GaugeOpts{
526 Name: "onos_tx_bytes_total",
527 Help: "Number of total bytes transmitted",
528 },
529 []string{"device_id", "port_id"},
530 )
531 onosRxBytesTotal = prometheus.NewGaugeVec(
532 prometheus.GaugeOpts{
533 Name: "onos_rx_bytes_total",
534 Help: "Number of total bytes received",
535 },
536 []string{"device_id", "port_id"},
537 )
538 onosTxPacketsTotal = prometheus.NewGaugeVec(
539 prometheus.GaugeOpts{
540 Name: "onos_tx_packets_total",
541 Help: "Number of total packets transmitted",
542 },
543 []string{"device_id", "port_id"},
544 )
545 onosRxPacketsTotal = prometheus.NewGaugeVec(
546 prometheus.GaugeOpts{
547 Name: "onos_rx_packets_total",
548 Help: "Number of total packets received",
549 },
550 []string{"device_id", "port_id"},
551 )
552
553 onosTxDropPacketsTotal = prometheus.NewGaugeVec(
554 prometheus.GaugeOpts{
555 Name: "onos_tx_drop_packets_total",
556 Help: "Number of total transmitted packets dropped",
557 },
558 []string{"device_id", "port_id"},
559 )
560
561 onosRxDropPacketsTotal = prometheus.NewGaugeVec(
562 prometheus.GaugeOpts{
563 Name: "onos_rx_drop_packets_total",
564 Help: "Number of total received packets dropped",
565 },
566 []string{"device_id", "port_id"},
567 )
kartikey dubey72ef3b82019-05-27 06:50:04 +0000568
569 // onos.aaa kpis
570 onosaaaRxAcceptResponses = prometheus.NewGauge(
571 prometheus.GaugeOpts{
572 Name: "onosaaa_rx_accept_responses",
573 Help: "Number of access accept packets received from the server",
574 })
575 onosaaaRxRejectResponses = prometheus.NewGauge(
576 prometheus.GaugeOpts{
577 Name: "onosaaa_rx_reject_responses",
578 Help: "Number of access reject packets received from the server",
579 })
580 onosaaaRxChallengeResponses = prometheus.NewGauge(
581 prometheus.GaugeOpts{
582 Name: "onosaaa_rx_challenge_response",
583 Help: "Number of access challenge packets received from the server",
584 })
585 onosaaaTxAccessRequests = prometheus.NewGauge(
586 prometheus.GaugeOpts{
587 Name: "onosaaa_tx_access_requests",
588 Help: "Number of access request packets sent to the server",
589 })
590 onosaaaRxInvalidValidators = prometheus.NewGauge(
591 prometheus.GaugeOpts{
592 Name: "onosaaa_rx_invalid_validators",
593 Help: "Number of access response packets received from the server with an invalid validator",
594 })
595 onosaaaRxUnknownType = prometheus.NewGauge(
596 prometheus.GaugeOpts{
597 Name: "onosaaa_rx_unknown_type",
598 Help: "Number of packets of an unknown RADIUS type received from the accounting server",
599 })
600 onosaaaPendingRequests = prometheus.NewGauge(
601 prometheus.GaugeOpts{
602 Name: "onosaaa_pending_responses",
603 Help: "Number of access request packets pending a response from the server",
604 })
605 onosaaaRxDroppedResponses = prometheus.NewGauge(
606 prometheus.GaugeOpts{
607 Name: "onosaaa_rx_dropped_responses",
608 Help: "Number of dropped packets received from the accounting server",
609 })
610 onosaaaRxMalformedResponses = prometheus.NewGauge(
611 prometheus.GaugeOpts{
612 Name: "onosaaa_rx_malformed_responses",
613 Help: "Number of malformed access response packets received from the server",
614 })
615 onosaaaRxUnknownserver = prometheus.NewGauge(
616 prometheus.GaugeOpts{
617 Name: "onosaaa_rx_from_unknown_server",
618 Help: "Number of packets received from an unknown server",
619 })
620 onosaaaRequestRttMillis = prometheus.NewGauge(
621 prometheus.GaugeOpts{
622 Name: "onosaaa_request_rttmillis",
623 Help: "Roundtrip packet time to the accounting server in Miliseconds",
624 })
625 onosaaaRequestReTx = prometheus.NewGauge(
626 prometheus.GaugeOpts{
627 Name: "onosaaa_request_re_tx",
628 Help: "Number of access request packets retransmitted to the server",
629 })
Daniele Morobe242582019-10-01 14:02:46 -0700630
Daniele Moro707c2092019-12-06 16:39:18 -0800631 // ONOS BNG kpis
Daniele Morobe242582019-10-01 14:02:46 -0700632
Daniele Moro707c2092019-12-06 16:39:18 -0800633 // --------------------- BNG UPSTREAM STATISTICS -----------------------------------------
634 onosBngUpTxBytes = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700635 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800636 Name: "onosBngUpTxBytes",
637 Help: "onosBngUpTxBytes",
Daniele Morobe242582019-10-01 14:02:46 -0700638 },
Daniele Moro707c2092019-12-06 16:39:18 -0800639 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700640 )
Daniele Moro707c2092019-12-06 16:39:18 -0800641 onosBngUpTxPackets = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700642 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800643 Name: "onosBngUpTxPackets",
644 Help: "onosBngUpTxPackets",
Daniele Morobe242582019-10-01 14:02:46 -0700645 },
Daniele Moro707c2092019-12-06 16:39:18 -0800646 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700647 )
Daniele Moro707c2092019-12-06 16:39:18 -0800648
649 onosBngUpRxBytes = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700650 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800651 Name: "onosBngUpRxBytes",
652 Help: "onosBngUpRxBytes",
Daniele Morobe242582019-10-01 14:02:46 -0700653 },
Daniele Moro707c2092019-12-06 16:39:18 -0800654 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700655 )
Daniele Moro707c2092019-12-06 16:39:18 -0800656
657 onosBngUpRxPackets = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700658 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800659 Name: "onosBngUpRxPackets",
660 Help: "onosBngUpRxPackets",
Daniele Morobe242582019-10-01 14:02:46 -0700661 },
Daniele Moro707c2092019-12-06 16:39:18 -0800662 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700663 )
Daniele Moro707c2092019-12-06 16:39:18 -0800664 onosBngUpDropBytes = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700665 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800666 Name: "onosBngUpDropBytes",
667 Help: "onosBngUpDropBytes",
Daniele Morobe242582019-10-01 14:02:46 -0700668 },
Daniele Moro707c2092019-12-06 16:39:18 -0800669 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700670 )
Daniele Moro707c2092019-12-06 16:39:18 -0800671 onosBngUpDropPackets = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700672 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800673 Name: "onosBngUpDropPackets",
674 Help: "onosBngUpDropPackets",
Daniele Morobe242582019-10-01 14:02:46 -0700675 },
Daniele Moro707c2092019-12-06 16:39:18 -0800676 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700677 )
Daniele Moro707c2092019-12-06 16:39:18 -0800678
679 // --------------------- BNG CONTROL STATISTICS ------------------------------------------
680 onosBngControlPackets = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700681 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800682 Name: "onosBngControlPackets",
683 Help: "onosBngControlPackets",
Daniele Morobe242582019-10-01 14:02:46 -0700684 },
Daniele Moro707c2092019-12-06 16:39:18 -0800685 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700686 )
Daniele Moro707c2092019-12-06 16:39:18 -0800687
688 // -------------------- BNG DOWNSTREAM STATISTICS ----------------------------------------
689 onosBngDownTxBytes = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700690 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800691 Name: "onosBngDownTxBytes",
692 Help: "onosBngDownTxBytes",
Daniele Morobe242582019-10-01 14:02:46 -0700693 },
Daniele Moro707c2092019-12-06 16:39:18 -0800694 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700695 )
Daniele Moro707c2092019-12-06 16:39:18 -0800696 onosBngDownTxPackets = prometheus.NewGaugeVec(
Daniele Morobe242582019-10-01 14:02:46 -0700697 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800698 Name: "onosBngDownTxPackets",
699 Help: "onosBngDownTxPackets",
Daniele Morobe242582019-10-01 14:02:46 -0700700 },
Daniele Moro707c2092019-12-06 16:39:18 -0800701 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
Daniele Morobe242582019-10-01 14:02:46 -0700702 )
Daniele Moro707c2092019-12-06 16:39:18 -0800703
704 onosBngDownRxBytes = prometheus.NewGaugeVec(
705 prometheus.GaugeOpts{
706 Name: "onosBngDownRxBytes",
707 Help: "onosBngDownRxBytes",
708 },
709 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
710 )
711 onosBngDownRxPackets = prometheus.NewGaugeVec(
712 prometheus.GaugeOpts{
713 Name: "onosBngDownRxPackets",
714 Help: "onosBngDownRxPackets",
715 },
716 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
717 )
718
719 onosBngDownDropBytes = prometheus.NewGaugeVec(
720 prometheus.GaugeOpts{
721 Name: "onosBngDownDropBytes",
722 Help: "onosBngDownDropBytes",
723 },
724 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
725 )
726 onosBngDownDropPackets = prometheus.NewGaugeVec(
727 prometheus.GaugeOpts{
728 Name: "onosBngDownDropPackets",
729 Help: "onosBngDownDropPackets",
730 },
731 []string{"mac_address", "ip", "session_id", "s_tag", "c_tag", "onu_serial", "type"},
732 )
kesavand2cde6582020-06-22 04:56:23 -0400733 /* The device metrics will be removed in future and device
734 metrics defined in VOL-3255 will be supported
735 */
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +0530736 deviceLaserBiasCurrent = prometheus.NewGaugeVec(
Ganesh Bhuref15383e2019-11-11 15:15:14 +0530737 prometheus.GaugeOpts{
Daniele Moro707c2092019-12-06 16:39:18 -0800738 Name: "device_laser_bias_current",
Ganesh Bhuref15383e2019-11-11 15:15:14 +0530739 Help: "Device Laser Bias Current",
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +0530740 },
741 []string{"port_id"},
742 )
743 deviceTemperature = prometheus.NewGaugeVec(
Ganesh Bhuref15383e2019-11-11 15:15:14 +0530744 prometheus.GaugeOpts{
745 Name: "device_temperature",
746 Help: "Device Temperature",
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +0530747 },
748 []string{"port_id"},
749 )
750 deviceTxPower = prometheus.NewGaugeVec(
Ganesh Bhuref15383e2019-11-11 15:15:14 +0530751 prometheus.GaugeOpts{
752 Name: "device_tx_power",
753 Help: "Device Tx Power",
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +0530754 },
755 []string{"port_id"},
756 )
757 deviceVoltage = prometheus.NewGaugeVec(
Ganesh Bhuref15383e2019-11-11 15:15:14 +0530758 prometheus.GaugeOpts{
759 Name: "device_voltage",
760 Help: "Device Voltage",
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +0530761 },
762 []string{"port_id"},
763 )
764
Shubham Sharma57600bf2019-08-09 07:09:57 +0000765 onosaaaRxEapolLogoff = prometheus.NewGauge(
766 prometheus.GaugeOpts{
767 Name: "onosaaa_rx_eapol_Logoff",
768 Help: "Number of EAPOL logoff messages received resulting in disconnected state",
769 })
770 onosaaaTxEapolResIdentityMsg = prometheus.NewGauge(
771 prometheus.GaugeOpts{
772 Name: "onosaaa_tx_eapol_Res_IdentityMsg",
773 Help: "Number of authenticating transitions due to EAP response or identity message",
774 })
775 onosaaaTxAuthSuccess = prometheus.NewGauge(
776 prometheus.GaugeOpts{
777 Name: "onosaaa_tx_auth_Success",
778 Help: "Number of authenticated transitions due to successful authentication",
779 })
780 onosaaaTxAuthFailure = prometheus.NewGauge(
781 prometheus.GaugeOpts{
782 Name: "onosaaa_tx_auth_Failure",
783 Help: "Number of transitions to held due to authentication failure",
784 })
785 onosaaaTxStartReq = prometheus.NewGauge(
786 prometheus.GaugeOpts{
787 Name: "onosaaa_tx_start_Req",
788 Help: "Number of transitions to connecting due to start request",
789 })
790 onosaaaEapPktTxAuthChooseEap = prometheus.NewGauge(
791 prometheus.GaugeOpts{
792 Name: "onosaaa_eap_Pkt_tx_auth_choosing_Eap",
793 Help: "Number of EAP request packets sent due to the authenticator choosing the EAP method",
794 })
795 onosaaaTxRespnotNak = prometheus.NewGauge(
796 prometheus.GaugeOpts{
797 Name: "onosaaa_tx_Resp_not_Nak",
798 Help: "Number of transitions to response (received response other that NAK)",
Daniele Moro707c2092019-12-06 16:39:18 -0800799 })
shubham sharmae7f85752019-09-16 13:37:18 +0000800 onosaaaEapolFramesTx = prometheus.NewGauge(
801 prometheus.GaugeOpts{
802 Name: "onosaaa_eapol_frames_tx",
803 Help: "Number of EAPOL frames transmitted",
804 })
805 onosaaaAuthStateIdle = prometheus.NewGauge(
806 prometheus.GaugeOpts{
807 Name: "onosaaa_auth_state_idle",
808 Help: "Number of state machine status as Idle",
809 })
810 onosaaaRequestIdFramesTx = prometheus.NewGauge(
811 prometheus.GaugeOpts{
812 Name: "onosaaa_tx_request_id_frames",
813 Help: "Number of request ID EAP frames transmitted",
814 })
815 onosaaaRequestEapFramesTx = prometheus.NewGauge(
816 prometheus.GaugeOpts{
817 Name: "onosaaa_tx_request_eap_frames",
818 Help: "Number of request EAP frames transmitted",
819 })
820 onosaaaInvalidPktType = prometheus.NewGauge(
821 prometheus.GaugeOpts{
822 Name: "onosaaa_invalid_pkt_type",
823 Help: "Number of EAPOL frames received with invalid frame(Packet) type",
824 })
825 onosaaaInvalidBodyLength = prometheus.NewGauge(
826 prometheus.GaugeOpts{
827 Name: "onosaaa_invalid_body_length",
828 Help: "Number of EAPOL frames received with invalid body length",
829 })
830 onosaaaValidEapolFramesRx = prometheus.NewGauge(
831 prometheus.GaugeOpts{
832 Name: "onosaaa_rx_valid_eapol_frames",
833 Help: "Number of valid EAPOL frames received",
834 })
835 onosaaaPendingResSupplicant = prometheus.NewGauge(
836 prometheus.GaugeOpts{
837 Name: "onosaaa_pending_response_supplicant",
838 Help: "Number of request pending response from supplicant",
839 })
840 onosaaaRxResIdEapFrames = prometheus.NewGauge(
841 prometheus.GaugeOpts{
842 Name: "onosaaa_rx_res_id_eap_frames",
843 Help: "Number of response ID EAP frames received",
Shubham Sharma57600bf2019-08-09 07:09:57 +0000844 })
kesavand2cde6582020-06-22 04:56:23 -0400845 //OLT Device Metrics
846 //TODO: Check if component level temperatures are supported by Devices,If not remove in later versions of exporter
847 oltDeviceCpuTemp = prometheus.NewGaugeVec(
848 prometheus.GaugeOpts{
849 Name: "olt_device_cpu_temperature",
850 Help: "cpu temperature",
851 },
852 []string{"deviceuuid", "componentuuid", "componentname"},
853 )
854
855 oltDeviceCpuUsagePercent = prometheus.NewGaugeVec(
856 prometheus.GaugeOpts{
857 Name: "olt_device_cpu_usage_percentage",
858 Help: "usage of cpu",
859 },
860 []string{"deviceuuid", "componentuuid", "componentname"},
861 )
862 oltDeviceFanSpeed = prometheus.NewGaugeVec(
863 prometheus.GaugeOpts{
864 Name: "olt_device_fan_speed",
865 Help: "fan speed",
866 },
867 []string{"deviceuuid", "componentuuid", "componentname"},
868 )
869 oltDeviceDiskTemp = prometheus.NewGaugeVec(
870 prometheus.GaugeOpts{
871 Name: "olt_device_disk_temp",
872 Help: "disk temperature",
873 },
874 []string{"deviceuuid", "componentuuid", "componentname"},
875 )
876 oltDeviceDiskUsagePercent = prometheus.NewGaugeVec(
877 prometheus.GaugeOpts{
878 Name: "olt_device_disk_usage_percent",
879 Help: "disk usage percentage",
880 },
881 []string{"deviceuuid", "componentuuid", "componentname"},
882 )
883 oltDeviceRamTemp = prometheus.NewGaugeVec(
884 prometheus.GaugeOpts{
885 Name: "olt_device_ram_temp",
886 Help: "RAM temperature",
887 },
888 []string{"deviceuuid", "componentuuid", "componentname"},
889 )
890 oltDeviceRamUsagePercent = prometheus.NewGaugeVec(
891 prometheus.GaugeOpts{
892 Name: "olt_device_ram_usage_percentage",
893 Help: "RAM usage percentage",
894 },
895 []string{"deviceuuid", "componentuuid", "componentname"},
896 )
897
898 oltDevicePowerUsagePercent = prometheus.NewGaugeVec(
899 prometheus.GaugeOpts{
900 Name: "olt_device_power_usage_percentage",
901 Help: "power usage percentage",
902 },
903 []string{"deviceuuid", "componentuuid", "componentname"},
904 )
905
906 oltDeviceInnerSurroundTemp = prometheus.NewGaugeVec(
907 prometheus.GaugeOpts{
908 Name: "olt_device_inner_surrounding_temperature",
909 Help: "inner surrounding temperature",
910 },
911 []string{"deviceuuid", "componentuuid", "componentname"},
912 )
913
914 oltDevicePowerUsage = prometheus.NewGaugeVec(
915 prometheus.GaugeOpts{
916 Name: "olt_device_power_usage",
917 Help: "power usage",
918 },
919 []string{"deviceuuid", "componentuuid", "componentname"},
920 )
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700921)
922
kesavand2cde6582020-06-22 04:56:23 -0400923var oltDeviceMetrics = map[dmi.MetricNames]*prometheus.GaugeVec{
924 dmi.MetricNames_METRIC_CPU_TEMP: oltDeviceCpuTemp,
925 dmi.MetricNames_METRIC_CPU_USAGE_PERCENTAGE: oltDeviceCpuUsagePercent,
926 dmi.MetricNames_METRIC_FAN_SPEED: oltDeviceFanSpeed,
927 dmi.MetricNames_METRIC_DISK_TEMP: oltDeviceDiskTemp,
928 dmi.MetricNames_METRIC_DISK_USAGE_PERCENTAGE: oltDeviceDiskUsagePercent,
929 dmi.MetricNames_METRIC_RAM_TEMP: oltDeviceRamTemp,
930 dmi.MetricNames_METRIC_RAM_USAGE_PERCENTAGE: oltDeviceRamUsagePercent,
931 dmi.MetricNames_METRIC_POWER_USAGE_PERCENTAGE: oltDevicePowerUsagePercent,
932 dmi.MetricNames_METRIC_INNER_SURROUNDING_TEMP: oltDeviceInnerSurroundTemp,
933 dmi.MetricNames_METRIC_POWER_USAGE: oltDevicePowerUsage,
934}
935
kesavand6753e5e2020-04-28 03:34:21 -0400936func exportVolthaEthernetPonStats(data *voltha.MetricInformation) {
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700937
kesavand6753e5e2020-04-28 03:34:21 -0400938 volthaOltTxBytesTotal.WithLabelValues(
939 data.GetMetadata().GetLogicalDeviceId(),
940 data.GetMetadata().GetSerialNo(),
941 data.GetMetadata().GetDeviceId(),
942 "NA", // InterfaceID
943 "NA", // PonID
944 data.GetMetadata().GetContext()["portno"],
945 data.GetMetadata().GetTitle(),
946 ).Set(float64(data.GetMetrics()["TxBytes"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700947
kesavand6753e5e2020-04-28 03:34:21 -0400948 volthaOltRxBytesTotal.WithLabelValues(
949 data.GetMetadata().GetLogicalDeviceId(),
950 data.GetMetadata().GetSerialNo(),
951 data.GetMetadata().GetDeviceId(),
952 "NA", // InterfaceID
953 "NA", // PonID
954 data.GetMetadata().GetContext()["portno"],
955 data.GetMetadata().GetTitle(),
956 ).Set(float64(data.GetMetrics()["RxBytes"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700957
kesavand6753e5e2020-04-28 03:34:21 -0400958 volthaOltTxPacketsTotal.WithLabelValues(
959 data.GetMetadata().GetLogicalDeviceId(),
960 data.GetMetadata().GetSerialNo(),
961 data.GetMetadata().GetDeviceId(),
962 "NA", // InterfaceID
963 "NA", // PonID
964 data.GetMetadata().GetContext()["portno"],
965 data.GetMetadata().GetTitle(),
966 ).Set(float64(data.GetMetrics()["TxPackets"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700967
kesavand6753e5e2020-04-28 03:34:21 -0400968 volthaOltRxPacketsTotal.WithLabelValues(
969 data.GetMetadata().GetLogicalDeviceId(),
970 data.GetMetadata().GetSerialNo(),
971 data.GetMetadata().GetDeviceId(),
972 "NA", // InterfaceID
973 "NA", // PonID
974 data.GetMetadata().GetContext()["portno"],
975 data.GetMetadata().GetTitle(),
976 ).Set(float64(data.GetMetrics()["RxPackets"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700977
kesavand6753e5e2020-04-28 03:34:21 -0400978 volthaOltTxErrorPacketsTotal.WithLabelValues(
979 data.GetMetadata().GetLogicalDeviceId(),
980 data.GetMetadata().GetSerialNo(),
981 data.GetMetadata().GetDeviceId(),
982 "NA", // InterfaceID
983 "NA", // PonID
984 data.GetMetadata().GetContext()["portno"],
985 data.GetMetadata().GetTitle(),
986 ).Set(float64(data.GetMetrics()["TxErrorPackets"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700987
kesavand6753e5e2020-04-28 03:34:21 -0400988 volthaOltRxErrorPacketsTotal.WithLabelValues(
989 data.GetMetadata().GetLogicalDeviceId(),
990 data.GetMetadata().GetSerialNo(),
991 data.GetMetadata().GetDeviceId(),
992 "NA", // InterfaceID
993 "NA", // PonID
994 data.GetMetadata().GetContext()["portno"],
995 data.GetMetadata().GetTitle(),
996 ).Set(float64(data.GetMetrics()["RxErrorPackets"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -0700997
kesavand6753e5e2020-04-28 03:34:21 -0400998 volthaOltTxBroadcastPacketsTotal.WithLabelValues(
999 data.GetMetadata().GetLogicalDeviceId(),
1000 data.GetMetadata().GetSerialNo(),
1001 data.GetMetadata().GetDeviceId(),
1002 "NA", // InterfaceID
1003 "NA", // PonID
1004 data.GetMetadata().GetContext()["portno"],
1005 data.GetMetadata().GetTitle(),
1006 ).Set(float64(data.GetMetrics()["TxBcastPackets"]))
Matteo Scandoloaab36db2018-10-09 19:54:11 -07001007
kesavand6753e5e2020-04-28 03:34:21 -04001008 volthaOltTxUnicastPacketsTotal.WithLabelValues(
1009 data.GetMetadata().GetLogicalDeviceId(),
1010 data.GetMetadata().GetSerialNo(),
1011 data.GetMetadata().GetDeviceId(),
1012 "NA", // InterfaceID
1013 "NA", // PonID
1014 data.GetMetadata().GetContext()["portno"],
1015 data.GetMetadata().GetTitle(),
1016 ).Set(float64(data.GetMetrics()["TxUcastPackets"]))
1017
1018 volthaOltTxMulticastPacketsTotal.WithLabelValues(
1019 data.GetMetadata().GetLogicalDeviceId(),
1020 data.GetMetadata().GetSerialNo(),
1021 data.GetMetadata().GetDeviceId(),
1022 "NA", // InterfaceID
1023 "NA", // PonID
1024 data.GetMetadata().GetContext()["portno"],
1025 data.GetMetadata().GetTitle(),
1026 ).Set(float64(data.GetMetrics()["TxMcastPackets"]))
1027
1028 volthaOltRxBroadcastPacketsTotal.WithLabelValues(
1029 data.GetMetadata().GetLogicalDeviceId(),
1030 data.GetMetadata().GetSerialNo(),
1031 data.GetMetadata().GetDeviceId(),
1032 "NA", // InterfaceID
1033 "NA", // PonID
1034 data.GetMetadata().GetContext()["portno"],
1035 data.GetMetadata().GetTitle(),
1036 ).Set(float64(data.GetMetrics()["RxBcastPackets"]))
1037
1038 volthaOltRxUnicastPacketsTotal.WithLabelValues(
1039 data.GetMetadata().GetLogicalDeviceId(),
1040 data.GetMetadata().GetSerialNo(),
1041 data.GetMetadata().GetDeviceId(),
1042 "NA", // InterfaceID
1043 "NA", // PonID
1044 data.GetMetadata().GetContext()["portno"],
1045 data.GetMetadata().GetTitle(),
1046 ).Set(float64(data.GetMetrics()["RxUcastPackets"]))
1047
1048 volthaOltRxMulticastPacketsTotal.WithLabelValues(
1049 data.GetMetadata().GetLogicalDeviceId(),
1050 data.GetMetadata().GetSerialNo(),
1051 data.GetMetadata().GetDeviceId(),
1052 "NA", // InterfaceID
1053 "NA", // PonID
1054 data.GetMetadata().GetContext()["portno"],
1055 data.GetMetadata().GetTitle(),
1056 ).Set(float64(data.GetMetrics()["RxMcastPackets"]))
1057}
1058
1059func exportVolthaOnuEthernetBridgePortStats(data *voltha.MetricInformation) {
1060
1061 if (data.GetMetadata().GetContext()["upstream"]) == "True" {
1062 // ONU. Extended Ethernet statistics.
1063 volthaOnuBridgePortTxPacketsTotal.WithLabelValues(
1064 data.Metadata.GetLogicalDeviceId(),
1065 data.Metadata.GetSerialNo(),
1066 data.Metadata.GetDeviceId(),
1067 data.GetMetadata().GetTitle(),
1068 ).Add(float64(data.GetMetrics()["packets"]))
1069
1070 volthaOnuBridgePortTxBytesTotal.WithLabelValues(
1071 data.GetMetadata().GetLogicalDeviceId(),
1072 data.GetMetadata().GetSerialNo(),
1073 data.GetMetadata().GetDeviceId(),
1074 data.GetMetadata().GetTitle(),
1075 ).Add(float64(data.GetMetrics()["octets"]))
1076
1077 volthaOnuBridgePort_64octetTxPacketsTotal.WithLabelValues(
1078 data.GetMetadata().GetLogicalDeviceId(),
1079 data.Metadata.GetSerialNo(),
1080 data.Metadata.GetDeviceId(),
1081 data.GetMetadata().GetTitle(),
1082 ).Add(float64(data.GetMetrics()["64_octets"]))
1083
1084 volthaOnuBridgePort_65_127_octetTxPacketsTotal.WithLabelValues(
1085 data.GetMetadata().GetLogicalDeviceId(),
1086 data.Metadata.GetSerialNo(),
1087 data.Metadata.GetDeviceId(),
1088 data.GetMetadata().GetTitle(),
1089 ).Add(float64(data.GetMetrics()["65_to_127_octets"]))
1090
1091 volthaOnuBridgePort_128_255_octetTxPacketsTotal.WithLabelValues(
1092 data.GetMetadata().GetLogicalDeviceId(),
1093 data.Metadata.GetSerialNo(),
1094 data.Metadata.GetDeviceId(),
1095 data.GetMetadata().GetTitle(),
1096 ).Add(float64(data.GetMetrics()["128_to_255_octets"]))
1097
1098 volthaOnuBridgePort_256_511_octetTxPacketsTotal.WithLabelValues(
1099 data.GetMetadata().GetLogicalDeviceId(),
1100 data.Metadata.GetSerialNo(),
1101 data.Metadata.GetDeviceId(),
1102 data.GetMetadata().GetTitle(),
1103 ).Add(float64(data.GetMetrics()["256_to_511_octets"]))
1104
1105 volthaOnuBridgePort_512_1023_octetTxPacketsTotal.WithLabelValues(
1106 data.GetMetadata().GetLogicalDeviceId(),
1107 data.Metadata.GetSerialNo(),
1108 data.Metadata.GetDeviceId(),
1109 data.GetMetadata().GetTitle(),
1110 ).Add(float64(data.GetMetrics()["512_to_1023_octets"]))
1111
1112 volthaOnuBridgePort_1024_1518_octetTxPacketsTotal.WithLabelValues(
1113 data.GetMetadata().GetLogicalDeviceId(),
1114 data.Metadata.GetSerialNo(),
1115 data.Metadata.GetDeviceId(),
1116 data.GetMetadata().GetTitle(),
1117 ).Add(float64(data.GetMetrics()["1024_to_1518_octets"]))
1118
1119 volthaOnuBridgePortTxMulticastPacketsTotal.WithLabelValues(
1120 data.GetMetadata().GetLogicalDeviceId(),
1121 data.Metadata.GetSerialNo(),
1122 data.Metadata.GetDeviceId(),
1123 data.GetMetadata().GetTitle(),
1124 ).Add(float64(data.GetMetrics()["multicast_packets"]))
1125
1126 volthaOnuBridgePortTxBroadcastPacketsTotal.WithLabelValues(
1127 data.GetMetadata().GetLogicalDeviceId(),
1128 data.Metadata.GetSerialNo(),
1129 data.Metadata.GetDeviceId(),
1130 data.GetMetadata().GetTitle(),
1131 ).Add(float64(data.GetMetrics()["broadcast_packets"]))
1132
1133 volthaOnuBridgePortTxOversizePacketsTotal.WithLabelValues(
1134 data.GetMetadata().GetLogicalDeviceId(),
1135 data.Metadata.GetSerialNo(),
1136 data.Metadata.GetDeviceId(),
1137 data.GetMetadata().GetTitle(),
1138 ).Add(float64(data.GetMetrics()["oversize_packets"]))
1139
1140 volthaOnuBridgePortTxCrcErrorPacketsTotal.WithLabelValues(
1141 data.GetMetadata().GetLogicalDeviceId(),
1142 data.Metadata.GetSerialNo(),
1143 data.Metadata.GetDeviceId(),
1144 data.GetMetadata().GetTitle(),
1145 ).Add(float64(data.GetMetrics()["crc_errored_packets"]))
1146
1147 volthaOnuBridgePortTxUndersizePacketsTotal.WithLabelValues(
1148 data.GetMetadata().GetLogicalDeviceId(),
1149 data.Metadata.GetSerialNo(),
1150 data.Metadata.GetDeviceId(),
1151 data.GetMetadata().GetTitle(),
1152 ).Add(float64(data.GetMetrics()["undersize_packets"]))
1153
1154 volthaOnuBridgePortTxDropEventsTotal.WithLabelValues(
1155 data.GetMetadata().GetLogicalDeviceId(),
1156 data.Metadata.GetSerialNo(),
1157 data.Metadata.GetDeviceId(),
1158 data.GetMetadata().GetTitle(),
1159 ).Add(float64(data.GetMetrics()["drop_events"]))
1160
1161 } else {
1162
1163 // ONU. Extended Ethernet statistics.
1164 volthaOnuBridgePortRxPacketsTotal.WithLabelValues(
1165 data.GetMetadata().GetLogicalDeviceId(),
1166 data.GetMetadata().GetSerialNo(),
1167 data.GetMetadata().GetDeviceId(),
1168 data.GetMetadata().GetTitle(),
1169 ).Add(float64(data.GetMetrics()["packets"]))
1170
1171 volthaOnuBridgePortRxBytesTotal.WithLabelValues(
1172 data.GetMetadata().GetLogicalDeviceId(),
1173 data.GetMetadata().GetSerialNo(),
1174 data.GetMetadata().GetDeviceId(),
1175 data.GetMetadata().GetTitle(),
1176 ).Add(float64(data.GetMetrics()["octets"]))
1177
1178 volthaOnuBridgePort_64octetRxPacketsTotal.WithLabelValues(
1179 data.GetMetadata().GetLogicalDeviceId(),
1180 data.Metadata.GetSerialNo(),
1181 data.Metadata.GetDeviceId(),
1182 data.GetMetadata().GetTitle(),
1183 ).Add(float64(data.GetMetrics()["64_octets"]))
1184
1185 volthaOnuBridgePort_65_127_octetRxPacketsTotal.WithLabelValues(
1186 data.GetMetadata().GetLogicalDeviceId(),
1187 data.Metadata.GetSerialNo(),
1188 data.Metadata.GetDeviceId(),
1189 data.GetMetadata().GetTitle(),
1190 ).Add(float64(data.GetMetrics()["65_to_127_octets"]))
1191
1192 volthaOnuBridgePort_128_255_octetRxPacketsTotal.WithLabelValues(
1193 data.GetMetadata().GetLogicalDeviceId(),
1194 data.Metadata.GetSerialNo(),
1195 data.Metadata.GetDeviceId(),
1196 data.GetMetadata().GetTitle(),
1197 ).Add(float64(data.GetMetrics()["128_to_255_octets"]))
1198
1199 volthaOnuBridgePort_256_511_octetRxPacketsTotal.WithLabelValues(
1200 data.GetMetadata().GetLogicalDeviceId(),
1201 data.Metadata.GetSerialNo(),
1202 data.Metadata.GetDeviceId(),
1203 data.GetMetadata().GetTitle(),
1204 ).Add(float64(data.GetMetrics()["256_to_511_octets"]))
1205
1206 volthaOnuBridgePort_512_1023_octetRxPacketsTotal.WithLabelValues(
1207 data.GetMetadata().GetLogicalDeviceId(),
1208 data.Metadata.GetSerialNo(),
1209 data.Metadata.GetDeviceId(),
1210 data.GetMetadata().GetTitle(),
1211 ).Add(float64(data.GetMetrics()["512_to_1023_octets"]))
1212
1213 volthaOnuBridgePort_1024_1518_octetRxPacketsTotal.WithLabelValues(
1214 data.GetMetadata().GetLogicalDeviceId(),
1215 data.Metadata.GetSerialNo(),
1216 data.Metadata.GetDeviceId(),
1217 data.GetMetadata().GetTitle(),
1218 ).Add(float64(data.GetMetrics()["1024_to_1518_octets"]))
1219
1220 volthaOnuBridgePortRxMulticastPacketsTotal.WithLabelValues(
1221 data.GetMetadata().GetLogicalDeviceId(),
1222 data.Metadata.GetSerialNo(),
1223 data.Metadata.GetDeviceId(),
1224 data.GetMetadata().GetTitle(),
1225 ).Add(float64(data.GetMetrics()["multicast_packets"]))
1226
1227 volthaOnuBridgePortRxBroadcastPacketsTotal.WithLabelValues(
1228 data.GetMetadata().GetLogicalDeviceId(),
1229 data.Metadata.GetSerialNo(),
1230 data.Metadata.GetDeviceId(),
1231 data.GetMetadata().GetTitle(),
1232 ).Add(float64(data.GetMetrics()["broadcast_packets"]))
1233
1234 volthaOnuBridgePortRxOversizePacketsTotal.WithLabelValues(
1235 data.GetMetadata().GetLogicalDeviceId(),
1236 data.Metadata.GetSerialNo(),
1237 data.Metadata.GetDeviceId(),
1238 data.GetMetadata().GetTitle(),
1239 ).Add(float64(data.GetMetrics()["oversize_packets"]))
1240
1241 volthaOnuBridgePortRxCrcErrorPacketsTotal.WithLabelValues(
1242 data.GetMetadata().GetLogicalDeviceId(),
1243 data.Metadata.GetSerialNo(),
1244 data.Metadata.GetDeviceId(),
1245 data.GetMetadata().GetTitle(),
1246 ).Add(float64(data.GetMetrics()["crc_errored_packets"]))
1247
1248 volthaOnuBridgePortRxUndersizePacketsTotal.WithLabelValues(
1249 data.GetMetadata().GetLogicalDeviceId(),
1250 data.Metadata.GetSerialNo(),
1251 data.Metadata.GetDeviceId(),
1252 data.GetMetadata().GetTitle(),
1253 ).Add(float64(data.GetMetrics()["undersize_packets"]))
1254
1255 volthaOnuBridgePortRxDropEventsTotal.WithLabelValues(
1256 data.GetMetadata().GetLogicalDeviceId(),
1257 data.Metadata.GetSerialNo(),
1258 data.Metadata.GetDeviceId(),
1259 data.GetMetadata().GetTitle(),
1260 ).Add(float64(data.GetMetrics()["drop_events"]))
1261
1262 }
1263}
1264
1265func exportVolthaOnuPonOpticalStats(data *voltha.MetricInformation) {
1266 VolthaOnuTransmtOpticalPower.WithLabelValues(
1267 data.GetMetadata().GetLogicalDeviceId(),
1268 data.GetMetadata().GetSerialNo(),
1269 data.GetMetadata().GetDeviceId(),
1270 data.GetMetadata().GetContext()["intf_id"],
1271 "NA", // PonID,
1272 "NA", //PortNumber
1273 data.GetMetadata().GetTitle(),
1274 ).Set(float64(data.GetMetrics()["transmit_power"]))
1275
1276 VolthaOnuReceivedOpticalPower.WithLabelValues(
1277 data.GetMetadata().GetLogicalDeviceId(),
1278 data.GetMetadata().GetSerialNo(),
1279 data.GetMetadata().GetDeviceId(),
1280 data.GetMetadata().GetContext()["intf_id"],
1281 "NA", // PonID,
1282 "NA", //PortNumber
1283 data.GetMetadata().GetTitle(),
1284 ).Set(float64(data.GetMetrics()["receive_power"]))
1285}
1286func exportVolthaOnuFecStats(data *voltha.MetricInformation) {
1287 volthaOnuFecCorrectedCodewordsTotal.WithLabelValues(
1288 data.GetMetadata().GetLogicalDeviceId(),
1289 data.GetMetadata().GetSerialNo(),
1290 data.GetMetadata().GetDeviceId(),
1291 data.GetMetadata().GetTitle(),
1292 ).Set(float64(data.GetMetrics()["corrected_code_words"]))
1293
1294 volthaOnuFecCodewordsTotal.WithLabelValues(
1295 data.GetMetadata().GetLogicalDeviceId(),
1296 data.GetMetadata().GetSerialNo(),
1297 data.GetMetadata().GetDeviceId(),
1298 data.GetMetadata().GetTitle(),
1299 ).Set(float64(data.GetMetrics()["total_code_words"]))
1300
1301 volthaOnuFecCorrectedBytesTotal.WithLabelValues(
1302 data.GetMetadata().GetLogicalDeviceId(),
1303 data.GetMetadata().GetSerialNo(),
1304 data.GetMetadata().GetDeviceId(),
1305 data.GetMetadata().GetTitle(),
1306 ).Set(float64(data.GetMetrics()["corrected_bytes"]))
1307
1308 volthaOnuFecSecondsTotal.WithLabelValues(
1309 data.GetMetadata().GetLogicalDeviceId(),
1310 data.GetMetadata().GetSerialNo(),
1311 data.GetMetadata().GetDeviceId(),
1312 data.GetMetadata().GetTitle(),
1313 ).Set(float64(data.GetMetrics()["fec_seconds"]))
1314
1315 volthaOnuFecUncorrectablewordsTotal.WithLabelValues(
1316 data.GetMetadata().GetLogicalDeviceId(),
1317 data.GetMetadata().GetSerialNo(),
1318 data.GetMetadata().GetDeviceId(),
1319 data.GetMetadata().GetTitle(),
1320 ).Set(float64(data.GetMetrics()["uncorrectable_code_words"]))
1321}
1322func exportVolthaOnuEthernetUniStats(data *voltha.MetricInformation) {
1323
1324 volthaEthernetUniSingleCollisionTotal.WithLabelValues(
1325 data.GetMetadata().GetLogicalDeviceId(),
1326 data.GetMetadata().GetSerialNo(),
1327 data.GetMetadata().GetDeviceId(),
1328 data.GetMetadata().GetContext()["intf_id"],
1329 data.GetMetadata().GetContext()["portno"],
1330 data.GetMetadata().GetTitle(),
1331 ).Set(float64(data.GetMetrics()["single_collision_frame_counter"]))
1332
1333 volthaEthernetUniMacLayerTramsmitErrorTotal.WithLabelValues(
1334 data.GetMetadata().GetLogicalDeviceId(),
1335 data.GetMetadata().GetSerialNo(),
1336 data.GetMetadata().GetDeviceId(),
1337 data.GetMetadata().GetContext()["intf_id"],
1338 data.GetMetadata().GetContext()["portno"],
1339 data.GetMetadata().GetTitle(),
1340 ).Set(float64(data.GetMetrics()["internal_mac_rx_error_counter"]))
1341
1342 volthaEthernetUniMultiCollisionTotal.WithLabelValues(
1343 data.GetMetadata().GetLogicalDeviceId(),
1344 data.GetMetadata().GetSerialNo(),
1345 data.GetMetadata().GetDeviceId(),
1346 data.GetMetadata().GetContext()["intf_id"],
1347 data.GetMetadata().GetContext()["portno"],
1348 data.GetMetadata().GetTitle(),
1349 ).Set(float64(data.GetMetrics()["multiple_collisions_frame_counter"]))
1350
1351 volthaEthernetUniFramestooLongTotal.WithLabelValues(
1352 data.GetMetadata().GetLogicalDeviceId(),
1353 data.GetMetadata().GetSerialNo(),
1354 data.GetMetadata().GetDeviceId(),
1355 data.GetMetadata().GetContext()["intf_id"],
1356 data.GetMetadata().GetContext()["portno"],
1357 data.GetMetadata().GetTitle(),
1358 ).Set(float64(data.GetMetrics()["frames_too_long"]))
1359 volthaEthernetUniAlignmentErrorTotal.WithLabelValues(
1360 data.GetMetadata().GetLogicalDeviceId(),
1361 data.GetMetadata().GetSerialNo(),
1362 data.GetMetadata().GetDeviceId(),
1363 data.GetMetadata().GetContext()["intf_id"],
1364 data.GetMetadata().GetContext()["portno"],
1365 data.GetMetadata().GetTitle(),
1366 ).Set(float64(data.GetMetrics()["alignment_error_counter"]))
1367
1368 volthaEthernetUniCarrierErrorTotal.WithLabelValues(
1369 data.GetMetadata().GetLogicalDeviceId(),
1370 data.GetMetadata().GetSerialNo(),
1371 data.GetMetadata().GetDeviceId(),
1372 data.GetMetadata().GetContext()["intf_id"],
1373 data.GetMetadata().GetContext()["portno"],
1374 data.GetMetadata().GetTitle(),
1375 ).Set(float64(data.GetMetrics()["carrier_sense_error_counter"]))
1376 volthaEthernetUniExcessiveCollisionErrorTotal.WithLabelValues(
1377 data.GetMetadata().GetLogicalDeviceId(),
1378 data.GetMetadata().GetSerialNo(),
1379 data.GetMetadata().GetDeviceId(),
1380 data.GetMetadata().GetContext()["intf_id"],
1381 data.GetMetadata().GetContext()["portno"],
1382 data.GetMetadata().GetTitle(),
1383 ).Set(float64(data.GetMetrics()["excessive_collision_counter"]))
1384
1385 volthaEthernetUniDeferredTxTotal.WithLabelValues(
1386 data.GetMetadata().GetLogicalDeviceId(),
1387 data.GetMetadata().GetSerialNo(),
1388 data.GetMetadata().GetDeviceId(),
1389 data.GetMetadata().GetContext()["intf_id"],
1390 data.GetMetadata().GetContext()["portno"],
1391 data.GetMetadata().GetTitle(),
1392 ).Set(float64(data.GetMetrics()["deferred_tx_counter"]))
1393
1394 volthaEthernetUniLateCollisionTotal.WithLabelValues(
1395 data.GetMetadata().GetLogicalDeviceId(),
1396 data.GetMetadata().GetSerialNo(),
1397 data.GetMetadata().GetDeviceId(),
1398 data.GetMetadata().GetContext()["intf_id"],
1399 data.GetMetadata().GetContext()["portno"],
1400 data.GetMetadata().GetTitle(),
1401 ).Set(float64(data.GetMetrics()["late_collision_counter"]))
1402
1403 volthaEthernetUniBufferOverflowsRxErrorTotal.WithLabelValues(
1404 data.GetMetadata().GetLogicalDeviceId(),
1405 data.GetMetadata().GetSerialNo(),
1406 data.GetMetadata().GetDeviceId(),
1407 data.GetMetadata().GetContext()["intf_id"],
1408 data.GetMetadata().GetContext()["portno"],
1409 data.GetMetadata().GetTitle(),
1410 ).Set(float64(data.GetMetrics()[""]))
1411
1412 volthaEthernetUniFcsErrorTotal.WithLabelValues(
1413 data.GetMetadata().GetLogicalDeviceId(),
1414 data.GetMetadata().GetSerialNo(),
1415 data.GetMetadata().GetDeviceId(),
1416 data.GetMetadata().GetContext()["intf_id"],
1417 data.GetMetadata().GetContext()["portno"],
1418 data.GetMetadata().GetTitle(),
1419 ).Set(float64(data.GetMetrics()["fcs_errors"]))
1420
1421 volthaEthernetUniSqeErrorTotal.WithLabelValues(
1422 data.GetMetadata().GetLogicalDeviceId(),
1423 data.GetMetadata().GetSerialNo(),
1424 data.GetMetadata().GetDeviceId(),
1425 data.GetMetadata().GetContext()["intf_id"],
1426 data.GetMetadata().GetContext()["portno"],
1427 data.GetMetadata().GetTitle(),
1428 ).Set(float64(data.GetMetrics()["sqe_counter"]))
1429
1430 volthaEthernetUniBufferOverflowsTxErrorTotal.WithLabelValues(
1431 data.GetMetadata().GetLogicalDeviceId(),
1432 data.GetMetadata().GetSerialNo(),
1433 data.GetMetadata().GetDeviceId(),
1434 data.GetMetadata().GetContext()["intf_id"],
1435 data.GetMetadata().GetContext()["portno"],
1436 data.GetMetadata().GetTitle(),
1437 ).Set(float64(data.GetMetrics()["buffer_overflows_on_tx"]))
1438
1439}
1440
1441func exportVolthaKPIevent2(kpi *voltha.KpiEvent2) {
1442 for _, data := range kpi.GetSliceData() {
1443 switch title := data.GetMetadata().GetTitle(); title {
1444 case "ETHERNET_NNI", "PON_OLT":
1445 exportVolthaEthernetPonStats(data)
Matteo Scandoloaab36db2018-10-09 19:54:11 -07001446 case "Ethernet_Bridge_Port_History":
kesavand6753e5e2020-04-28 03:34:21 -04001447 exportVolthaOnuEthernetBridgePortStats(data)
Ganesh Bhure967018e2019-07-29 14:48:32 +05301448 case "PON_Optical":
kesavand6753e5e2020-04-28 03:34:21 -04001449 exportVolthaOnuPonOpticalStats(data)
Matteo Scandoloaab36db2018-10-09 19:54:11 -07001450 case "Ethernet_UNI_History":
kesavand6753e5e2020-04-28 03:34:21 -04001451 exportVolthaOnuEthernetUniStats(data)
Matteo Scandoloaab36db2018-10-09 19:54:11 -07001452 case "FEC_History":
kesavand6753e5e2020-04-28 03:34:21 -04001453 exportVolthaOnuFecStats(data)
1454 case "UNI_Status":
1455 // Do nothing.
Matteo Scandoloaab36db2018-10-09 19:54:11 -07001456
Matteo Scandoloaab36db2018-10-09 19:54:11 -07001457 }
1458 }
1459}
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301460
1461func exportOnosKPI(kpi OnosKPI) {
1462
1463 for _, data := range kpi.Ports {
1464
1465 onosTxBytesTotal.WithLabelValues(
1466 kpi.DeviceID,
1467 data.PortID,
1468 ).Set(data.TxBytes)
1469
1470 onosRxBytesTotal.WithLabelValues(
1471 kpi.DeviceID,
1472 data.PortID,
1473 ).Set(data.RxBytes)
1474
1475 onosTxPacketsTotal.WithLabelValues(
1476 kpi.DeviceID,
1477 data.PortID,
1478 ).Set(data.TxPackets)
1479
1480 onosRxPacketsTotal.WithLabelValues(
1481 kpi.DeviceID,
1482 data.PortID,
1483 ).Set(data.RxPackets)
1484
1485 onosTxDropPacketsTotal.WithLabelValues(
1486 kpi.DeviceID,
1487 data.PortID,
1488 ).Set(data.TxPacketsDrop)
1489
1490 onosRxDropPacketsTotal.WithLabelValues(
1491 kpi.DeviceID,
1492 data.PortID,
1493 ).Set(data.RxPacketsDrop)
1494 }
1495}
1496
1497func exportImporterKPI(kpi ImporterKPI) {
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +05301498 deviceLaserBiasCurrent.WithLabelValues(
1499 kpi.PortId,
1500 ).Set(kpi.LaserBiasCurrent)
1501 deviceTemperature.WithLabelValues(
1502 kpi.PortId,
1503 ).Set(kpi.Temperature)
1504 deviceTxPower.WithLabelValues(
1505 kpi.PortId,
1506 ).Set(kpi.TxPower)
1507 deviceVoltage.WithLabelValues(
1508 kpi.PortId,
1509 ).Set(kpi.Voltage)
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301510}
1511
kesavand2cde6582020-06-22 04:56:23 -04001512func exportDeviceKPI(kpi *dmi.Metric) {
1513
1514 if metrics, ok := oltDeviceMetrics[kpi.GetMetricId()]; ok {
1515 metrics.WithLabelValues(
1516 kpi.GetMetricMetadata().GetDeviceUuid().GetUuid(),
1517 kpi.GetMetricMetadata().GetComponentUuid().GetUuid(),
1518 kpi.GetMetricMetadata().GetComponentName(),
1519 ).Set(float64(kpi.GetValue().GetValue()))
1520 }
1521}
1522
kartikey dubey72ef3b82019-05-27 06:50:04 +00001523func exportOnosAaaKPI(kpi OnosAaaKPI) {
1524
1525 onosaaaRxAcceptResponses.Set(kpi.RxAcceptResponses)
1526
1527 onosaaaRxRejectResponses.Set(kpi.RxRejectResponses)
1528
1529 onosaaaRxChallengeResponses.Set(kpi.RxChallengeResponses)
1530
1531 onosaaaTxAccessRequests.Set(kpi.TxAccessRequests)
1532
1533 onosaaaRxInvalidValidators.Set(kpi.RxInvalidValidators)
1534
1535 onosaaaRxUnknownType.Set(kpi.RxUnknownType)
1536
1537 onosaaaPendingRequests.Set(kpi.PendingRequests)
1538
1539 onosaaaRxDroppedResponses.Set(kpi.RxDroppedResponses)
1540
1541 onosaaaRxMalformedResponses.Set(kpi.RxMalformedResponses)
1542
1543 onosaaaRxUnknownserver.Set(kpi.RxUnknownserver)
1544
1545 onosaaaRequestRttMillis.Set(kpi.RequestRttMillis)
1546
1547 onosaaaRequestReTx.Set(kpi.RequestReTx)
Shubham Sharma57600bf2019-08-09 07:09:57 +00001548
1549 onosaaaRxEapolLogoff.Set(kpi.RxEapolLogoff)
1550
1551 onosaaaTxEapolResIdentityMsg.Set(kpi.TxEapolResIdentityMsg)
1552
1553 onosaaaTxAuthSuccess.Set(kpi.TxAuthSuccess)
1554
1555 onosaaaTxAuthFailure.Set(kpi.TxAuthFailure)
1556
1557 onosaaaTxStartReq.Set(kpi.TxStartReq)
1558
1559 onosaaaEapPktTxAuthChooseEap.Set(kpi.EapPktTxAuthChooseEap)
1560
1561 onosaaaTxRespnotNak.Set(kpi.TxResponseNotNak)
shubham sharmae7f85752019-09-16 13:37:18 +00001562
1563 onosaaaEapolFramesTx.Set(kpi.EapolFramesTx)
1564
1565 onosaaaAuthStateIdle.Set(kpi.AuthStateIdle)
1566
1567 onosaaaRequestIdFramesTx.Set(kpi.RequestIdFramesTx)
1568
1569 onosaaaRequestEapFramesTx.Set(kpi.RequestEapFramesTx)
1570
1571 onosaaaInvalidPktType.Set(kpi.InvalidPktType)
1572
1573 onosaaaInvalidBodyLength.Set(kpi.InvalidBodyLength)
1574
1575 onosaaaValidEapolFramesRx.Set(kpi.ValidEapolFramesRx)
1576
1577 onosaaaPendingResSupplicant.Set(kpi.PendingResSupplicant)
1578
1579 onosaaaRxResIdEapFrames.Set(kpi.RxResIdEapFrames)
kartikey dubey72ef3b82019-05-27 06:50:04 +00001580}
1581
Daniele Moro707c2092019-12-06 16:39:18 -08001582func exportOnosBngKPI(kpi OnosBngKPI) {
1583 logger.WithFields(log.Fields{
1584 "Mac": kpi.Mac,
1585 "Ip": kpi.Ip,
1586 "PppoeSessionId": strconv.Itoa(kpi.PppoeSessionId),
1587 "AttachmentType": kpi.AttachmentType,
1588 "STag": strconv.Itoa(kpi.STag),
1589 "CTag": strconv.Itoa(kpi.CTag),
1590 "onuSerialNumber": kpi.OnuSerialNumber,
1591 }).Trace("Received OnosBngKPI message")
Daniele Morobe242582019-10-01 14:02:46 -07001592
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +05301593 if kpi.UpTxBytes != nil {
Daniele Moro707c2092019-12-06 16:39:18 -08001594 onosBngUpTxBytes.WithLabelValues(
1595 kpi.Mac,
1596 kpi.Ip,
1597 strconv.Itoa(kpi.PppoeSessionId),
1598 strconv.Itoa(kpi.STag),
1599 strconv.Itoa(kpi.CTag),
1600 kpi.OnuSerialNumber,
1601 kpi.AttachmentType,
1602 ).Set(*kpi.UpTxBytes)
1603 }
1604 if kpi.UpTxPackets != nil {
1605 onosBngUpTxPackets.WithLabelValues(
1606 kpi.Mac,
1607 kpi.Ip,
1608 strconv.Itoa(kpi.PppoeSessionId),
1609 strconv.Itoa(kpi.STag),
1610 strconv.Itoa(kpi.CTag),
1611 kpi.OnuSerialNumber,
1612 kpi.AttachmentType,
1613 ).Set(*kpi.UpTxPackets)
1614 }
1615 if kpi.UpRxBytes != nil {
1616 onosBngUpRxBytes.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.UpRxBytes)
1625 }
1626 if kpi.UpRxPackets != nil {
1627 onosBngUpRxPackets.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.UpRxPackets)
1636 }
Daniele Morobe242582019-10-01 14:02:46 -07001637
Daniele Moro707c2092019-12-06 16:39:18 -08001638 if kpi.UpDropBytes != nil {
1639 onosBngUpDropBytes.WithLabelValues(
1640 kpi.Mac,
1641 kpi.Ip,
1642 strconv.Itoa(kpi.PppoeSessionId),
1643 strconv.Itoa(kpi.STag),
1644 strconv.Itoa(kpi.CTag),
1645 kpi.OnuSerialNumber,
1646 kpi.AttachmentType,
1647 ).Set(*kpi.UpDropBytes)
1648 }
1649 if kpi.UpDropPackets != nil {
1650 onosBngUpDropPackets.WithLabelValues(
1651 kpi.Mac,
1652 kpi.Ip,
1653 strconv.Itoa(kpi.PppoeSessionId),
1654 strconv.Itoa(kpi.STag),
1655 strconv.Itoa(kpi.CTag),
1656 kpi.OnuSerialNumber,
1657 kpi.AttachmentType,
1658 ).Set(*kpi.UpDropPackets)
1659 }
1660
1661 if kpi.ControlPackets != nil {
1662 onosBngControlPackets.WithLabelValues(
1663 kpi.Mac,
1664 kpi.Ip,
1665 strconv.Itoa(kpi.PppoeSessionId),
1666 strconv.Itoa(kpi.STag),
1667 strconv.Itoa(kpi.CTag),
1668 kpi.OnuSerialNumber,
1669 kpi.AttachmentType,
1670 ).Set(*kpi.ControlPackets)
1671 }
1672
1673 if kpi.DownTxBytes != nil {
1674 onosBngDownTxBytes.WithLabelValues(
1675 kpi.Mac,
1676 kpi.Ip,
1677 strconv.Itoa(kpi.PppoeSessionId),
1678 strconv.Itoa(kpi.STag),
1679 strconv.Itoa(kpi.CTag),
1680 kpi.OnuSerialNumber,
1681 kpi.AttachmentType,
1682 ).Set(*kpi.DownTxBytes)
1683 }
1684 if kpi.DownTxPackets != nil {
1685 onosBngDownTxPackets.WithLabelValues(
1686 kpi.Mac,
1687 kpi.Ip,
1688 strconv.Itoa(kpi.PppoeSessionId),
1689 strconv.Itoa(kpi.STag),
1690 strconv.Itoa(kpi.CTag),
1691 kpi.OnuSerialNumber,
1692 kpi.AttachmentType,
1693 ).Set(*kpi.DownTxPackets)
1694 }
1695
1696 if kpi.DownRxBytes != nil {
1697 onosBngDownRxBytes.WithLabelValues(
1698 kpi.Mac,
1699 kpi.Ip,
1700 strconv.Itoa(kpi.PppoeSessionId),
1701 strconv.Itoa(kpi.STag),
1702 strconv.Itoa(kpi.CTag),
1703 kpi.OnuSerialNumber,
1704 kpi.AttachmentType,
1705 ).Set(*kpi.DownRxBytes)
1706 }
1707 if kpi.DownRxPackets != nil {
1708 onosBngDownRxPackets.WithLabelValues(
1709 kpi.Mac,
1710 kpi.Ip,
1711 strconv.Itoa(kpi.PppoeSessionId),
1712 strconv.Itoa(kpi.STag),
1713 strconv.Itoa(kpi.CTag),
1714 kpi.OnuSerialNumber,
1715 kpi.AttachmentType,
1716 ).Set(*kpi.DownRxPackets)
1717 }
1718
1719 if kpi.DownDropBytes != nil {
1720 onosBngDownDropBytes.WithLabelValues(
1721 kpi.Mac,
1722 kpi.Ip,
1723 strconv.Itoa(kpi.PppoeSessionId),
1724 strconv.Itoa(kpi.STag),
1725 strconv.Itoa(kpi.CTag),
1726 kpi.OnuSerialNumber,
1727 kpi.AttachmentType,
1728 ).Set(*kpi.DownDropBytes)
1729 }
1730 if kpi.DownDropPackets != nil {
1731 onosBngDownDropPackets.WithLabelValues(
1732 kpi.Mac,
1733 kpi.Ip,
1734 strconv.Itoa(kpi.PppoeSessionId),
1735 strconv.Itoa(kpi.STag),
1736 strconv.Itoa(kpi.CTag),
1737 kpi.OnuSerialNumber,
1738 kpi.AttachmentType,
1739 ).Set(*kpi.DownDropPackets)
Daniele Morobe242582019-10-01 14:02:46 -07001740 }
1741}
1742
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301743func export(topic *string, data []byte) {
1744 switch *topic {
kesavand6753e5e2020-04-28 03:34:21 -04001745 case "voltha.events":
1746 event := voltha.Event{}
1747 err := proto.Unmarshal(data, &event)
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301748 if err != nil {
Ganesh Bhure74fb7b02019-06-28 16:16:26 +05301749 logger.Error("Invalid msg on voltha.kpis: %s, Unprocessed Msg: %s", err.Error(), string(data))
Ganesh Bhure0f2449c2019-07-15 10:31:38 +05301750 break
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301751 }
kesavand6753e5e2020-04-28 03:34:21 -04001752 if event.GetHeader().GetType() == voltha.EventType_KPI_EVENT2 {
1753 logger.Debug("KPI_EVENT2 received on voltha.events")
1754 kpiEvent2 := event.GetKpiEvent2()
1755 exportVolthaKPIevent2(kpiEvent2)
1756 }
1757
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301758 case "onos.kpis":
1759 kpi := OnosKPI{}
1760 err := json.Unmarshal(data, &kpi)
1761 if err != nil {
Ganesh Bhure74fb7b02019-06-28 16:16:26 +05301762 logger.Error("Invalid msg on onos.kpis: %s, Unprocessed Msg: %s", err.Error(), string(data))
Ganesh Bhure0f2449c2019-07-15 10:31:38 +05301763 break
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301764 }
1765 exportOnosKPI(kpi)
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +05301766 case "importer":
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301767 kpi := ImporterKPI{}
Ganesh Bhuref15383e2019-11-11 15:15:14 +05301768 strData := string(data)
1769 idx := strings.Index(strData, "{")
1770 strData = strData[idx:]
1771
1772 var m map[string]interface{}
1773 err := json.Unmarshal([]byte(strData), &m)
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301774 if err != nil {
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +05301775 logger.Error("Invalid msg on importer: %s", err.Error())
Ganesh Bhuref15383e2019-11-11 15:15:14 +05301776 logger.Debug("Unprocessed Msg: %s", strData)
1777 break
1778 }
1779 if val, ok := m["TransceiverStatistics"]; ok {
1780 stats := val.(map[string]interface{})
Ganesh Bhuref15383e2019-11-11 15:15:14 +05301781 kpi.LaserBiasCurrent = stats["BiasCurrent"].(map[string]interface{})["Reading"].(float64)
1782 kpi.Temperature = stats["Temperature"].(map[string]interface{})["Reading"].(float64)
1783 kpi.TxPower = stats["TxPower"].(map[string]interface{})["Reading"].(float64)
1784 kpi.Voltage = stats["Voltage"].(map[string]interface{})["Reading"].(float64)
1785 } else {
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +05301786 logger.Error("Optical stats (TransceiverStatistics) information missing [topic=importer")
Ganesh Bhuref15383e2019-11-11 15:15:14 +05301787 logger.Debug("Unprocessed Msg: %s", strData)
Ganesh Bhure0f2449c2019-07-15 10:31:38 +05301788 break
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301789 }
Ganesh Bhure7f9eccb2019-11-27 16:24:24 +05301790 kpi.PortId = m["Id"].(string)
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301791 exportImporterKPI(kpi)
kartikey dubey72ef3b82019-05-27 06:50:04 +00001792 case "onos.aaa.stats.kpis":
1793 kpi := OnosAaaKPI{}
1794 err := json.Unmarshal(data, &kpi)
1795 if err != nil {
Ganesh Bhure74fb7b02019-06-28 16:16:26 +05301796 logger.Error("Invalid msg on onos.aaa.stats.kpis: %s, Unprocessed Msg: %s", err.Error(), string(data))
Ganesh Bhure0f2449c2019-07-15 10:31:38 +05301797 break
kartikey dubey72ef3b82019-05-27 06:50:04 +00001798 }
1799 exportOnosAaaKPI(kpi)
Daniele Moro707c2092019-12-06 16:39:18 -08001800 case "bng.stats":
1801 kpi := OnosBngKPI{}
Daniele Morobe242582019-10-01 14:02:46 -07001802 err := json.Unmarshal(data, &kpi)
1803 if err != nil {
Daniele Moro707c2092019-12-06 16:39:18 -08001804 logger.Error("Invalid msg on bng.stats: %s, Unprocessed Msg: %s", err.Error(), string(data))
Daniele Morobe242582019-10-01 14:02:46 -07001805 break
1806 }
Daniele Moro707c2092019-12-06 16:39:18 -08001807 exportOnosBngKPI(kpi)
kesavand2cde6582020-06-22 04:56:23 -04001808 case "dm.metrics":
1809 kpi := dmi.Metric{}
1810 err := proto.Unmarshal(data, &kpi)
1811 if err != nil {
1812 logger.Error("Invalid msg on device topic : %s, Unprocessed Msg: %s", err.Error(), string(data))
1813 break
1814 }
1815 exportDeviceKPI(&kpi)
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301816 default:
Ganesh Bhure74fb7b02019-06-28 16:16:26 +05301817 logger.Warn("Unexpected export. Topic [%s] not supported. Should not come here", *topic)
Ganesh Bhure8d0c9942019-05-24 11:42:09 +05301818 }
1819}