| // Copyright 2018 Open Networking Foundation |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| package main |
| |
| import ( |
| "github.com/prometheus/client_golang/prometheus" |
| ) |
| |
| var ( |
| onosTxBytesTotal = prometheus.NewGaugeVec( |
| prometheus.GaugeOpts{ |
| Name: "onos_tx_bytes_total", |
| Help: "Number of total bytes transmitted", |
| }, |
| []string{"device_id", "port_id"}, |
| ) |
| onosRxBytesTotal = prometheus.NewGaugeVec( |
| prometheus.GaugeOpts{ |
| Name: "onos_rx_bytes_total", |
| Help: "Number of total bytes received", |
| }, |
| []string{"device_id", "port_id"}, |
| ) |
| onosTxPacketsTotal = prometheus.NewGaugeVec( |
| prometheus.GaugeOpts{ |
| Name: "onos_tx_packets_total", |
| Help: "Number of total packets transmitted", |
| }, |
| []string{"device_id", "port_id"}, |
| ) |
| onosRxPacketsTotal = prometheus.NewGaugeVec( |
| prometheus.GaugeOpts{ |
| Name: "onos_rx_packets_total", |
| Help: "Number of total packets received", |
| }, |
| []string{"device_id", "port_id"}, |
| ) |
| |
| onosTxDropPacketsTotal = prometheus.NewGaugeVec( |
| prometheus.GaugeOpts{ |
| Name: "onos_tx_drop_packets_total", |
| Help: "Number of total transmitted packets dropped", |
| }, |
| []string{"device_id", "port_id"}, |
| ) |
| |
| onosRxDropPacketsTotal = prometheus.NewGaugeVec( |
| prometheus.GaugeOpts{ |
| Name: "onos_rx_drop_packets_total", |
| Help: "Number of total received packets dropped", |
| }, |
| []string{"device_id", "port_id"}, |
| ) |
| ) |
| |
| func exportOnosKPI(kpi OnosKPI) { |
| |
| for _, data := range kpi.Ports { |
| |
| onosTxBytesTotal.WithLabelValues( |
| kpi.DeviceID, |
| data.PortID, |
| ).Set(data.TxBytes) |
| |
| onosRxBytesTotal.WithLabelValues( |
| kpi.DeviceID, |
| data.PortID, |
| ).Set(data.RxBytes) |
| |
| onosTxPacketsTotal.WithLabelValues( |
| kpi.DeviceID, |
| data.PortID, |
| ).Set(data.TxPackets) |
| |
| onosRxPacketsTotal.WithLabelValues( |
| kpi.DeviceID, |
| data.PortID, |
| ).Set(data.RxPackets) |
| |
| onosTxDropPacketsTotal.WithLabelValues( |
| kpi.DeviceID, |
| data.PortID, |
| ).Set(data.TxPacketsDrop) |
| |
| onosRxDropPacketsTotal.WithLabelValues( |
| kpi.DeviceID, |
| data.PortID, |
| ).Set(data.RxPacketsDrop) |
| |
| } |
| } |