blob: 8cb41ff08b77a7cf35483f5e11495678691c9995 [file] [log] [blame]
Matteo Scandoloa8bd93e2018-09-13 13:36:50 -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
Ganesh Bhure8d0c9942019-05-24 11:42:09 +053017// configuration
18type BrokerInfo struct {
19 Name string `yaml: name`
20 Host string `yaml: host`
21 Description string `yaml: description`
22 Topics []string `yaml: topics`
23}
Matteo Scandoloa8bd93e2018-09-13 13:36:50 -070024
Ganesh Bhure8d0c9942019-05-24 11:42:09 +053025type LoggerInfo struct {
26 LogLevel string `yaml: loglevel`
27 Host string `yaml: host`
28}
29
30type TargetInfo struct {
31 Type string `yaml: type`
32 Name string `yaml: name`
33 Port int `yaml: port`
34 Description string `yaml: description`
35}
36
37type Config struct {
38 Broker BrokerInfo `yaml: broker`
39 Logger LoggerInfo `yaml: logger`
40 Target TargetInfo `yaml: "target"`
41}
42
43// KPI Events format
Matteo Scandoloa8bd93e2018-09-13 13:36:50 -070044type Metrics struct {
45 TxBytes float64 `json:"tx_bytes"`
46 TxPackets float64 `json:"tx_packets"`
47 TxErrorPackets float64 `json:"tx_error_packets"`
48 TxBcastPackets float64 `json:"tx_bcast_packets"`
49 TxUnicastPackets float64 `json:"tx_ucast_packets"`
50 TxMulticastPackets float64 `json:"tx_mcast_packets"`
51 RxBytes float64 `json:"rx_bytes"`
52 RxPackets float64 `json:"rx_packets"`
53 RxErrorPackets float64 `json:"rx_error_packets"`
54 RxBcastPackets float64 `json:"rx_bcast_packets"`
55 RxMulticastPackets float64 `json:"rx_mcast_packets"`
Scott Bakere8537af2018-10-22 14:53:44 -070056
57 // ONU Ethernet_Bridge_Port_history
58 Packets float64 `json:"packets"`
59 Octets float64 `json:"octets"`
Matteo Scandoloa8bd93e2018-09-13 13:36:50 -070060}
61
62type Context struct {
63 InterfaceID string `json:"intf_id"`
64 PonID string `json:"pon_id"`
65 PortNumber string `json:"port_no"`
Scott Bakere8537af2018-10-22 14:53:44 -070066
67 // ONU Performance Metrics
68 ParentClassId string `json:"parent_class_id"`
69 ParentEntityId string `json:"parent_entity_id"`
70 Upstream string `json:"upstream"`
Matteo Scandoloa8bd93e2018-09-13 13:36:50 -070071}
72
73type Metadata struct {
74 LogicalDeviceID string `json:"logical_device_id"`
75 Title string `json:"title"`
76 SerialNumber string `json:"serial_no"`
77 Timestamp float64 `json:"ts"`
78 DeviceID string `json:"device_id"`
79 Context *Context `json:"context"`
80}
81
82type SliceData struct {
83 Metrics *Metrics `json:"metrics"`
84 Metadata *Metadata `json:"metadata"`
85}
86
Matteo Scandoloaab36db2018-10-09 19:54:11 -070087type VolthaKPI struct {
Matteo Scandoloa8bd93e2018-09-13 13:36:50 -070088 Type string `json:"type"`
89 Timestamp float64 `json:"ts"`
90 SliceDatas []*SliceData `json:"slice_data"`
91}
Matteo Scandoloaab36db2018-10-09 19:54:11 -070092
93type OnosPort struct {
94 PortID string `json:"portId"`
95 RxPackets float64 `json:"pktRx"`
96 TxPackets float64 `json:"pktTx"`
97 RxBytes float64 `json:"bytesRx"`
98 TxBytes float64 `json:"bytesTx"`
99 RxPacketsDrop float64 `json:"pktRxDrp"`
100 TxPacketsDrop float64 `json:"pktTxDrp"`
101}
102
103type OnosKPI struct {
104 DeviceID string `json:"deviceId"`
105 Ports []*OnosPort `json:"ports"`
106}
Ganesh Bhure8d0c9942019-05-24 11:42:09 +0530107
108type ImporterKPI struct {
109 DeviceID string `json: "deviceId"`
110 // TODO: add metrics data
111}