Kieker 1.12

kieker.monitoring.writer.filesystem
Class SyncFsWriter

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

public final class SyncFsWriter
extends AbstractMonitoringWriter

Simple class to store monitoring 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 written. 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.

Since:
< 0.9
Author:
Matthias Rohr, Andre van Hoorn, Jan Waller

Field Summary
static java.lang.String CONFIG_BUFFER
           
static java.lang.String CONFIG_FLUSH
           
static java.lang.String CONFIG_MAXENTRIESINFILE
           
static java.lang.String CONFIG_MAXLOGFILES
           
static java.lang.String CONFIG_MAXLOGSIZE
           
static java.lang.String CONFIG_PATH
           
 
Fields inherited from class kieker.monitoring.writer.AbstractMonitoringWriter
monitoringController
 
Constructor Summary
SyncFsWriter(Configuration configuration)
          Creates a new instance of this class using the given configuration to initialize the class.
 
Method Summary
protected  void init()
          Implementing classes should indicate an initialization error by throwing an Exception.
 boolean newMonitoringRecord(IMonitoringRecord monitoringRecord)
          Called for each new record.
 void terminate()
          Called by the Monitoring Controller to announce a shutdown of monitoring.
 java.lang.String toString()
          Delivers a string representation of this writer.
 
Methods inherited from class kieker.monitoring.writer.AbstractMonitoringWriter
getDefaultConfiguration, newMonitoringRecordNonBlocking, setController
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

CONFIG_PATH

public static final java.lang.String CONFIG_PATH

CONFIG_MAXENTRIESINFILE

public static final java.lang.String CONFIG_MAXENTRIESINFILE

CONFIG_MAXLOGSIZE

public static final java.lang.String CONFIG_MAXLOGSIZE

CONFIG_MAXLOGFILES

public static final java.lang.String CONFIG_MAXLOGFILES

CONFIG_FLUSH

public static final java.lang.String CONFIG_FLUSH

CONFIG_BUFFER

public static final java.lang.String CONFIG_BUFFER
Constructor Detail

SyncFsWriter

public SyncFsWriter(Configuration configuration)
             throws java.lang.IllegalArgumentException
Creates a new instance of this class using the given configuration to initialize the class.

Parameters:
configuration - The configuration used to initialize this writer.
Throws:
java.lang.IllegalArgumentException - If the given configuration is invalid.
Method Detail

init

protected void init()
             throws java.lang.IllegalArgumentException,
                    java.io.IOException
Description copied from class: AbstractMonitoringWriter
Implementing classes should indicate an initialization error by throwing an Exception.

Specified by:
init in class AbstractMonitoringWriter
Throws:
java.lang.IllegalArgumentException
java.io.IOException

newMonitoringRecord

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

Parameters:
monitoringRecord - the record.
Returns:
true on success; false in case of an error.

terminate

public final void terminate()
Called by the Monitoring Controller to announce a shutdown of monitoring. Writers should return as soon as it is safe to terminate Kieker.


toString

public final java.lang.String toString()
Description copied from interface: IMonitoringWriter
Delivers a string representation of this writer.

Specified by:
toString in interface IMonitoringWriter
Overrides:
toString in class AbstractMonitoringWriter
Returns:
A string.

Kieker 1.12

Copyright 2015 Kieker Project, http://kieker-monitoring.net