OVN metrics¶
OVN-Kubernetes collects metrics from ovn-controller, ovn-northd, and the OVN northbound and southbound databases. Only the coverage/show and stopwatch/show` entries selected by OVN-Kubernetes, along with separately collected database, build, status, connection, and configuration metrics, are exported.
Coverage values are represented as Prometheus gauges, although the underlying OVN events are cumulative. Stopwatch duration statistics are gauges expressed in seconds; only total_samples is a count. A failed collection can leave the previous value in place. An event that has never occurred is reported as zero.
OVN Database Metrics¶
The db_name label is the database schema name, such as OVN_Northbound or OVN_Southbound. The database size family is registered only when the database files can be found.
All metrics in this section are rooted at ovn_db_.
| Name | Type | Labels | Description |
|---|---|---|---|
build_info | Gauge | version, nb_schema_version, sb_schema_version | ovsdb-server and OVN schema version information. The value is always 1. |
jsonrpc_server_sessions | Gauge | db_name | Active JSON-RPC server sessions. |
ovsdb_monitors | Gauge | db_name | OVSDB monitors running on the server. |
db_size_bytes | Gauge | db_name | Size of the database file. |
e2e_timestamp | Gauge | db_name | Unix timestamp observed in each database for the end-to-end freshness check. |
OVN Controller Metrics¶
All metrics in this section are rooted at ovn_controller_.
Build, Status, and Configuration¶
| Name | Type | Labels | Description |
|---|---|---|---|
build_info | Gauge | version, ovs_lib_version | OVN and Open vSwitch library version information. The value is always 1. |
southbound_database_connected | Gauge | None | Whether ovn-controller is connected to the southbound database: 1 for connected and 0 otherwise. |
remote_probe_interval_seconds | Gauge | None | Inactivity probe interval for the southbound database connection. |
openflow_probe_interval_seconds | Gauge | None | Inactivity probe interval for the integration bridge OpenFlow connection. |
monitor_all | Gauge | None | Whether ovn-controller monitors all southbound records: 1 for true and 0 for false. |
encap_ip | Gauge | ipaddress | Configured encapsulation IP. The active label set has value 1. |
encap_type | Gauge | type | Configured encapsulation type. The active label set has value 1. |
sb_connection_method | Gauge | connection_method | Configured southbound connection method. The active label set has value 1. |
bridge_mappings | Gauge | mapping | Configured physical-network-to-bridge mappings. The active label set has value 1. |
integration_bridge_openflow_total | Gauge | None | Point-in-time number of OpenFlow flows on the integration bridge. Despite the _total suffix, this is not a counter. |
integration_bridge_patch_ports | Gauge | None | Patch ports connecting the integration bridge to physical or local bridges. |
integration_bridge_geneve_ports | Gauge | None | Geneve ports on the integration bridge. |
The ovnkube_controller_udn_nbdb_programmed_duration_seconds histogram is documented with the other ovnkube-controller metrics.
Coverage Metrics¶
| Name | Type | Description |
|---|---|---|
lflow_run | Gauge | Logical-flow translation runs. |
rconn_sent | Gauge | Messages sent on reliable OpenFlow connections. |
rconn_queued | Gauge | Messages queued on reliable OpenFlow connections. |
rconn_discarded | Gauge | Queued messages discarded during reconnection. |
rconn_overflow | Gauge | Messages dropped because the reliable connection queue overflowed. |
vconn_open | Gauge | Attempts to connect to an OpenFlow device. |
vconn_sent | Gauge | Messages sent to OpenFlow devices. |
vconn_received | Gauge | Messages received from OpenFlow devices. |
stream_open | Gauge | Attempts to connect to a remote peer. |
txn_success | Gauge | Successful OVSDB transactions. |
txn_error | Gauge | OVSDB transaction errors. |
txn_uncommitted | Gauge | Uncommitted OVSDB transactions. |
txn_unchanged | Gauge | OVSDB transactions that made no database change. |
txn_incomplete | Gauge | Incomplete OVSDB transactions that required retry. |
txn_aborted | Gauge | Aborted OVSDB transactions. |
txn_try_again | Gauge | OVSDB transactions that failed and requested retry. |
netlink_sent | Gauge | Netlink messages sent to the kernel. |
netlink_received | Gauge | Netlink messages received from the kernel. |
netlink_recv_jumbo | Gauge | Netlink messages larger than the allocated receive buffer. |
netlink_overflow | Gauge | Netlink messages dropped because the daemon buffer overflowed. |
packet_in | Gauge | Packet-ins handled from ovs-vswitchd. |
packet_in_drop | Gauge | Packet-ins dropped because of resource constraints. This aggregates selected pinctrl drop events. |
Stopwatch Metrics¶
For every base name below, OVN-Kubernetes exports these six gauge families:
<base>_total_samples<base>_maximum<base>_minimum<base>_95th_percentile<base>_short_term_avg<base>_long_term_avg
total_samples is a sample count. The other five values are durations in seconds.
| Base name | Measured operation |
|---|---|
bfd_run | BFD processing loop |
flow_installation | Flow installation |
if_status_mgr_run | Interface status manager run loop |
if_status_mgr_update | Interface status manager update |
flow_generation | Flow generation |
pinctrl_run | Pin controller run loop |
ofctrl_seqno_run | OpenFlow controller sequence-number run loop |
patch_run | Patch-port processing loop |
ct_zone_commit | Connection-tracking zone commit |
OVN Northd Metrics¶
All metrics in this section are rooted at ovn_northd_.
Build and Status¶
Status and connection metrics use -1 when the value cannot be collected or parsed.
| Name | Type | Labels | Description |
|---|---|---|---|
build_info | Gauge | version, ovs_lib_version | OVN and Open vSwitch library version information. The value is always 1. |
status | Gauge | None | Instance status: 0 standby, 1 active, 2 paused, and -1 unknown. |
nb_connection_status | Gauge | None | Northbound connection: 0 disconnected, 1 connected, and -1 unknown. |
sb_connection_status | Gauge | None | Southbound connection: 0 disconnected, 1 connected, and -1 unknown. |
northd_probe_interval | Gauge | None | Maximum idle time, in milliseconds, before an inactivity probe is sent to the OVN databases. |
Coverage Metrics¶
| Name | Type | Description |
|---|---|---|
pstream_open | Gauge | Passive connections opened for remote peers. |
stream_open | Gauge | Attempts to connect to a remote peer. |
txn_success | Gauge | Successful OVSDB transactions. |
txn_error | Gauge | OVSDB transaction errors. |
txn_uncommitted | Gauge | Uncommitted OVSDB transactions. |
txn_unchanged | Gauge | OVSDB transactions that made no database change. |
txn_incomplete | Gauge | Incomplete OVSDB transactions that required retry. |
txn_aborted | Gauge | Aborted OVSDB transactions. |
txn_try_again | Gauge | OVSDB transactions that failed and requested retry. |
Stopwatch Metrics¶
For every base name below, OVN-Kubernetes exports these six gauge families:
<base>_total_samples<base>_maximum<base>_minimum<base>_95th_percentile<base>_short_term_avg<base>_long_term_avg
total_samples is a sample count. The other five values are durations in seconds.
| Base name | Measured operation |
|---|---|
ovnnb_db_run | Northbound database processing |
build_flows_ctx | Flow-build context processing |
ovn_northd_loop | Main ovn-northd loop |
build_lflows | Logical-flow construction |
lflows_lbs | Load-balancer logical-flow processing |
clear_lflows_ctx | Logical-flow context cleanup |
lflows_ports | Port logical-flow processing |
lflows_dp_groups | Datapath-group logical-flow processing |
lflows_datapaths | Datapath logical-flow processing |
lflows_igmp | IGMP logical-flow processing |
ovnsb_db_run | Southbound database processing |