summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJanosch Frank <frankja@linux.vnet.ibm.com>2016-01-11 16:18:03 +0100
committerTimothy Pearson <tpearson@raptorengineering.com>2019-11-29 19:29:55 -0600
commit8072b7583490c5ecf01a58e6f8e5c6c0a4459fd6 (patch)
tree771301a7023f4a8d279868088a379d153cf64938
parent643d7ad3aca1f86c91307fe1b3455593e939d640 (diff)
downloadhqemu-8072b7583490c5ecf01a58e6f8e5c6c0a4459fd6.zip
hqemu-8072b7583490c5ecf01a58e6f8e5c6c0a4459fd6.tar.gz
scripts/kvm/kvm_stat: Add interactive filtering
Interactively changing the filter is much more useful than the drilldown, because it is more versatile. With this patch, the filter can be changed by pressing 'f' in the text ui and entering a new filter regex. Signed-off-by: Janosch Frank <frankja@linux.vnet.ibm.com> Message-Id: <1452525484-32309-34-git-send-email-frankja@linux.vnet.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rwxr-xr-xscripts/kvm/kvm_stat24
1 files changed, 24 insertions, 0 deletions
diff --git a/scripts/kvm/kvm_stat b/scripts/kvm/kvm_stat
index eb97a65..25631a4 100755
--- a/scripts/kvm/kvm_stat
+++ b/scripts/kvm/kvm_stat
@@ -634,6 +634,28 @@ class Tui(object):
row += 1
self.screen.refresh()
+ def show_filter_selection(self):
+ while True:
+ self.screen.erase()
+ self.screen.addstr(0, 0,
+ "Show statistics for events matching a regex.",
+ curses.A_BOLD)
+ self.screen.addstr(2, 0,
+ "Current regex: {0}"
+ .format(self.stats.fields_filter))
+ self.screen.addstr(3, 0, "New regex: ")
+ curses.echo()
+ regex = self.screen.getstr()
+ curses.noecho()
+ if len(regex) == 0:
+ return
+ try:
+ re.compile(regex)
+ self.stats.fields_filter = regex
+ return
+ except re.error:
+ continue
+
def show_stats(self):
sleeptime = 0.25
while True:
@@ -647,6 +669,8 @@ class Tui(object):
self.update_drilldown()
if char == 'q':
break
+ if char == 'f':
+ self.show_filter_selection()
except KeyboardInterrupt:
break
except curses.error:
OpenPOWER on IntegriCloud