Skip to content

Commit

Permalink
feat(gazer): Added support for ClusterIPs
Browse files Browse the repository at this point in the history
  • Loading branch information
isala404 committed Feb 15, 2022
1 parent 55fb9fa commit 81e98e7
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 58 deletions.
3 changes: 2 additions & 1 deletion gazer/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ def __init__(self, **kargs):
def read_config(self):
with open(r'config/config.yaml') as file:
self.config = yaml.load(file, Loader=yaml.FullLoader)
self.config = dict(filter(lambda elem: elem[1]['node'] == NODE_NAME, self.config.items()))
self.config = dict(filter(lambda elem: elem[1]['isService'] or elem[1]['node'] == NODE_NAME,
self.config.items()))

def process_IN_CLOSE_WRITE(self, evt):
self.read_config()
Expand Down
12 changes: 0 additions & 12 deletions gazer/config/config.yaml

This file was deleted.

2 changes: 1 addition & 1 deletion gazer/console.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ def draw_menu(stdscr: curses.window):
k = stdscr.getch()


gazer = Gazer(console=True)
gazer = Gazer(console_mode=True)
gazer.poll_data_in_bg()

curses.wrapper(draw_menu)
65 changes: 23 additions & 42 deletions gazer/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@ kind: Namespace
metadata:
name: lazy-koala
---
apiVersion: v1
kind: ConfigMap
metadata:
name: gazer-config
namespace: lazy-koala
data:
config.yaml: |
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
Expand All @@ -19,7 +27,7 @@ spec:
labels:
name: gazer
annotations:
lazy-koala/scrape: 'true'
lazy-koala/scrape: "true"
spec:
containers:
- name: gazer
Expand Down Expand Up @@ -80,7 +88,7 @@ spec:
securityContext:
privileged: true
capabilities:
add: [ "SYS_ADMIN" ]
add: ["SYS_ADMIN"]
volumeMounts:
- name: lsb-release
mountPath: /etc/lsb-release.host
Expand Down Expand Up @@ -143,18 +151,19 @@ spec:
spec:
serviceAccountName: lazy-koala
containers:
- name: prometheus
image: prom/prometheus:v2.33.1
ports:
- containerPort: 9090
name: default
volumeMounts:
- name: config-volume
mountPath: /etc/prometheus
- name: prometheus
image: prom/prometheus:v2.33.1
ports:
- containerPort: 9090
name: default
volumeMounts:
- name: config-volume
mountPath: /etc/prometheus
nodeName: minikube
volumes:
- name: config-volume
configMap:
name: prometheus-config
- name: config-volume
configMap:
name: prometheus-config
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
Expand All @@ -167,7 +176,7 @@ rules:
- nodes/metrics
verbs:
- get
- apiGroups: [ "" ]
- apiGroups: [""]
resources:
- nodes
- services
Expand Down Expand Up @@ -240,31 +249,3 @@ data:
action: keep
- source_labels: [__meta_kubernetes_pod_container_name]
target_label: gazer
---
apiVersion: v1
kind: ConfigMap
metadata:
name: gazer-config
namespace: lazy-koala
data:
config.yaml: |
10.244.1.15:
name: service-1-0de9ab8e-65bc59564d-f7rhp
serviceName: service-1
namespace: default
node: minikube-m02
10.244.1.14:
name: service-2-0de9ab8e-6fff4f8956-r9qlt
serviceName: service-2
namespace: default
node: minikube-m02
10.244.1.16:
name: service-3-0de9ab8e-75cc987cdc-ltcvr
serviceName: service-3
namespace: default
node: minikube-m02
10.244.1.17:
name: service-4-0de9ab8e-79d69d9c99-vlpdv
serviceName: service-4
namespace: default
node: minikube-m02
9 changes: 7 additions & 2 deletions gazer/gazer.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@

ms = Histogram("request_duration_seconds", "TCP event latency", ["namespace", "serviceName", "podName"])
tx_kb = Histogram("transmitted_bytes", "Number of sent bytes during TCP event", ["namespace", "serviceName", "podName"])
rx_kb = Histogram("acknowledged_bytes", "Number of received bytes during TCP event", ["namespace", "serviceName", "podName"])
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"])
backlog = Gauge("backlog", "Request backlog", ["namespace", "serviceName", "podName", "level"])
Expand Down Expand Up @@ -68,14 +69,15 @@ def ipv4_request_event(self, cpu, data, size):
# Write to prometheus
if event['LADDR'] in config_watcher.config:
pod = config_watcher.config[event['LADDR']]

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']).inc()
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)
Expand All @@ -88,6 +90,8 @@ def poll_requests(self):
def poll_kube_api(self):
for pod in config_watcher.config.values():
try:
if pod['isService']:
continue
cpu_usage = 0
memory_usage = 0
r = requests.get(
Expand Down Expand Up @@ -115,6 +119,7 @@ def poll_syn_backlog(self):
# Write to prometheus
if saddr in config_watcher.config:
pod = config_watcher.config[saddr]

backlog.labels(pod['namespace'], pod['serviceName'], pod['name'], row[0].slot).set(row[1].value)

if self.console_mode:
Expand Down

0 comments on commit 81e98e7

Please sign in to comment.