Kieker 1.2

kieker.monitoring.writer.filesystem
Class SyncFsWriter

java.lang.Object
  extended by kieker.monitoring.writer.filesystem.SyncFsWriter
All Implemented Interfaces:
IMonitoringRecordReceiver, IMonitoringLogWriter

public final class SyncFsWriter
extends Object
implements IMonitoringLogWriter

Simple class to store monitoroing data in the file system. Although a buffered writer is used, outliers (delays of 1000 ms) occur from time to time if many monitoring events have to be writen. We believe that outliers result from a flush on the buffer of the writer. A more sophisticated writer to store data in the file system is the AsyncFsWriter. This does not introduce the outliers that result from flushing the writing buffer, since provides an asynchronous insertMonitoringData method. However, the AsyncFsWriter introduces a little more overhead because a writing queue is required and it isn't tested as much as the FileSystenWriter. Additionally, the resource demands (CPU, bus etc.) for writing monitoring data are not anymore occurring during the time of the execution that is monitored, but at some other (unknown) time. The AsyncFsWriter should usually be used instead of this class to avoid the outliers described above. The asyncFsWriter is not(!) faster (but also it shouldn't be much slower) because only one thread is used for writing into a single file. To tune it, it might be an option to write to multiple files, while writing with more than one thread into a single file is not considered a save option.

Author:
Matthias Rohr, Andre van Hoorn History: 2008/01/04: Refactoring for the first release of Kieker and publication under an open source licence 2007/03/13: Refactoring 2006/12/20: Initial Prototype

Constructor Summary
SyncFsWriter()
           
SyncFsWriter(String storagePathBase)
           
 
Method Summary
 String getInfoString()
          Returns a human-readable information string about the writer's configuration and state.
 Vector<AbstractWorkerThread> getWorkers()
          Returns a vector of workers, or null if none.
 boolean init(String initString)
          Initialize instance from passed initialization string which is typically a list of separated parameter/values pairs.
 boolean newMonitoringRecord(IMonitoringRecord monitoringRecord)
          Called for each new record.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SyncFsWriter

public SyncFsWriter()

SyncFsWriter

public SyncFsWriter(String storagePathBase)
Method Detail

init

public boolean init(String initString)
Description copied from interface: IMonitoringLogWriter
Initialize instance from passed initialization string which is typically a list of separated parameter/values pairs. The implementing class AbstractMonitoringLogWriter includes convenient methods to extract configuration values from an initString.

Specified by:
init in interface IMonitoringLogWriter
Parameters:
initString - the initialization string
Returns:
true iff the initialiation was successful

newMonitoringRecord

public boolean newMonitoringRecord(IMonitoringRecord monitoringRecord)
Description copied from interface: IMonitoringRecordReceiver
Called for each new record. Notice, that this method should not throw an exception, but indicate an error by the return value false.

Specified by:
newMonitoringRecord in interface IMonitoringRecordReceiver
Parameters:
monitoringRecord - the record.
Returns:
true on success; false in case of an error.

getWorkers

public Vector<AbstractWorkerThread> getWorkers()
Description copied from interface: IMonitoringLogWriter
Returns a vector of workers, or null if none.

Specified by:
getWorkers in interface IMonitoringLogWriter

getInfoString

public String getInfoString()
Description copied from interface: IMonitoringLogWriter
Returns a human-readable information string about the writer's configuration and state.

Specified by:
getInfoString in interface IMonitoringLogWriter
Returns:
the information string.

Kieker 1.2

Copyright 2010 the Kieker Project, http://kieker.sourceforge.net