[ovs-dev] [PATCH] ovsdb-idl: Get per-database memory usage statistics.
Dumitru Ceara
dceara at redhat.com
Tue Nov 30 09:47:57 UTC 2021
Clients might be connected to multiple databases (e.g., ovn-controller
is connected to OVN_Southbound and Open_vSwitch databases) and the IDL
memory statistics are more useful if they're not aggregated.
Signed-off-by: Dumitru Ceara <dceara at redhat.com>
---
lib/ovsdb-idl.c | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/lib/ovsdb-idl.c b/lib/ovsdb-idl.c
index a6323d2b8b9a..26b5aae36a92 100644
--- a/lib/ovsdb-idl.c
+++ b/lib/ovsdb-idl.c
@@ -498,9 +498,20 @@ ovsdb_idl_get_memory_usage(struct ovsdb_idl *idl, struct simap *usage)
cells += n_rows * n_columns;
}
- simap_increase(usage, "idl-cells", cells);
- simap_increase(usage, "idl-outstanding-txns",
- hmap_count(&idl->outstanding_txns));
+ struct {
+ const char *name;
+ unsigned int val;
+ } idl_mem_stats[] = {
+ {"idl-outstanding-txns", hmap_count(&idl->outstanding_txns)},
+ {"idl-cells", cells},
+ };
+
+ for (size_t i = 0; i < ARRAY_SIZE(idl_mem_stats); i++) {
+ char *stat_name = xasprintf("%s-%s", idl->class_->database,
+ idl_mem_stats[i].name);
+ simap_increase(usage, stat_name, idl_mem_stats[i].val);
+ free(stat_name);
+ }
}
/* Returns a "sequence number" that represents the state of 'idl'. When
--
2.27.0
More information about the dev
mailing list