SEBA-973 Update kafka topic exporter to support voltha 2.0 KPI2 event types
Needs to be merged after mergeing VOL-2948
Change-Id: I29620969773d555294ce6eefe7cf52be6df63225
diff --git a/topic-exporter.go b/topic-exporter.go
index 4532c28..2923c87 100644
--- a/topic-exporter.go
+++ b/topic-exporter.go
@@ -17,6 +17,8 @@
import (
"encoding/json"
"gerrit.opencord.org/kafka-topic-exporter/common/logger"
+ "github.com/golang/protobuf/proto"
+ "github.com/opencord/voltha-protos/go/voltha"
"github.com/prometheus/client_golang/prometheus"
log "github.com/sirupsen/logrus"
"strconv"
@@ -25,51 +27,99 @@
var (
// voltha kpis
- volthaTxBytesTotal = prometheus.NewGaugeVec(
+ volthaOltTxBytesTotal = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
- Name: "voltha_tx_bytes_total",
+ Name: "voltha_olt_tx_bytes_total",
Help: "Number of total bytes transmitted",
},
[]string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
)
- volthaRxBytesTotal = prometheus.NewGaugeVec(
+ volthaOltRxBytesTotal = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
- Name: "voltha_rx_bytes_total",
+ Name: "voltha_olt_rx_bytes_total",
Help: "Number of total bytes received",
},
[]string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
)
- volthaTxPacketsTotal = prometheus.NewGaugeVec(
+ volthaOltTxPacketsTotal = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
- Name: "voltha_tx_packets_total",
+ Name: "voltha_olt_tx_packets_total",
Help: "Number of total packets transmitted",
},
[]string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
)
- volthaRxPacketsTotal = prometheus.NewGaugeVec(
+ volthaOltRxPacketsTotal = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
- Name: "voltha_rx_packets_total",
+ Name: "voltha_olt_rx_packets_total",
Help: "Number of total packets received",
},
[]string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
)
- volthaTxErrorPacketsTotal = prometheus.NewGaugeVec(
+ volthaOltTxErrorPacketsTotal = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
- Name: "voltha_tx_error_packets_total",
+ Name: "voltha_olt_tx_error_packets_total",
Help: "Number of total transmitted packets error",
},
[]string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
)
- volthaRxErrorPacketsTotal = prometheus.NewGaugeVec(
+ volthaOltRxErrorPacketsTotal = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
- Name: "voltha_rx_error_packets_total",
+ Name: "voltha_olt_rx_error_packets_total",
Help: "Number of total received packets error",
},
[]string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
)
+ volthaOltTxBroadcastPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_olt_tx_broadcast_packets_total",
+ Help: "Number of total broadcast packets transmitted",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
+ )
+
+ volthaOltTxUnicastPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_olt_tx_unicast_packets_total",
+ Help: "Number of total unicast packets transmitted",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
+ )
+
+ volthaOltTxMulticastPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_olt_tx_multicast_packets_total",
+ Help: "Number of total multicast packets transmitted",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
+ )
+
+ volthaOltRxBroadcastPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_olt_rx_broadcast_packets_total",
+ Help: "Number of total broadcast packets received",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
+ )
+
+ volthaOltRxUnicastPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_olt_rx_unicast_packets_total",
+ Help: "Number of total unicast packets received",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
+ )
+
+ volthaOltRxMulticastPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_olt_rx_multicast_packets_total",
+ Help: "Number of total multicast packets received",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
+ )
+
// optical parameters
VolthaOnuLaserBiasCurrent = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
@@ -111,6 +161,363 @@
[]string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
)
+ VolthaOnuTransmtOpticalPower = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_transmit_optical_power",
+ Help: "ONU transmited optical power",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "pon_id", "port_number", "title"},
+ )
+
+ // FEC parameters
+ volthaOnuFecCorrectedCodewordsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_fec_corrected_code_words",
+ Help: "Number of total code words corrected",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+
+ volthaOnuFecCodewordsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_fec_code_words_total",
+ Help: "Number of total code words",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+
+ volthaOnuFecCorrectedBytesTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_fec_corrected_bytes_total",
+ Help: "Number of total corrected bytes",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+
+ volthaOnuFecSecondsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_fec_corrected_fec_seconds_total",
+ Help: "Number of fec seconds total",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+
+ volthaOnuFecUncorrectablewordsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_fec_uncorrectable_words_total",
+ Help: "Number of fec uncorrectable words",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+ //Etheret UNI
+
+ volthaEthernetUniSingleCollisionTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_ethernet_uni_single_collision_frame_counter",
+ Help: "successfully transmitted frames but delayed by exactly one collision.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
+ )
+
+ volthaEthernetUniMacLayerTramsmitErrorTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_ethernet_uni_internal_mac_rx_error_counter",
+ Help: "transmission failed due to an internal MAC sublayer transmit error.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
+ )
+
+ volthaEthernetUniMultiCollisionTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_ethernet_uni_multiple_collisions_frame_counter",
+ Help: "successfully transmitted frames but delayed by multiple collisions.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
+ )
+
+ volthaEthernetUniFramestooLongTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_ethernet_uni_frames_too_long",
+ Help: "frames that exceeded the maximum permitted frame size.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
+ )
+
+ volthaEthernetUniAlignmentErrorTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_ethernet_uni_alignment_error_counter",
+ Help: "frames that were not an integral number of octets in length and did not pass the FCS check.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
+ )
+ volthaEthernetUniCarrierErrorTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_ethernet_uni_carrier_sense_error_counter",
+ Help: "number of times that carrier sense was lost or never asserted when attempting to transmit a frame.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
+ )
+ volthaEthernetUniExcessiveCollisionErrorTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_ethernet_uni_excessive_collision_counter",
+ Help: "frames whose transmission failed due to excessive collisions.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
+ )
+ volthaEthernetUniDeferredTxTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_ethernet_uni_deferred_tx_counter",
+ Help: "frames whose first transmission attempt was delayed because the medium was busy.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
+ )
+ volthaEthernetUniLateCollisionTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_ethernet_uni_late_collision_counter",
+ Help: "number of times that a collision was detected later than 512 bit times into the transmission of a packet.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
+ )
+ volthaEthernetUniBufferOverflowsRxErrorTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_ethernet_uni_buffer_overflows_on_rx",
+ Help: "number of times that the receive buffer overflowed.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
+ )
+ volthaEthernetUniFcsErrorTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_ethernet_uni_fcs_errors",
+ Help: " frames failed the frame check sequence (FCS) check.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
+ )
+ volthaEthernetUniSqeErrorTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_ethernet_uni_sqe_counter",
+ Help: "number of times that the SQE test error message was generated by the PLS sublayer",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
+ )
+ volthaEthernetUniBufferOverflowsTxErrorTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_ethernet_uni_buffer_overflows_on_tx",
+ Help: " number of times that the transmit buffer overflowed.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "interface_id", "port_number", "title"},
+ )
+ //Ethernet_Bridge_Port
+
+ volthaOnuBridgePortTxBytesTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_tx_bytes_total",
+ Help: "Number of total bytes transmitted",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+ volthaOnuBridgePortRxBytesTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_rx_bytes_total",
+ Help: "Number of total bytes received",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+ volthaOnuBridgePortTxPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_tx_packets_total",
+ Help: "Number of total packets transmitted",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+ volthaOnuBridgePortRxPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_rx_packets_total",
+ Help: "Number of total packets received",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+
+ volthaOnuBridgePort_64octetTxPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_64_octets_Txpackets",
+ Help: "packets (including bad packets) that were 64 octets long",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+
+ volthaOnuBridgePort_65_127_octetTxPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_65_to_127_octet_Txpackets",
+ Help: "packets (including bad packets) that were 65..127 octets long, excluding framing bits but including FCS.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+
+ volthaOnuBridgePort_128_255_octetTxPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_128_to_255_octet_Txpackets",
+ Help: "packets (including bad packets) received that were 128..255 octets long, excluding framing bits but including FCS.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+
+ volthaOnuBridgePort_256_511_octetTxPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_256_to_511_octet_Txpackets",
+ Help: "packets (including bad packets) received that were 256..511 octets long, excluding framing bits but including FCS.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+
+ volthaOnuBridgePort_512_1023_octetTxPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_512_to_1023_octet_Txpackets",
+ Help: "packets (including bad packets) received that were 512..1 023 octets long, excluding framing bits but including FCS.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+
+ volthaOnuBridgePort_1024_1518_octetTxPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_1024_to_1518_octet_Txpackets",
+ Help: "packets (including bad packets) received that were 1024..1518 octets long, excluding framing bits, but including FCS.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+ volthaOnuBridgePortTxMulticastPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_multicast_Txpackets",
+ Help: "packets received that were directed to a multicast address.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+ volthaOnuBridgePortTxBroadcastPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_broadcast_Txpackets",
+ Help: "packets received that were directed to the broadcast address.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+ volthaOnuBridgePortTxOversizePacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_oversize_Txpackets",
+ Help: " packets received that were longer than 1518 octets",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+ volthaOnuBridgePortTxCrcErrorPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_crc_errored_Txpackets",
+ Help: "Packets with CRC errors",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+ volthaOnuBridgePortTxUndersizePacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_undersize_Txpackets",
+ Help: "Packets received that were less than 64 octets long, but were otherwise well formed",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+
+ volthaOnuBridgePortTxDropEventsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_Txdrop_events",
+ Help: "total number of events in which packets were dropped due to a lack of resources. ",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+ volthaOnuBridgePort_64octetRxPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_64_octets_Rxpackets",
+ Help: "packets (including bad packets) that were 64 octets long",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+
+ volthaOnuBridgePort_65_127_octetRxPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_65_to_127_octet_Rxpackets",
+ Help: "packets (including bad packets) that were 65..127 octets long, excluding framing bits but including FCS.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+
+ volthaOnuBridgePort_128_255_octetRxPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_128_to_255_octet_packets",
+ Help: "packets (including bad packets) received that were 128..255 octets long, excluding framing bits but including FCS.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+
+ volthaOnuBridgePort_256_511_octetRxPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_256_to_511_octet_Rxpackets",
+ Help: "packets (including bad packets) received that were 256..511 octets long, excluding framing bits but including FCS.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+
+ volthaOnuBridgePort_512_1023_octetRxPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_512_to_1023_octet_Rxpackets",
+ Help: "packets (including bad packets) received that were 512..1 023 octets long, excluding framing bits but including FCS.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+
+ volthaOnuBridgePort_1024_1518_octetRxPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_1024_to_1518_octet_Rxpackets",
+ Help: "packets (including bad packets) received that were 1024..1518 octets long, excluding framing bits, but including FCS.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+ volthaOnuBridgePortRxMulticastPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_multicast_Rxpackets",
+ Help: "packets received that were directed to a multicast address.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+ volthaOnuBridgePortRxBroadcastPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_broadcast_Rxpackets",
+ Help: "packets received that were directed to the broadcast address.",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+ volthaOnuBridgePortRxOversizePacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_oversize_Rxpackets",
+ Help: " packets received that were longer than 1518 octets",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+ volthaOnuBridgePortRxCrcErrorPacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_crc_errored_Rxpackets",
+ Help: "Packets with CRC errors",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+ volthaOnuBridgePortRxUndersizePacketsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_undersize_Rxpackets",
+ Help: "Packets received that were less than 64 octets long, but were otherwise well formed",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+
+ volthaOnuBridgePortRxDropEventsTotal = prometheus.NewGaugeVec(
+ prometheus.GaugeOpts{
+ Name: "voltha_onu_bridge_port_Rxdrop_events",
+ Help: "total number of events in which packets were dropped due to a lack of resources. ",
+ },
+ []string{"logical_device_id", "serial_number", "device_id", "title"},
+ )
+
// onos kpis
onosTxBytesTotal = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
@@ -433,249 +840,527 @@
})
)
-func exportVolthaKPI(kpi VolthaKPI) {
+func exportVolthaEthernetPonStats(data *voltha.MetricInformation) {
- for _, data := range kpi.SliceDatas {
- switch title := data.Metadata.Title; title {
- case "Ethernet", "PON":
- volthaTxBytesTotal.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- data.Metadata.Context.InterfaceID,
- data.Metadata.Context.PonID,
- data.Metadata.Context.PortNumber,
- data.Metadata.Title,
- ).Set(data.Metrics.TxBytes)
+ volthaOltTxBytesTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ "NA", // InterfaceID
+ "NA", // PonID
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["TxBytes"]))
- volthaRxBytesTotal.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- data.Metadata.Context.InterfaceID,
- data.Metadata.Context.PonID,
- data.Metadata.Context.PortNumber,
- data.Metadata.Title,
- ).Set(data.Metrics.RxBytes)
+ volthaOltRxBytesTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ "NA", // InterfaceID
+ "NA", // PonID
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["RxBytes"]))
- volthaTxPacketsTotal.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- data.Metadata.Context.InterfaceID,
- data.Metadata.Context.PonID,
- data.Metadata.Context.PortNumber,
- data.Metadata.Title,
- ).Set(data.Metrics.TxPackets)
+ volthaOltTxPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ "NA", // InterfaceID
+ "NA", // PonID
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["TxPackets"]))
- volthaRxPacketsTotal.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- data.Metadata.Context.InterfaceID,
- data.Metadata.Context.PonID,
- data.Metadata.Context.PortNumber,
- data.Metadata.Title,
- ).Set(data.Metrics.RxPackets)
+ volthaOltRxPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ "NA", // InterfaceID
+ "NA", // PonID
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["RxPackets"]))
- volthaTxErrorPacketsTotal.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- data.Metadata.Context.InterfaceID,
- data.Metadata.Context.PonID,
- data.Metadata.Context.PortNumber,
- data.Metadata.Title,
- ).Set(data.Metrics.TxErrorPackets)
+ volthaOltTxErrorPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ "NA", // InterfaceID
+ "NA", // PonID
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["TxErrorPackets"]))
- volthaRxErrorPacketsTotal.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- data.Metadata.Context.InterfaceID,
- data.Metadata.Context.PonID,
- data.Metadata.Context.PortNumber,
- data.Metadata.Title,
- ).Set(data.Metrics.RxErrorPackets)
+ volthaOltRxErrorPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ "NA", // InterfaceID
+ "NA", // PonID
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["RxErrorPackets"]))
- // TODO add metrics for:
- // TxBcastPackets
- // TxUnicastPackets
- // TxMulticastPackets
- // RxBcastPackets
- // RxMulticastPackets
+ volthaOltTxBroadcastPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ "NA", // InterfaceID
+ "NA", // PonID
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["TxBcastPackets"]))
+ volthaOltTxUnicastPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ "NA", // InterfaceID
+ "NA", // PonID
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["TxUcastPackets"]))
+
+ volthaOltTxMulticastPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ "NA", // InterfaceID
+ "NA", // PonID
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["TxMcastPackets"]))
+
+ volthaOltRxBroadcastPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ "NA", // InterfaceID
+ "NA", // PonID
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["RxBcastPackets"]))
+
+ volthaOltRxUnicastPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ "NA", // InterfaceID
+ "NA", // PonID
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["RxUcastPackets"]))
+
+ volthaOltRxMulticastPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ "NA", // InterfaceID
+ "NA", // PonID
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["RxMcastPackets"]))
+}
+
+func exportVolthaOnuEthernetBridgePortStats(data *voltha.MetricInformation) {
+
+ if (data.GetMetadata().GetContext()["upstream"]) == "True" {
+ // ONU. Extended Ethernet statistics.
+ volthaOnuBridgePortTxPacketsTotal.WithLabelValues(
+ data.Metadata.GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["packets"]))
+
+ volthaOnuBridgePortTxBytesTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["octets"]))
+
+ volthaOnuBridgePort_64octetTxPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["64_octets"]))
+
+ volthaOnuBridgePort_65_127_octetTxPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["65_to_127_octets"]))
+
+ volthaOnuBridgePort_128_255_octetTxPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["128_to_255_octets"]))
+
+ volthaOnuBridgePort_256_511_octetTxPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["256_to_511_octets"]))
+
+ volthaOnuBridgePort_512_1023_octetTxPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["512_to_1023_octets"]))
+
+ volthaOnuBridgePort_1024_1518_octetTxPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["1024_to_1518_octets"]))
+
+ volthaOnuBridgePortTxMulticastPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["multicast_packets"]))
+
+ volthaOnuBridgePortTxBroadcastPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["broadcast_packets"]))
+
+ volthaOnuBridgePortTxOversizePacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["oversize_packets"]))
+
+ volthaOnuBridgePortTxCrcErrorPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["crc_errored_packets"]))
+
+ volthaOnuBridgePortTxUndersizePacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["undersize_packets"]))
+
+ volthaOnuBridgePortTxDropEventsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["drop_events"]))
+
+ } else {
+
+ // ONU. Extended Ethernet statistics.
+ volthaOnuBridgePortRxPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["packets"]))
+
+ volthaOnuBridgePortRxBytesTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["octets"]))
+
+ volthaOnuBridgePort_64octetRxPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["64_octets"]))
+
+ volthaOnuBridgePort_65_127_octetRxPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["65_to_127_octets"]))
+
+ volthaOnuBridgePort_128_255_octetRxPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["128_to_255_octets"]))
+
+ volthaOnuBridgePort_256_511_octetRxPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["256_to_511_octets"]))
+
+ volthaOnuBridgePort_512_1023_octetRxPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["512_to_1023_octets"]))
+
+ volthaOnuBridgePort_1024_1518_octetRxPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["1024_to_1518_octets"]))
+
+ volthaOnuBridgePortRxMulticastPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["multicast_packets"]))
+
+ volthaOnuBridgePortRxBroadcastPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["broadcast_packets"]))
+
+ volthaOnuBridgePortRxOversizePacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["oversize_packets"]))
+
+ volthaOnuBridgePortRxCrcErrorPacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["crc_errored_packets"]))
+
+ volthaOnuBridgePortRxUndersizePacketsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["undersize_packets"]))
+
+ volthaOnuBridgePortRxDropEventsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.Metadata.GetSerialNo(),
+ data.Metadata.GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Add(float64(data.GetMetrics()["drop_events"]))
+
+ }
+}
+
+func exportVolthaOnuPonOpticalStats(data *voltha.MetricInformation) {
+ VolthaOnuTransmtOpticalPower.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetContext()["intf_id"],
+ "NA", // PonID,
+ "NA", //PortNumber
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["transmit_power"]))
+
+ VolthaOnuReceivedOpticalPower.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetContext()["intf_id"],
+ "NA", // PonID,
+ "NA", //PortNumber
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["receive_power"]))
+}
+func exportVolthaOnuFecStats(data *voltha.MetricInformation) {
+ volthaOnuFecCorrectedCodewordsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["corrected_code_words"]))
+
+ volthaOnuFecCodewordsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["total_code_words"]))
+
+ volthaOnuFecCorrectedBytesTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["corrected_bytes"]))
+
+ volthaOnuFecSecondsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["fec_seconds"]))
+
+ volthaOnuFecUncorrectablewordsTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["uncorrectable_code_words"]))
+}
+func exportVolthaOnuEthernetUniStats(data *voltha.MetricInformation) {
+
+ volthaEthernetUniSingleCollisionTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetContext()["intf_id"],
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["single_collision_frame_counter"]))
+
+ volthaEthernetUniMacLayerTramsmitErrorTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetContext()["intf_id"],
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["internal_mac_rx_error_counter"]))
+
+ volthaEthernetUniMultiCollisionTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetContext()["intf_id"],
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["multiple_collisions_frame_counter"]))
+
+ volthaEthernetUniFramestooLongTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetContext()["intf_id"],
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["frames_too_long"]))
+ volthaEthernetUniAlignmentErrorTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetContext()["intf_id"],
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["alignment_error_counter"]))
+
+ volthaEthernetUniCarrierErrorTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetContext()["intf_id"],
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["carrier_sense_error_counter"]))
+ volthaEthernetUniExcessiveCollisionErrorTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetContext()["intf_id"],
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["excessive_collision_counter"]))
+
+ volthaEthernetUniDeferredTxTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetContext()["intf_id"],
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["deferred_tx_counter"]))
+
+ volthaEthernetUniLateCollisionTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetContext()["intf_id"],
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["late_collision_counter"]))
+
+ volthaEthernetUniBufferOverflowsRxErrorTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetContext()["intf_id"],
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()[""]))
+
+ volthaEthernetUniFcsErrorTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetContext()["intf_id"],
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["fcs_errors"]))
+
+ volthaEthernetUniSqeErrorTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetContext()["intf_id"],
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["sqe_counter"]))
+
+ volthaEthernetUniBufferOverflowsTxErrorTotal.WithLabelValues(
+ data.GetMetadata().GetLogicalDeviceId(),
+ data.GetMetadata().GetSerialNo(),
+ data.GetMetadata().GetDeviceId(),
+ data.GetMetadata().GetContext()["intf_id"],
+ data.GetMetadata().GetContext()["portno"],
+ data.GetMetadata().GetTitle(),
+ ).Set(float64(data.GetMetrics()["buffer_overflows_on_tx"]))
+
+}
+
+func exportVolthaKPIevent2(kpi *voltha.KpiEvent2) {
+ for _, data := range kpi.GetSliceData() {
+ switch title := data.GetMetadata().GetTitle(); title {
+ case "ETHERNET_NNI", "PON_OLT":
+ exportVolthaEthernetPonStats(data)
case "Ethernet_Bridge_Port_History":
- if data.Metadata.Context.Upstream == "True" {
- // ONU. Extended Ethernet statistics.
- volthaTxPacketsTotal.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- "NA", // InterfaceID
- "NA", // PonID
- "NA", // PortNumber
- data.Metadata.Title,
- ).Add(data.Metrics.Packets)
-
- volthaTxBytesTotal.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- "NA", // InterfaceID
- "NA", // PonID
- "NA", // PortNumber
- data.Metadata.Title,
- ).Add(data.Metrics.Octets)
- } else {
- // ONU. Extended Ethernet statistics.
- volthaRxPacketsTotal.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- "NA", // InterfaceID
- "NA", // PonID
- "NA", // PortNumber
- data.Metadata.Title,
- ).Add(data.Metrics.Packets)
-
- volthaRxBytesTotal.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- "NA", // InterfaceID
- "NA", // PonID
- "NA", // PortNumber
- data.Metadata.Title,
- ).Add(data.Metrics.Octets)
- }
-
+ exportVolthaOnuEthernetBridgePortStats(data)
case "PON_Optical":
- VolthaOnuLaserBiasCurrent.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- data.Metadata.Context.InterfaceID,
- data.Metadata.Context.PonID,
- data.Metadata.Context.PortNumber,
- data.Metadata.Title,
- ).Set(data.Metrics.LaserBiasCurrent)
-
- volthaOnuTemperature.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- data.Metadata.Context.InterfaceID,
- data.Metadata.Context.PonID,
- data.Metadata.Context.PortNumber,
- data.Metadata.Title,
- ).Set(data.Metrics.Temperature)
-
- VolthaOnuPowerFeedVoltage.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- data.Metadata.Context.InterfaceID,
- data.Metadata.Context.PonID,
- data.Metadata.Context.PortNumber,
- data.Metadata.Title,
- ).Set(data.Metrics.PowerFeedVoltage)
-
- VolthaOnuMeanOpticalLaunchPower.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- data.Metadata.Context.InterfaceID,
- data.Metadata.Context.PonID,
- data.Metadata.Context.PortNumber,
- data.Metadata.Title,
- ).Set(data.Metrics.MeanOpticalLaunchPower)
-
- VolthaOnuReceivedOpticalPower.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- data.Metadata.Context.InterfaceID,
- data.Metadata.Context.PonID,
- data.Metadata.Context.PortNumber,
- data.Metadata.Title,
- ).Set(data.Metrics.ReceivedOpticalPower)
-
+ exportVolthaOnuPonOpticalStats(data)
case "Ethernet_UNI_History":
- // ONU. Do nothing.
-
+ exportVolthaOnuEthernetUniStats(data)
case "FEC_History":
- // ONU. Do Nothing.
+ exportVolthaOnuFecStats(data)
+ case "UNI_Status":
+ // Do nothing.
- volthaTxBytesTotal.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- data.Metadata.Context.InterfaceID,
- data.Metadata.Context.PonID,
- data.Metadata.Context.PortNumber,
- data.Metadata.Title,
- ).Set(data.Metrics.TxBytes)
-
- volthaRxBytesTotal.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- data.Metadata.Context.InterfaceID,
- data.Metadata.Context.PonID,
- data.Metadata.Context.PortNumber,
- data.Metadata.Title,
- ).Set(data.Metrics.RxBytes)
-
- volthaTxPacketsTotal.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- data.Metadata.Context.InterfaceID,
- data.Metadata.Context.PonID,
- data.Metadata.Context.PortNumber,
- data.Metadata.Title,
- ).Set(data.Metrics.TxPackets)
-
- volthaRxPacketsTotal.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- data.Metadata.Context.InterfaceID,
- data.Metadata.Context.PonID,
- data.Metadata.Context.PortNumber,
- data.Metadata.Title,
- ).Set(data.Metrics.RxPackets)
-
- volthaTxErrorPacketsTotal.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- data.Metadata.Context.InterfaceID,
- data.Metadata.Context.PonID,
- data.Metadata.Context.PortNumber,
- data.Metadata.Title,
- ).Set(data.Metrics.TxErrorPackets)
-
- volthaRxErrorPacketsTotal.WithLabelValues(
- data.Metadata.LogicalDeviceID,
- data.Metadata.SerialNumber,
- data.Metadata.DeviceID,
- data.Metadata.Context.InterfaceID,
- data.Metadata.Context.PonID,
- data.Metadata.Context.PortNumber,
- data.Metadata.Title,
- ).Set(data.Metrics.RxErrorPackets)
-
- // TODO add metrics for:
- // TxBcastPackets
- // TxUnicastPackets
- // TxMulticastPackets
- // RxBcastPackets
- // RxMulticastPackets
-
- case "voltha.internal":
- // Voltha Internal. Do nothing.
}
}
}
@@ -953,14 +1638,19 @@
func export(topic *string, data []byte) {
switch *topic {
- case "voltha.kpis":
- kpi := VolthaKPI{}
- err := json.Unmarshal(data, &kpi)
+ case "voltha.events":
+ event := voltha.Event{}
+ err := proto.Unmarshal(data, &event)
if err != nil {
logger.Error("Invalid msg on voltha.kpis: %s, Unprocessed Msg: %s", err.Error(), string(data))
break
}
- exportVolthaKPI(kpi)
+ if event.GetHeader().GetType() == voltha.EventType_KPI_EVENT2 {
+ logger.Debug("KPI_EVENT2 received on voltha.events")
+ kpiEvent2 := event.GetKpiEvent2()
+ exportVolthaKPIevent2(kpiEvent2)
+ }
+
case "onos.kpis":
kpi := OnosKPI{}
err := json.Unmarshal(data, &kpi)