Mohamad Ibrahim
Mohamad Ibrahim

Reputation: 5555

Read and parse perf.data

I am recording a performance counters frm linux using the command perf record.

I want to use the result perf.data as an input to other programming apps. Do you know how shall I read and parse the data in perf.data? Is there a way to transform it to .text file or .csv?

Upvotes: 14

Views: 16630

Answers (4)

mhansen
mhansen

Reputation: 1141

perf data convert --to-json landed in April.

https://man7.org/linux/man-pages/man1/perf-data.1.html

Upvotes: 4

mhansen
mhansen

Reputation: 1141

The quipper sub-project of https://github.com/google/perf_data_converter can parse perf.data files.

Upvotes: 1

osgx
osgx

Reputation: 94225

There is builtin perf.data parser and printer in perf tool of linux tools with subcommand "script".

To convert perf.data file

perf script > perf.data.txt

To convert output of perf record in other file (perf record -o filename.data) use -i option:

perf script -i filename.data > filename.data.txt

perf script is documented at man perf-script, available online at http://man7.org/linux/man-pages/man1/perf-script.1.html

   perf-script - Read perf.data (created by perf record) and display
   trace output

   This command reads the input file and displays the trace recorded.

       'perf script' to see a detailed trace of the workload that was
       recorded.

Upvotes: 7

Yannick
Yannick

Reputation: 3584

An example command definition that redirects service check performance data to a text file for later processing by another application is shown below:

define command{

    command_name    store-service-perfdata

    command_line    /bin/echo -e "$LASTSERVICECHECK$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICESTATE$\t$SERVICEATTEMPT$\t$SERVICESTATETYPE$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$" >> /usr/local/nagios/var/service-perfdata.dat

    }

Upvotes: -4

Related Questions