Skip to content

Instantly share code, notes, and snippets.

@s5unty
Last active May 5, 2020 01:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save s5unty/fc39e92efabac15c41a8c94724cf1039 to your computer and use it in GitHub Desktop.
Save s5unty/fc39e92efabac15c41a8c94724cf1039 to your computer and use it in GitHub Desktop.
parse the mfscli output and write the metrics
# usage:
# $ mfscli -np -SIM -SIG | mtail -one_shot -progs mfs.mtail -logs -
# OR
# $ mtail -progs mfs.mtail -logs mfscli.log
# $ mfscli -np -SIM -SIG > mfscli.log
#
# -SIM {{{
text metadata_servers_state by ip, version
gauge metadata_servers_cpu_all by ip, version
gauge metadata_servers_cpu_sys by ip, version
gauge metadata_servers_cpu_user by ip, version
gauge metadata_servers_last_meta_save by ip, version
gauge metadata_servers_last_save_durateion by ip, version
/^/ +
/metadata servers:\t/ +
/(?P<ip>\d+\.\d+\.\d+\.\d+)\t/ + #
/(?P<version>[^\t]+)\t/ + #
/(?P<state>[^\t]+)\t/ + #
/(?P<ltime>[^\t]+)\t/ + #
/(?P<metadata_version>[^\t]+)\t/ + #
/(?P<metadata_delay>[^\t]+)\t/ + #
/(?P<ram_used>\d+)\t/ + #
/all:(?P<cpu_all>[^%]+)% / + #
/sys:(?P<cpu_sys>[^%]+)% / + #
/user:(?P<cpu_user>[^%]+)%\t/ + #
/(?P<last_meta_save>[^\t]+)\t/ + #
/(?P<last_save_duration>[^\t]+)\t/ + #
/(?P<last_save_status>[^\t]+)\t/ + #
/(?P<export_checksum>[^\t]+)/ + #
/$/ {
metadata_servers_state[$ip][$version] = $state
metadata_servers_cpu_all[$ip][$version] = $cpu_all
metadata_servers_cpu_sys[$ip][$version] = $cpu_sys
metadata_servers_cpu_user[$ip][$version] = $cpu_user
metadata_servers_last_meta_save[$ip][$version] = $last_meta_save
metadata_servers_last_save_durateion[$ip][$version] = $last_save_duration
}
# }}}
# -SIG {{{
gauge master_info_ram_used
gauge master_info_cpu_used_system
gauge master_info_cpu_used_user
gauge master_info_total_space
gauge master_info_avail_space
gauge master_info_free_space
gauge master_info_trash_space
gauge master_info_trash_files
gauge master_info_sustained_space
gauge master_info_sustained_files
gauge master_info_all_fs_objects
gauge master_info_directories
gauge master_info_files
gauge master_info_chunks
gauge master_info_all_chunk_copies
gauge master_info_regular_chunk_copies
gauge master_info_last_successful_store
gauge master_info_last_save_duration
/^/ +
/master info:\t/ {
/RAM used\t(\d+$)/ {
master_info_ram_used = $1
}
/CPU used \(system\)\t(.+$)/ {
master_info_cpu_used_system = $1
}
/CPU used \(user\)\t(.+$)/ {
master_info_cpu_used_user = $1
}
/total space\t(.+$)/ {
master_info_total_space = $1
}
/avail space\t(.+$)/ {
master_info_avail_space = $1
}
/free space\t(.+$)/ {
master_info_free_space = $1
}
/trash space\t(.+$)/ {
master_info_trash_space = $1
}
/trash files\t(.+$)/ {
master_info_trash_files = $1
}
/sustained space\t(.+$)/ {
master_info_sustained_space = $1
}
/sustained files\t(.+$)/ {
master_info_sustained_files = $1
}
/all fs objects\t(.+$)/ {
master_info_all_fs_objects = $1
}
/directories\t(.+$)/ {
master_info_directories = $1
}
/files\t(.+$)/ {
master_info_files = $1
}
/chunks\t(.+$)/ {
master_info_chunks = $1
}
/all chunk copies\t(.+$)/ {
master_info_all_chunk_copies = $1
}
/regular chunk copies\t(.+$)/ {
master_info_regular_chunk_copies = $1
}
/last successful store\t(.+$)/ {
master_info_last_successful_store = $1
}
/last save duration\t(.+$)/ {
master_info_last_save_duration = $1
}
}
# }}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment