#! /usr/bin/env stap # # This script continuously lists the top 20 systemcalls in the interval # 5 seconds # global syscalls_count probe syscall_any { syscalls_count[name] <<< 1 } function print_systop () { printf ("%25s %10s\n", "SYSCALL", "COUNT") foreach (syscall in syscalls_count- limit 20) { printf("%25s %10d\n", syscall, @count(syscalls_count[syscall])) } delete syscalls_count } probe timer.s(5) { print_systop () printf("--------------------------------------------------------------\n") } global prom_arr probe prometheus { foreach (syscall in syscalls_count- limit 20) prom_arr[syscall] = @count(syscalls_count[syscall]) @prometheus_dump_array1(prom_arr, "top_syscall_count", "name") delete prom_arr }