Package org.apache.storm.daemon.logviewer.utils

# Class WorkerLogs

java.lang.Object
org.apache.storm.daemon.logviewer.utils.WorkerLogs

public class WorkerLogs extends Object
A class that knows about how to operate with worker log directory.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `WORKER_YAML`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `WorkerLogs(Map<String,Object> stormConf, Path logRootDir, StormMetricsRegistry metricsRegistry)`
  Constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Set<String>`
  `getAliveIds(int nowSecs)`
  Retrieve the set of alive worker IDs.
  `SortedSet<Path>`
  `getAliveWorkerDirs()`
  Return a sorted set of paths that were written by workers that are now active.
  `List<Path>`
  `getAllLogsForRootDir()`
  Return a list of all log files from worker directories in root log directory.
  `Set<Path>`
  `getAllWorkerDirs()`
  Return a set of all worker directories in all topology directories in root log directory.
  `SortedSet<Path>`
  `getLogDirs(Set<Path> logDirs, Predicate<String> predicate)`
  Finds directories for specific worker ids that can be cleaned up.
  `Optional<Path>`
  `getMetadataFileForWorkerLogDir(Path logDir)`
  Return a metadata file (worker.yaml) for given worker log directory.
  `String`
  `getTopologyOwnerFromMetadataFile(Path metaFile)`
  Return topology owner from worker meta file.
  `static String`
  `getTopologyPortWorkerLog(Path file)`
  Return the path of the worker log with the format of topoId/port/worker.log.*
  `String`
  `getWorkerIdFromMetadataFile(Path metaFile)`
  Return worker id from worker meta file.
  `void`
  `setLogFilePermission(String fileName)`
  Set permission of log file so that logviewer can serve the file.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### WORKER_YAML

    public static final String WORKER_YAML
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### WorkerLogs

    public WorkerLogs(Map<String,Object> stormConf, Path logRootDir, StormMetricsRegistry metricsRegistry)
    Constructor.
    Parameters:
      `stormConf` - storm configuration
      `logRootDir` - the log root directory
      `metricsRegistry` - The logviewer metrics registry

- ## Method Details

  - ### setLogFilePermission

    public void setLogFilePermission(String fileName) throws IOException
    Set permission of log file so that logviewer can serve the file.
    Parameters:
      `fileName` - log file
    Throws:
      `IOException`

  - ### getAllLogsForRootDir

    public List<Path> getAllLogsForRootDir() throws IOException
    Return a list of all log files from worker directories in root log directory.
    Throws:
      `IOException`

  - ### getAllWorkerDirs

    public Set<Path> getAllWorkerDirs()
    Return a set of all worker directories in all topology directories in root log directory.

  - ### getAliveWorkerDirs

    public SortedSet<Path> getAliveWorkerDirs() throws IOException
    Return a sorted set of paths that were written by workers that are now active.
    Throws:
      `IOException`

  - ### getMetadataFileForWorkerLogDir

    public Optional<Path> getMetadataFileForWorkerLogDir(Path logDir) throws IOException
    Return a metadata file (worker.yaml) for given worker log directory.
    Parameters:
      `logDir` - worker log directory
    Throws:
      `IOException`

  - ### getWorkerIdFromMetadataFile

    public String getWorkerIdFromMetadataFile(Path metaFile)
    Return worker id from worker meta file.
    Parameters:
      `metaFile` - metadata file

  - ### getTopologyOwnerFromMetadataFile

    public String getTopologyOwnerFromMetadataFile(Path metaFile)
    Return topology owner from worker meta file.
    Parameters:
      `metaFile` - metadata file

  - ### getAliveIds

    public Set<String> getAliveIds(int nowSecs) throws IOException
    Retrieve the set of alive worker IDs.
    Parameters:
      `nowSecs` - current time in seconds
    Throws:
      `IOException`

  - ### getLogDirs

    public SortedSet<Path> getLogDirs(Set<Path> logDirs, Predicate<String> predicate)
    Finds directories for specific worker ids that can be cleaned up.
    Parameters:
      `logDirs` - directories to check whether they're worker directories or not
      `predicate` - a check on a worker id to see if the log dir should be included
    Returns:
      directories that can be cleaned up.

  - ### getTopologyPortWorkerLog

    public static String getTopologyPortWorkerLog(Path file)
    Return the path of the worker log with the format of topoId/port/worker.log.*
    Parameters:
      `file` - worker log