performancecopilot / pcp

Performance Co-Pilot
https://pcp.io
Other
963 stars 235 forks source link

iostat2pcp does not work with systat/iostat version 12.2.0 #945

Open kmcdonell opened 4 years ago

kmcdonell commented 4 years ago

The iostat on Ubuntu 20.04 is 12.2.0 and iostat -v produces output that starts like this: Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz aqu-sz %util loop0 0.00 0.00 0.00 0.00 5.90 6.93 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

and iostat2pcp chokes (in qa/975) with [33] loop0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Device: (new -x format) number of values? expected 23, found 21

goodwinos commented 4 years ago

As of Sysstat 12.0.5 released (stable version) [...] This version completes the support for PCP output format with sadf: All statistics collected by sar/sadc can now be exported to a PCP archive file. Doesn't help for platforms using sysstat prior to v12.0.5 though ...

So perhaps we could consider deprecating pcp2iostat and just use pmrep :iostat or pcp-iostat? (assumming the archives written by sadc have sufficient metrics coverage)?

goodwinos commented 4 years ago

hmmm .. on recent Fedora

$ sadf -l -O pcparchive=sysstat_test
PCP support not compiled in
$ rpm -q sysstat
sysstat-12.3.1-1.fc31.x86_64
kmcdonell commented 4 years ago

I don't really care one way or the other. If iostat2pcp is not warranted for versions of systat at or beyond x.y.z (sounds like 12.0.5 == x.y.z), then I can easily make qa/975 _notrun as appropriate. Just let me know what x.y.z is. Of course I think iostat2pcp should share the same logic and not try to run if the systat version is not something known to work (and 12.2.0 for one is clearly not working). But be warned that iostat2pcp is written in Python, so I'm not making any changes there (it is a religious issue).

natoscott commented 4 years ago

[...] Of course I think iostat2pcp should share the same logic and not try to run if the systat version is not something known to work (and 12.2.0 for one is clearly not working). But be warned that iostat2pcp is written in Python, so I'm not making any changes there (it is a religious issue).

head -1 src/iostat2pcp/iostat2pcp
#!/usr/bin/env perl
goodwinos commented 4 years ago

"PCP support not compiled in" means we can't make use of it (but I've only checked Fedora). I'll check up on how it's implemented and what the builddeps are - I would assume and hope LOGIMPORT(3) is used and there are enough metrics to run pcp iostat or pmrep :iostat, etc.