Releases: Liquescent-Development/ovs_exporter
Release v2.3.1
What's Changed
New Features
- Add total requests counter metric (
ovs_requests_total) for accurate success rate calculation- Tracks all requests made to the OVS stack
- Enables accurate calculation of request success rates
- Previously only failed requests were tracked, making true success rate impossible to determine
Improvements
- Updated Grafana dashboards to use accurate success rate formula:
(1 - (failed_requests / total_requests)) * 100 - Enhanced metrics documentation with new metric and example queries
- Added
IncrementRequestCounter()method to track total requests across all OVS operations
Metrics
New metric added:
ovs_requests_total- Counter for total number of requests to OVN stack
Example Usage
# Calculate request success rate
(1 - (rate(ovs_failed_requests_total[5m]) / rate(ovs_requests_total[5m]))) * 100
Full Changelog
Release v2.3.0
What's Changed
Major Improvements
-
Prometheus Naming Compliance: All metrics now follow official Prometheus naming conventions
- Added
_totalsuffix to all counter metrics - Added unit suffixes (
_bytes,_seconds,_kilobits, etc.) - Changed percentage metrics to ratios (0-1 scale)
- Improved naming clarity throughout
- Added
-
System ID Auto-Discovery: The exporter now retrieves system-id from the OVS database first
- No more need for
/etc/openvswitch/system-id.confon newer OVS versions - Automatically falls back to file for older versions
- Uses
ovs-vsctl get Open_vSwitch . external-ids:system-id
- No more need for
-
Documentation Overhaul
- New comprehensive METRICS.md documenting all 100+ metrics
- Completely rewritten README with correct installation instructions
- Added extensive multi-tenant monitoring examples
- Included troubleshooting guide
Multi-Tenant Monitoring
The README now includes detailed examples of using Prometheus joins with external_ids for tenant-based aggregation, avoiding cardinality issues while enabling powerful multi-tenant queries.
Breaking Changes
Full Changelog
- refactor: update metrics to conform to Prometheus naming best practices
- feat: retrieve system-id from OVS database before falling back to file
- docs: consolidate metrics documentation into comprehensive METRICS.md
- feat: add comprehensive flow cache performance metrics
- feat: implement comprehensive PMD metrics collection
Installation
Download the appropriate release for your architecture:
Linux AMD64
```bash
wget https://github.com/Liquescent-Development/ovs_exporter/releases/download/v2.3.0/ovs-exporter-2.3.0.linux-amd64.tar.gz
tar xvzf ovs-exporter-2.3.0.linux-amd64.tar.gz
cd ovs-exporter-*
sudo ./install.sh
```
Linux ARM64
```bash
wget https://github.com/Liquescent-Development/ovs_exporter/releases/download/v2.3.0/ovs-exporter-2.3.0.linux-arm64.tar.gz
tar xvzf ovs-exporter-2.3.0.linux-arm64.tar.gz
cd ovs-exporter-*
sudo ./install.sh
```
Verification
```bash
systemctl status ovs-exporter
curl -s localhost:9475/metrics | grep ovs_up
```
v2.2.0 - Complete PMD and Flow Cache Metrics
🎉 Complete Feature Implementation
This release completes the implementation of ALL metrics from the Red Hat OVS observability blog post.
✅ PMD Performance Metrics
- CPU Metrics: Per-PMD thread CPU utilization, busy/idle cycles
- Packet Processing: Packets per iteration, total packets processed
- RX/TX Batch Statistics: Complete batch size tracking with averages and maximums
- Iteration Tracking: Busy vs idle iterations, sleep iterations
- Cache Hit Rates: Exact match, masked hits, misses per PMD thread
✅ Flow Cache Performance
- EMC (Exact Match Cache): Hit rate, total hits, insertions
- SMC (Signature Match Cache): Hit rate, total hits
- Megaflow Cache: Hit rate, hits, misses
- Total Flow Lookups: Comprehensive lookup tracking
✅ Detailed Drop Statistics
- All 24 specific drop counter categories
- Individual metrics via
ovs_datapath_drops_totalwithdrop_reasonlabel - Includes critical counters like
drop_action_of_pipeline
🐛 Bug Fixes
- Fixed missing PMD metrics in Prometheus Describe() method
- Added proper metric registration for all new metrics
📊 New Metrics Summary
- 9 new flow cache performance metrics
- 24 individual drop counter metrics
- Enhanced PMD metrics with complete coverage
- All metrics properly exposed to Prometheus
📚 Documentation
- Updated PMD_METRICS.md with all new metrics
- Added example Prometheus queries for flow cache monitoring
- Comprehensive metric descriptions and labels
🔧 Compatibility
- Go 1.24 support
- Multi-architecture binaries (AMD64 and ARM64)
- Compatible with DPDK and non-DPDK OVS deployments
v2.1.0 - Enhanced PMD Metrics
What's New
Enhanced PMD/DPDK Metrics
- Comprehensive PMD performance metrics collection
- CPU utilization tracking for PMD threads
- RX/TX batch statistics with averages and maximums
- Individual drop counter metrics (24 specific drop reasons)
- vHost queue metrics and TX statistics
- Flow lookup hit/miss statistics
- Suspicious iteration detection
- Fallback mechanisms for non-DPDK deployments
Features
- All metrics from Red Hat's OVS observability blog post
- Automatic detection of DPDK vs non-DPDK deployments
- Enhanced parsing for complete metric extraction
- Detailed drop categorization via coverage metrics
Documentation
- Comprehensive PMD metrics documentation in PMD_METRICS.md
- Example queries and Grafana dashboard suggestions
- Troubleshooting guide for PMD metric collection
Compatibility
- Go 1.24 support
- Updated Prometheus client libraries
- Multi-architecture support (AMD64 and ARM64)
v2.0.0 - Major Upgrade with PMD Metrics
Major Improvements
- Go 1.24 - Modernized from Go 1.20
- PMD/DPDK Metrics - Comprehensive performance metrics for DPDK deployments
- Security Updates - All dependencies updated with vulnerability fixes
- Enhanced Coverage - All metrics from Red Hat's OVS observability blog
New Metrics
- PMD performance metrics (cycles, packets, batches)
- vHost statistics (TX retries, contention, IRQs)
- Upcall metrics
- See PMD_METRICS.md for full documentation
Breaking Changes
- Module path changed to
github.com/Liquescent-Development/ovs_exporter - Minimum Go version is now 1.24
Migration
See MIGRATION.md for upgrade instructions from v1.x