Bug 1546198

Summary: [RFE] ovs-stats metrics list to add to collectd
Product: Red Hat OpenStack Reporter: Matthias Runge <mrunge>
Component: openvswitchAssignee: Matteo Croce <mcroce>
Status: CLOSED NEXTRELEASE QA Contact: Leonid Natapov <lnatapov>
Severity: medium Docs Contact:
Priority: medium    
Version: 10.0 (Newton)CC: aguetta, apannu, apevec, atragler, chrisw, fleitner, jbadiapa, jjoyce, jlibosva, jraju, lars, lnatapov, mcroce, mmagr, mrunge, pkilambi, rhos-maint, rkhan, rmccabe, srevivo
Target Milestone: ---Keywords: FutureFeature, Reopened, Triaged, ZStream
Target Release: 10.0 (Newton)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: collectd-5.8.1-2.el7ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1544767 Environment:
Last Closed: 2019-03-15 11:19:25 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1544767    

Comment 6 errata-xmlrpc 2018-06-27 23:33:21 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2018:2102

Comment 8 Matthias Runge 2018-07-18 10:36:16 UTC
ovs upstream commit https://github.com/openvswitch/ovs/commit/971f4b394c6e8480300494787fe919869ff3886c

Comment 9 Matthias Runge 2018-08-27 07:08:52 UTC
After being able to test this with the collectd change, I still can not see some of the requested metrics:

For example, I'm getting (and the same via ovs-ofctl -O OpenFlow14 dump-ports br-admin)

Either, we are missing something here, or it has not been implemented?

overcloud-compute-0/ovs_stats-br-admin.br-admin/if_collisions
overcloud-compute-0/ovs_stats-br-admin.br-admin/if_dropped
overcloud-compute-0/ovs_stats-br-admin.br-admin/if_errors
overcloud-compute-0/ovs_stats-br-admin.br-admin/if_packets
overcloud-compute-0/ovs_stats-br-admin.br-admin/if_rx_errors-crc
overcloud-compute-0/ovs_stats-br-admin.br-admin/if_rx_errors-frame
overcloud-compute-0/ovs_stats-br-admin.br-admin/if_rx_errors-over
overcloud-compute-0/ovs_stats-br-admin.br-admin/if_rx_octets
overcloud-compute-0/ovs_stats-br-admin.br-admin/if_tx_octets
overcloud-compute-0/ovs_stats-br-admin.dpdk0/if_dropped
overcloud-compute-0/ovs_stats-br-admin.dpdk0/if_errors
overcloud-compute-0/ovs_stats-br-admin.dpdk0/if_packets
overcloud-compute-0/ovs_stats-br-admin.dpdk0/if_packets-128_to_255_packets
overcloud-compute-0/ovs_stats-br-admin.dpdk0/if_packets-1523_to_max_packets
overcloud-compute-0/ovs_stats-br-admin.dpdk0/if_packets-1_to_64_packets
overcloud-compute-0/ovs_stats-br-admin.dpdk0/if_packets-256_to_511_packets
overcloud-compute-0/ovs_stats-br-admin.dpdk0/if_packets-512_to_1023_packets
overcloud-compute-0/ovs_stats-br-admin.dpdk0/if_packets-65_to_127_packets
overcloud-compute-0/ovs_stats-br-admin.dpdk0/if_packets-broadcast_packets
overcloud-compute-0/ovs_stats-br-admin.dpdk0/if_rx_errors-crc
overcloud-compute-0/ovs_stats-br-admin.dpdk0/if_rx_errors-rx_fragmented_errors
overcloud-compute-0/ovs_stats-br-admin.dpdk0/if_rx_errors-rx_jabber_errors
overcloud-compute-0/ovs_stats-br-admin.dpdk0/if_rx_errors-rx_oversize_errors
overcloud-compute-0/ovs_stats-br-admin.dpdk0/if_rx_errors-rx_undersized_errors
overcloud-compute-0/ovs_stats-br-admin.dpdk0/if_rx_octets
overcloud-compute-0/ovs_stats-br-admin.dpdk0/if_tx_octets
overcloud-compute-0/ovs_stats-br-admin.phy-br-admin/if_packets
overcloud-compute-0/ovs_stats-br-admin.phy-br-admin/if_rx_octets
overcloud-compute-0/ovs_stats-br-admin.phy-br-admin/if_tx_octets

Comment 10 Matteo Croce 2018-10-12 22:05:36 UTC
Hi Matthias,

I made a setup with OVS 2.10 and collectd 5.8.0 with the ovs_stats plugin.
I understand that there is request to collect some statistics, but I've found that many are already present.

These are the requested members

- rx_mbuf_allocation_errors
- rx_undersize_errors
- rx_error_bytes
- rx_good_bytes
- rx_total_bytes
- rx_good_packets
- rx_management_packets
- rx_multicast_packets
- rx_total_missed_packets
- rx_total_packets
- rx_l3_l4_xsum_error
- rx_management_dropped
- tx_good_bytes
- tx_q0_bytes
- tx_broadcast_packets
- tx_good_packets
- tx_management_packets
- tx_total_packets

and these are the already present elements.

