Sindbad~EG File Manager
#!/usr/bin/stap
#
# Copyright (C) 2010, 2018 Red Hat, Inc.
# By Dominic Duval, Red Hat Inc.
# dduval@redhat.com
#
# Monitors errors returned by system calls.
#
# USAGE: stap errno.stp
#
global execname, errors
probe syscall_any.return {
errno = retval
if ( errno < 0 ) {
p = pid()
execname[p]=execname();
errors[p, errno, name] <<< 1
}
}
probe end {
printf("\n")
printf("%8s %-32s %-16s %-12s %8s\n",
"PID", "Syscall", "Process", "Error", "Count")
foreach ([pid, error, thissyscall] in errors- limit 20) {
printf("%8d %-32s %-16s %-12s %8d\n",
pid,
thissyscall,
execname[pid],
error ? errno_str(error) : "",
@count(errors[pid, error, thissyscall])
)
}
}
global prom_arr
probe prometheus {
foreach ([p, errno, name] in errors- limit 20) {
prom_arr[p, errno, name] = @count(errors[p, errno, name])
}
@prometheus_dump_array3(prom_arr, "syscall_error_count", "pid", "errno", "name")
delete prom_arr
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists