Skip to content

Commit 083b23b

Browse files
committed
Sampling over an interval
1 parent 938b25f commit 083b23b

File tree

3 files changed

+34
-12
lines changed

3 files changed

+34
-12
lines changed

wal_per_query.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,15 @@ def pre_process(text, args):
166166
return text
167167

168168

169+
def output(bpf, fmt="plain"):
170+
if fmt == "plain":
171+
print()
172+
for (k, v) in bpf.get_table('wal_records').items():
173+
query = k.query.decode("ascii", "ignore")
174+
print("[{}:{}] {}: {}".format(
175+
k.pid, k.namespace, query, utils.size(v.value)))
176+
177+
169178
def run(args):
170179
print("Attaching...")
171180
debug = 4 if args.debug else 0
@@ -176,7 +185,10 @@ def run(args):
176185
print("Listening...")
177186
while True:
178187
try:
179-
sleep(1)
188+
sleep(args.interval)
189+
output(bpf)
190+
bpf.get_table('wal_records').clear()
191+
180192
if args.debug:
181193
bpf.perf_buffer_poll()
182194
except KeyboardInterrupt:
@@ -190,10 +202,7 @@ def run(args):
190202
print()
191203
break
192204

193-
for (k, v) in bpf.get_table('wal_records').items():
194-
query = k.query.decode("ascii", "ignore")
195-
print("[{}:{}] {}: {}".format(
196-
k.pid, k.namespace, query, utils.size(v.value)))
205+
output(bpf)
197206

198207

199208
def parse_args():
@@ -207,6 +216,8 @@ def parse_args():
207216
help="trace this container only")
208217
parser.add_argument("-n", "--namespace", type=int,
209218
help="trace this namespace only")
219+
parser.add_argument("-i", "--interval", type=int, default=5,
220+
help="after how many seconds output the result")
210221
parser.add_argument("-d", "--debug", action='store_true', default=False,
211222
help="debug mode")
212223

wal_system.py

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,16 @@ def pre_process(text, args):
130130
return text
131131

132132

133+
def output(bpf, fmt="plain"):
134+
if fmt == "plain":
135+
print()
136+
for (k, v) in bpf.get_table('query_stacks').items():
137+
if stack_from_wal(bpf, k.user_stack_id, k.pid):
138+
print("[{}:{}], {}, len: {}".format(
139+
k.pid, k.namespace, k.name, utils.size(v.value)))
140+
print_stack(bpf, k.user_stack_id, k.pid)
141+
142+
133143
def run(args):
134144
print("Attaching...")
135145
debug = 4 if args.debug else 0
@@ -140,7 +150,10 @@ def run(args):
140150
print("Listening...")
141151
while True:
142152
try:
143-
sleep(1)
153+
sleep(args.interval)
154+
output(bpf)
155+
bpf.get_table('query_stacks').clear()
156+
144157
if args.debug:
145158
bpf.perf_buffer_poll()
146159
except KeyboardInterrupt:
@@ -154,11 +167,7 @@ def run(args):
154167
print()
155168
break
156169

157-
for (k, v) in bpf.get_table('query_stacks').items():
158-
if stack_from_wal(bpf, k.user_stack_id, k.pid):
159-
print("[{}:{}], {}, len: {}".format(
160-
k.pid, k.namespace, k.name, size(v.value)))
161-
print_stack(bpf, k.user_stack_id, k.pid)
170+
output(bpf)
162171

163172

164173
def parse_args():
@@ -172,6 +181,8 @@ def parse_args():
172181
help="trace this container only")
173182
parser.add_argument("-n", "--namespace", type=int,
174183
help="trace this namespace only")
184+
parser.add_argument("-i", "--interval", type=int, default=5,
185+
help="after how many seconds output the result")
175186
parser.add_argument("-d", "--debug", action='store_true', default=False,
176187
help="debug mode")
177188
return parser.parse_args()

write.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ def print_event(cpu, data, size):
191191
category = "{},{}".format(process, action)
192192
data[category] = data.get(category, 0) + v.value
193193

194-
if args.debug
194+
if args.debug:
195195
print("[{}:{}:{}] {}: {}".format(
196196
k.name, k.pid, k.user_stack_id,
197197
event_category(bpf, k.user_stack_id, k.tgid), utils.size(v.value)))

0 commit comments

Comments
 (0)