From 93d0cab65811045a0ae710810c9ac6990c57970e Mon Sep 17 00:00:00 2001 From: Isala Piyarisi Date: Wed, 16 Feb 2022 20:31:17 +0530 Subject: [PATCH] fix(gazer): Excluded TCP responses --- gazer/build.sh | 8 ++++++++ gazer/config.py | 5 ++++- gazer/console.py | 4 ++-- gazer/gazer.py | 16 +++++++++------- 4 files changed, 23 insertions(+), 10 deletions(-) create mode 100644 gazer/build.sh diff --git a/gazer/build.sh b/gazer/build.sh new file mode 100644 index 0000000..1580976 --- /dev/null +++ b/gazer/build.sh @@ -0,0 +1,8 @@ +TAG=$(date +%s) + +docker build . -t ghcr.io/mrsupiri/lazy-koala/gazer:$TAG +minikube image load ghcr.io/mrsupiri/lazy-koala/gazer:$TAG +kubectl set image daemonsets.apps gazer gazer=ghcr.io/mrsupiri/lazy-koala/gazer:$TAG -n lazy-koala +kubectl scale --replicas 0 deployment prometheus -n lazy-koala +sleep 1 +kubectl scale --replicas 1 deployment prometheus -n lazy-koala \ No newline at end of file diff --git a/gazer/config.py b/gazer/config.py index 19f74fc..9fdc866 100644 --- a/gazer/config.py +++ b/gazer/config.py @@ -19,7 +19,9 @@ def read_config(self): self.config = yaml.load(file, Loader=yaml.FullLoader) self.config = dict(filter(lambda elem: elem[1]['isService'] or elem[1]['node'] == NODE_NAME, self.config.items())) - except: + print("Config Updated:", self.config) + except Exception as e: + print("Error while updating config:", e) self.config = None def process_IN_CLOSE_WRITE(self, evt): @@ -33,3 +35,4 @@ def process_IN_CLOSE_WRITE(self, evt): config_watcher_thread = threading.Thread(target=notifier.loop, args=()) config_watcher_thread.daemon = True config_watcher_thread.start() +print("Started Gazing on", NODE_NAME) diff --git a/gazer/console.py b/gazer/console.py index d7c3069..3badac2 100644 --- a/gazer/console.py +++ b/gazer/console.py @@ -45,8 +45,8 @@ def draw_menu(stdscr: curses.window): statusbarstr = "Press 'q' to exit | STATUS BAR | Pos: {}, {}".format(cursor_x, cursor_y) stdscr.addstr(0, 0, "Requests", curses.color_pair(1)) - stdscr.addstr(2, 0, "f\n"*25, curses.color_pair(1)) - stdscr.addstr(28, 0, gazer.syn_backlog_text(), curses.color_pair(1)) + stdscr.addstr(2, 0, gazer.request_log_text(), curses.color_pair(1)) + stdscr.addstr(15, 0, gazer.syn_backlog_text(), curses.color_pair(1)) # Render status bar stdscr.attron(curses.color_pair(3)) diff --git a/gazer/gazer.py b/gazer/gazer.py index edd1fdf..5b972a7 100644 --- a/gazer/gazer.py +++ b/gazer/gazer.py @@ -15,7 +15,7 @@ rx_kb = Histogram("acknowledged_bytes", "Number of received bytes during TCP event", ["namespace", "serviceName", "podName"]) request_sent = Counter("requests_sent", "Total request sent", ["namespace", "serviceName", "podName"]) -request_received = Counter("request_received", "Total request received", ["namespace", "serviceName", "podName"]) +request_received = Counter("requests_received", "Total request received", ["namespace", "serviceName", "podName"]) backlog = Gauge("backlog", "Request backlog", ["namespace", "serviceName", "podName", "level"]) cpu = Gauge("cpu_seconds", "CPU usage", ["namespace", "serviceName", "podName"]) memory = Gauge("memory_usage_bytes", "Memory usage", ["namespace", "serviceName", "podName"]) @@ -70,18 +70,20 @@ def ipv4_request_event(self, cpu, data, size): if event['LADDR'] in config_watcher.config: pod = config_watcher.config[event['LADDR']] + if event['RADDR'] in config_watcher.config: + rpod = config_watcher.config[event['RADDR']] + if not rpod['isService']: + return + request_received.labels(rpod['namespace'], rpod['serviceName'], rpod['name']).inc() + ms.labels(pod['namespace'], pod['serviceName'], pod['name']).observe(event['MS'] / 1000000) tx_kb.labels(pod['namespace'], pod['serviceName'], pod['name']).observe(event['TX_KB']) rx_kb.labels(pod['namespace'], pod['serviceName'], pod['name']).observe(event['RX_KB']) request_sent.labels(pod['namespace'], pod['serviceName'], pod['name']).inc() - if event['RADDR'] in config_watcher.config: - rpod = config_watcher.config[event['RADDR']] - request_received.labels(rpod['namespace'], rpod['serviceName'], pod['name']).inc() - if self.console_mode: self.request_df = self.request_df.append(event, ignore_index=True) - self.request_df = self.request_df[-25:] + self.request_df = self.request_df[-10:] def poll_requests(self): while True: @@ -159,7 +161,7 @@ def syn_backlog_text(self): def request_log_text(self): if self.request_df.empty: return "" - return self.request_df.tail(25).__str__() + return self.request_df.tail(10).__str__() def poll_data_in_bg(self): poll_syn_backlog = threading.Thread(target=self.poll_syn_backlog, args=())