# collectdctl listval |grep -o '/.*ovs.*$'
/interface-ovs-netdev/if_dropped
/interface-ovs-netdev/if_errors
/interface-ovs-netdev/if_octets
/interface-ovs-netdev/if_packets
/interface-ovsbr0/if_dropped
/interface-ovsbr0/if_errors
/interface-ovsbr0/if_octets
/interface-ovsbr0/if_packets
/ovs_stats-ovsbr0.guest1/if_dropped
/ovs_stats-ovsbr0.guest1/if_packets
/ovs_stats-ovsbr0.guest1/if_rx_octets
/ovs_stats-ovsbr0.guest1/if_tx_octets
/ovs_stats-ovsbr0.guest2/if_dropped
/ovs_stats-ovsbr0.guest2/if_packets
/ovs_stats-ovsbr0.guest2/if_rx_octets
/ovs_stats-ovsbr0.guest2/if_tx_octets
/ovs_stats-ovsbr0.ovsbr0/if_collisions
/ovs_stats-ovsbr0.ovsbr0/if_dropped
/ovs_stats-ovsbr0.ovsbr0/if_errors
/ovs_stats-ovsbr0.ovsbr0/if_packets
/ovs_stats-ovsbr0.ovsbr0/if_rx_errors-crc
/ovs_stats-ovsbr0.ovsbr0/if_rx_errors-frame
/ovs_stats-ovsbr0.ovsbr0/if_rx_errors-over
/ovs_stats-ovsbr0.ovsbr0/if_rx_octets
/ovs_stats-ovsbr0.ovsbr0/if_tx_octets

some info can be gathered by the generic interface plugin, others are missing and I will try to add them.

Comment 14 Matteo Croce 2018-11-22 21:26:30 UTC
Hi Matthias,

I made a patch based on previous Ryan work, here is the changeset:

https://github.com/teknoraver/collectd/commit/f03bb0453efcad57b80ac415da2d96dc263a96ba

and here there is what now we find in collectd:

# collectdctl listval |grep -o 'ovs_stats-.*' |sort
ovs_stats-ovsbr0.dpdk0/if_dropped
ovs_stats-ovsbr0.dpdk0/if_errors
ovs_stats-ovsbr0.dpdk0/if_packets
ovs_stats-ovsbr0.dpdk0/if_packets-128_to_255_packets
ovs_stats-ovsbr0.dpdk0/if_packets-1_to_64_packets
ovs_stats-ovsbr0.dpdk0/if_packets-256_to_511_packets
ovs_stats-ovsbr0.dpdk0/if_packets-512_to_1023_packets
ovs_stats-ovsbr0.dpdk0/if_packets-65_to_127_packets
ovs_stats-ovsbr0.dpdk0/if_packets-broadcast_packets
ovs_stats-ovsbr0.dpdk0/if_packets-management_packets
ovs_stats-ovsbr0.dpdk0/if_rx_errors-crc
ovs_stats-ovsbr0.dpdk0/if_rx_errors-rx_jabber_errors
ovs_stats-ovsbr0.dpdk0/if_rx_errors-rx_oversize_errors
ovs_stats-ovsbr0.dpdk0/if_rx_errors-rx_undersize_errors
ovs_stats-ovsbr0.dpdk0/if_rx_octets
ovs_stats-ovsbr0.dpdk0/if_tx_octets
ovs_stats-ovsbr0.guest0/if_dropped
ovs_stats-ovsbr0.guest0/if_packets
ovs_stats-ovsbr0.guest0/if_rx_octets
ovs_stats-ovsbr0.guest0/if_tx_octets
ovs_stats-ovsbr0.guest1/if_dropped
ovs_stats-ovsbr0.guest1/if_packets
ovs_stats-ovsbr0.guest1/if_rx_octets
ovs_stats-ovsbr0.guest1/if_tx_octets
ovs_stats-ovsbr0.ovsbr0/if_collisions
ovs_stats-ovsbr0.ovsbr0/if_dropped
ovs_stats-ovsbr0.ovsbr0/if_errors
ovs_stats-ovsbr0.ovsbr0/if_packets
ovs_stats-ovsbr0.ovsbr0/if_rx_errors-crc
ovs_stats-ovsbr0.ovsbr0/if_rx_errors-frame
ovs_stats-ovsbr0.ovsbr0/if_rx_errors-over
ovs_stats-ovsbr0.ovsbr0/if_rx_octets
ovs_stats-ovsbr0.ovsbr0/if_tx_octets


As you can see, the management_packets and rx_undersize_errors were not present before, and they were added in OpenFlow 1.4:

# ovs-ofctl -O OpenFlow13 dump-ports ovsbr0 |grep -e management_packets -e rx_undersize_errors
# ovs-ofctl -O OpenFlow14 dump-ports ovsbr0 |grep -e management_packets -e rx_undersize_errors
                      rx_fragment_errors=0, rx_undersize_errors=0, rx_oversize_errors=0,
                      rx_jabber_errors=0, rx_management_packets=0, rx_management_dropped=0,
                      tx_management_packets=0, rx_mac_short_packet_dropped=0, flow_director_filter_add_errors=0,

If you're ok, I'll send the patch upstream.

Regards,
Matteo

Comment 15 Matthias Runge 2018-11-23 13:27:15 UTC
Matteo,

this is totally awesome. Please go ahead and send the patch upstream.

Best,
Matthias

Comment 17 Matthias Runge 2018-12-04 07:01:26 UTC
Wow, congrats. This was very quick.


I'll look into backporting this. Thanks a lot.

Comment 25 Matteo Croce 2019-03-15 11:19:25 UTC
Closing it, as the corresponding bug 1544767 has been verified