Decode BIG-IP performance files
Hi everyone, I'm trying to extract the performance data from a QKview, this is to generate way charts and export automatic reports.
I'm running into the problem because the files are encoded in a format that I can't find a way to read them, I'd like to know if some F5 genius can give me a hint of how I can export the performance data from an uncompressed qkview from .tgz
This is an example of the output from a performance file in /shared/tmstat/snapshots/blade0/performance/100/blade0-performance-10-2024-02-06T08_27_20
TMSS ÿÿÿÿÿÿÿÿ 'l name 1 tableid 1 offset 3 size 5 type 7 rule 8 dropped : next ; name 1 rows 5
rowsz 9
cols ; is_sorted =
category @ rr_limit B rr_last F dynamic J first_col O name 1 ctime 9 tree time S slot_id cpu_id user nice system idle iowait ( irq 0 softirq 8 stolen @ ratio H ! five_sec_avg.user P " five_sec_avg.nice X # five_sec_avg.system ` $ five_sec_avg.idle h % five_sec_avg.iowait p & five_sec_avg.irq x ' five_sec_avg.softirq € ( five_sec_avg.stolen ˆ ) five_sec_avg.ratio * one_min_avg.user ˜ + one_min_avg.nice , one_min_avg.system ¨ - one_min_avg.idle ° . one_min_avg.iowait ¸ / one_min_avg.irq À 0 one_min_avg.softirq È 1 one_min_avg.stolen Ð 2 one_min_avg.ratio Ø 3 five_min_avg.user à 4 five_min_avg.nice è 5 five_min_avg.system ð 6 five_min_avg.idle ø 7 five_min_avg.iowait 8 five_min_avg.irq 9 five_min_avg.softirq : five_min_avg.stolen ; five_min_avg.ratio < plane_name ( slot_id > total_ram TMSS ÿÿÿ ÿ 'l +- blade0-performance Tue Feb 6 08:26:10 2024 ‚AÂe | +- hal_sens_tbls Fri Jun 16 04:59:49 2023 ¥@Œd | +- scripts Tue Feb 8 13:55:00 2022 ”Êb | +- vcmp_union_tables Wed Jan 5 10:34:41 2022 ¡ÈÕa | +- mgmt_acld Wed Jan 5 10:33:46 2022 jÈÕa | +- bigd_stat_segment.1 Wed Jan 5 10:33:44 2022 hÈÕa | +- bigd_stat_segment.0 Wed Jan 5 10:33:44 2022 hÈÕa | +- zxfrd Wed Jan 5 10:33:43 2022 gÈÕa | +- tmplugin_cbr Wed Jan 5 10:33:43 2022 gÈÕa | +- profile_xml_stat Wed Jan 5 10:33:43 2022 gÈÕa | +- tmplugin_ntlmconnpool Wed Jan 5 10:33:42 2022 fÈÕa | +- lcdwarnseg Wed Jan 5 10:33:41 2022 eÈÕa | +- lacpd Wed Jan 5 10:33:35 2022 _ÈÕa | +- tmm2 Wed Jan 5 10:33:25 2022 UÈÕa | +- tmm1 Wed Jan 5 10:33:25 2022 UÈÕa | +- tmm3 Wed Jan 5 10:33:25 2022 UÈÕa | +- tmm0 Wed Jan 5 10:33:22 2022 RÈÕa | +- racoon0 Wed Jan 5 10:33:24 2022 TÈÕa | +- tmipsecd Wed Jan 5 10:33:04 2022 @ÈÕa | +- pfmand Wed Jan 5 10:33:02 2022 >ÈÕa | +- logstat Wed Jan 5 10:33:01 2022 =ÈÕa | +- pccd_current_state Wed Jan 5 10:33:01 2022 =ÈÕa | +- pccd_overlap_info Wed Jan 5 10:33:01 2022 =ÈÕa | +- statsd Wed Jan 5 10:32:59 2022 ;ÈÕa | +- cert_order_mgmt Wed Jan 5 10:32:59 2022 ;ÈÕa | +- crl_mgr Wed Jan 5 10:32:59 2022 ;ÈÕa | +- bundle_mgmt Wed Jan 5 10:32:59 2022 ;ÈÕa | +- lldpd Wed Jan 5 10:32:57 2022 9ÈÕa | +- latency Wed Jan 5 10:32:47 2022 /ÈÕa | +- hal_lop_cpld Wed Jan 5 10:32:20 2022 ÈÕa | +- hal Wed Jan 5 10:32:19 2022 ÈÕa
Those files are TMM's idea of resource usage. Remember that TMM is a user space microkernel so it has its own scheduler and memory management. So its idea about "free memory" and "cpu use" is different than the linux kernel's. To read what its statistics are, you can use:
tmctl -a -f <tmstat table file>
This solution article has more information about it:
https://my.f5.com/manage/s/article/K91433389
These files are a binary-only format and the column alignments sometimes change by version so make sure to use matching version tmstat table files and tmctl binary.