Class ProcPsParser

java.lang.Object
org.bootchart.parser.linux.ProcPsParser

public class ProcPsParser extends Object
ProcPsParser parses log files produced by logging the output of /proc/[PID]/stat files. The samples contain status information about processes (PID, command, state, PPID, user and system CPU times, etc.).
  • Constructor Details

    • ProcPsParser

      public ProcPsParser()
  • Method Details

    • parseLog

      public static PsStats parseLog(InputStream is, Map pidNameMap, Map forkMap) throws IOException
      Parses the proc_ps.log file. The output from /proc/[PID]stat is used to collect process information.

      If pidNameMap is set, it is used to map PIDs to command names. This is useful when init scripts are sourced, and thus ps is unable to report the proper process name. A sysinit modification is necessary to generate the mapping log file.

      forkMap is an optional map that provides detailed information about process forking.

      Parameters:
      is - the input stream to read from
      pidNameMap - PID to name mapping map (optional)
      forkMap - process forking map (optional)
      Returns:
      process statistics
      Throws:
      IOException - if an I/O error occurs
    • getState

      public static int getState(String state)
      Returns the process state. State can be one of:
      • "D": uninterruptible sleep
      • "R": running
      • "S": sleeping
      • "T": traced or stopped
      • "Z": zombie
      Parameters:
      state - process state string
      Returns:
      process state