## In order to use a custom Kieker.Monitoring configuration, create a copy of ## this file and modify it according to your needs. ## ## The location of the file is passed to Kieker.Monitoring via the JVM parameter ## kieker.monitoring.configuration. For example, with a configuration file named ## my.kieker.monitoring.properties in the folder META-INF you would pass this location ## to the JVM when starting your application: ## ## java -Dkieker.monitoring.configuration=META-INF/my.kieker.monitoring.properties [...] ## ## If no configuration file is passed, Kieker tries to use a configuration file in ## META-INF/kieker.monitoring.properties ## If this also fails, a default configuration is being used according to the values in ## this default file. ## The name of the Kieker instance. kieker.monitoring.name=KIEKER ## Whether a debug mode is activated. ## This changes a few internal id generation mechanisms to enable ## easier debugging. Additionally, it is possible to enable debug ## logging in the settings of the used logger. ## This setting should usually not be set to true. kieker.monitoring.debug=true ## Enable/disable monitoring after startup (true|false; default: true) ## If monitoring is disabled, the MonitoringController simply pauses. ## Furthermore, probes should stop collecting new data and monitoring ## writers stop should stop writing existing data. kieker.monitoring.enabled=true ## The name of the VM running Kieker. If empty the name will be determined ## automatically, else it will be set to the given value. kieker.monitoring.hostname= ## The initial ID associated with all experiments. (currently not used) kieker.monitoring.initialExperimentId=1 ## Enables/disable the automatic assignment of each record's logging timestamp. ## (true|false; default: true) kieker.monitoring.setLoggingTimestamp=false ## Whether a shutdown hook should be registered. ## This ensures that necessary cleanup steps are finished and no ## information is lost due to asynchronous writers. ## This should usually not be set to false. kieker.monitoring.useShutdownHook=true ## Whether any JMX functionality is available kieker.monitoring.jmx=false kieker.monitoring.jmx.domain=kieker.monitoring ## Enable/Disable the MonitoringController MBean kieker.monitoring.jmx.MonitoringController=true kieker.monitoring.jmx.MonitoringController.name=MonitoringController ## Controls JMX remote access kieker.monitoring.jmx.remote=false kieker.monitoring.jmx.remote.port=59999 kieker.monitoring.jmx.remote.name=JMXServer ## If the SUN-JMX Bootstrap class is not available, a fallback to the ## default implementation can be used. The fallback solution prevents ## the VM from terminating. ## A graceful shutdown is done by connecting to the JMXServer, there to ## kieker.monitoring.JMXServer and using the operation stop() kieker.monitoring.jmx.remote.fallback=true ## These properties will be forwarded to configure the JMX server com.sun.management.jmxremote.local.only=false com.sun.management.jmxremote.authenticate=false com.sun.management.jmxremote.ssl=false ## The size of the thread pool used to execute registered periodic sensor jobs. ## The thread pool is also used to periodically read the config file for adaptive ## monitoring. ## Set to 0 to deactivate scheduling. kieker.monitoring.periodicSensorsExecutorPoolSize=1 ## Enable or disable adaptive monitoring. kieker.monitoring.adaptiveMonitoring.enabled=false # ## Default location of the adaptive monitoring configuration File kieker.monitoring.adaptiveMonitoring.configFile=META-INF/kieker.monitoring.adaptiveMonitoring.conf # ## Enable/disable the updating of the pattern file by activating or deactivating ## probes through the api. kieker.monitoring.adaptiveMonitoring.updateConfigFile=false # ## The delay in seconds in which the pattern file is checked for changes. ## Requires kieker.monitoring.periodicSensorsExecutorPoolSize > 0. ## Set to 0 to disable the observation. kieker.monitoring.adaptiveMonitoring.readInterval=30 ########################### ####### TIMER ####### ########################### ## Selection of the timer used by Kieker (classname) ## The value must be a fully-qualified classname of a class implementing ## kieker.monitoring.timer.ITimeSource and providing a constructor that ## accepts a single Configuration. kieker.monitoring.timer=kieker.monitoring.timer.SystemNanoTimer #### #kieker.monitoring.timer=kieker.monitoring.timer.SystemMilliTimer # ## A timer with millisecond precision. # ## The offset of the timer. The time returned is since 1970-1-1 ## minus this offset. If the offset is empty it is set to the current ## time. ## The offset must be specified in milliseconds. kieker.monitoring.timer.SystemMilliTimer.offset=0 ## The timeunit used to report the timestamp. ## Accepted values: ## 0 - nanoseconds ## 1 - microseconds ## 2 - milliseconds ## 3 - seconds kieker.monitoring.timer.SystemMilliTimer.unit=0 #### #kieker.monitoring.timer=kieker.monitoring.timer.SystemNanoTimer # ## A timer with nanosecond precision. # ## The offset of the timer. The time returned is since 1970-1-1 ## minus this offset. If the offset is empty it is set to the current ## time. ## The offset must be specified in milliseconds. kieker.monitoring.timer.SystemNanoTimer.offset=0 ## The timeunit used to report the timestamp. ## Accepted values: ## 0 - nanoseconds ## 1 - microseconds ## 2 - milliseconds ## 3 - seconds kieker.monitoring.timer.SystemNanoTimer.unit=0 ########################### ####### WRITER ####### ########################### ## Selection of monitoring data writer (classname) ## The value must be a fully-qualified classname of a class implementing ## kieker.monitoring.writer.IMonitoringWriter and providing a constructor that ## accepts an IMonitoringController and a single Configuration. kieker.monitoring.writer=kieker.monitoring.writer.filesystem.AsyncFsWriter ##### #kieker.monitoring.writer=kieker.monitoring.writer.DummyWriter # ## Configuration Properties of the DummyWriter kieker.monitoring.writer.DummyWriter.key=value ##### #kieker.monitoring.writer=kieker.monitoring.writer.PrintStreamWriter # ## The PrintStream used to print the monitoring records. ## Either STDOUT or STDERR. ## Other values are used as a filenames for a target log file. ## You should use AsyncFsWriter instead of this writer for logging to files! kieker.monitoring.writer.PrintStreamWriter.Stream=STDOUT ##### #kieker.monitoring.writer=kieker.monitoring.writer.filesystem.SyncFsWriter # ## In order to use the default temporary directory, set the property value of ## storeInJavaIoTmpdir to true. kieker.monitoring.writer.filesystem.SyncFsWriter.storeInJavaIoTmpdir=true # ## In order to use a custom directory, set storeInJavaIoTmpdir=false ## and set customStoragePath as desired. Examples: ## /var/kieker or C:\\KiekerData (ensure the folder exists). kieker.monitoring.writer.filesystem.SyncFsWriter.customStoragePath=. # ## The maximal number of entries (records) per created file. ## Must be greater than zero. kieker.monitoring.writer.filesystem.SyncFsWriter.maxEntriesInFile=25000 # ## The maximal file size of the generated monitoring log. Older files will be ## deleted if this file size is exceeded. Given in MiB. ## At least one file will always remain, regardless of size! ## Use -1 to ignore this functionality. kieker.monitoring.writer.filesystem.SyncFsWriter.maxLogSize=-1 # ## The maximal number of log files generated. Older files will be ## deleted if this number is exceeded. ## At least one file will always remain, regardless of size! ## Use -1 to ignore this functionality. kieker.monitoring.writer.filesystem.SyncFsWriter.maxLogFiles=-1 # ## When flushing is disabled, it could require a lot of records before ## finally any writing is done. kieker.monitoring.writer.filesystem.SyncFsWriter.flush=true ##### #kieker.monitoring.writer=kieker.monitoring.writer.filesystem.AsyncFsWriter # ## When flushing is disabled, it could require a lot of records before ## finally any writing is done. kieker.monitoring.writer.filesystem.AsyncFsWriter.flush=true # ## In order to use the default temporary directory, set the property value of ## storeInJavaIoTmpdir to true. kieker.monitoring.writer.filesystem.AsyncFsWriter.storeInJavaIoTmpdir=true # ## In order to use a custom directory, set storeInJavaIoTmpdir=false ## and set customStoragePath as desired. Examples: ## /var/kieker or C:\\KiekerData (ensure the folder exists). kieker.monitoring.writer.filesystem.AsyncFsWriter.customStoragePath=. # ## The maximal number of entries (records) per created file. ## Must be greater than zero. kieker.monitoring.writer.filesystem.AsyncFsWriter.maxEntriesInFile=25000 # ## The maximal file size of the generated monitoring log. Older files will be ## deleted if this file size is exceeded. Given in MiB. ## At least one file will always remain, regardless of size! ## Use -1 to ignore this functionality. kieker.monitoring.writer.filesystem.AsyncFsWriter.maxLogSize=-1 # ## The maximal number of log files generated. Older files will be ## deleted if this number is exceeded. ## At least one file will always remain, regardless of size! ## Use -1 to ignore this functionality. kieker.monitoring.writer.filesystem.AsyncFsWriter.maxLogFiles=-1 # ## Asynchronous writers need to store monitoring records in an internal buffer. ## This parameter defines its capacity in terms of the number of records. kieker.monitoring.writer.filesystem.AsyncFsWriter.QueueSize=10000 # ## Behavior of the asynchronous writer when the internal queue is full: ## 0: terminate Monitoring with an error (default) ## 1: writer blocks until queue capacity is available ## 2: writer discards new records until space is available ## Be careful when using the value '1' since then, the asynchronous writer ## is no longer decoupled from the monitored application. kieker.monitoring.writer.filesystem.AsyncFsWriter.QueueFullBehavior=0 # ## Maximum time to wait for the writer threads to finish (in milliseconds). ## A MaxShutdownDelay of -1 means infinite waiting. kieker.monitoring.writer.filesystem.AsyncFsWriter.MaxShutdownDelay=-1 ##### #kieker.monitoring.writer=kieker.monitoring.writer.filesystem.AsyncBinaryFsWriter # ## In order to use the default temporary directory, set the property value of ## storeInJavaIoTmpdir to true. kieker.monitoring.writer.filesystem.AsyncBinaryFsWriter.storeInJavaIoTmpdir=true # ## In order to use a custom directory, set storeInJavaIoTmpdir=false ## and set customStoragePath as desired. Examples: ## /var/kieker or C:\\KiekerData (ensure the folder exists). kieker.monitoring.writer.filesystem.AsyncBinaryFsWriter.customStoragePath=. # ## The maximal number of entries (records) per created file. ## Must be greater than zero. kieker.monitoring.writer.filesystem.AsyncBinaryFsWriter.maxEntriesInFile=25000 # ## The maximal file size of the generated monitoring log. Older files will be ## deleted if this file size is exceeded. Given in MiB. ## At least one file will always remain, regardless of size! ## Use -1 to ignore this functionality. kieker.monitoring.writer.filesystem.AsyncBinaryFsWriter.maxLogSize=-1 # ## The maximal number of log files generated. Older files will be ## deleted if this number is exceeded. ## At least one file will always remain, regardless of size! ## Use -1 to ignore this functionality. kieker.monitoring.writer.filesystem.AsyncBinaryFsWriter.maxLogFiles=-1 # ## Asynchronous writers need to store monitoring records in an internal buffer. ## This parameter defines its capacity in terms of the number of records. kieker.monitoring.writer.filesystem.AsyncBinaryFsWriter.QueueSize=10000 # ## Behavior of the asynchronous writer when the internal queue is full: ## 0: terminate Monitoring with an error (default) ## 1: writer blocks until queue capacity is available ## 2: writer discards new records until space is available ## Be careful when using the value '1' since then, the asynchronous writer ## is no longer decoupled from the monitored application. kieker.monitoring.writer.filesystem.AsyncBinaryFsWriter.QueueFullBehavior=0 # ## Maximum time to wait for the writer threads to finish (in milliseconds). ## A MaxShutdownDelay of -1 means infinite waiting. kieker.monitoring.writer.filesystem.AsyncBinaryFsWriter.MaxShutdownDelay=-1 ##### #kieker.monitoring.writer=kieker.monitoring.writer.namedRecordPipe.PipeWriter # ## The name of the pipe used (must not be empty). kieker.monitoring.writer.namedRecordPipe.PipeWriter.pipeName=kieker-pipe ##### #kieker.monitoring.writer=kieker.monitoring.writer.jms.AsyncJMSWriter # ## The url of the jndi provider that knows the jms service ## - ActiveMQ: tcp://127.0.0.1:61616/ ## - HornetQ: jnp://localhost:1099/ ## - OpenJMS: tcp://127.0.0.1:3035/ kieker.monitoring.writer.jms.AsyncJMSWriter.ProviderUrl=tcp://127.0.0.1:61616/ # ## The topic at the jms server which is used in the publisher/subscribe communication. kieker.monitoring.writer.jms.AsyncJMSWriter.Topic=queue1 # ## The type of the jms factory implementation, e.g. ## - ActiveMQ: org.apache.activemq.jndi.ActiveMQInitialContextFactory ## - HornetQ: org.jnp.interfaces.NamingContextFactory ## - OpenJMS: org.exolab.jms.jndi.InitialContextFactory kieker.monitoring.writer.jms.AsyncJMSWriter.ContextFactoryType=org.apache.activemq.jndi.ActiveMQInitialContextFactory # ## The service name for the jms connection factory. kieker.monitoring.writer.jms.AsyncJMSWriter.FactoryLookupName=ConnectionFactory # ## The time that a jms message will be kept alive at the jms server before ## it is automatically deleted. kieker.monitoring.writer.jms.AsyncJMSWriter.MessageTimeToLive=10000 # ## Asynchronous writers need to store monitoring records in an internal buffer. ## This parameter defines its capacity in terms of the number of records. kieker.monitoring.writer.jms.AsyncJMSWriter.QueueSize=10000 # ## Behavior of the asynchronous writer when the internal queue is full: ## 0: terminate Monitoring with an error (default) ## 1: writer blocks until queue capacity is available ## 2: writer discards new records until space is available ## Be careful when using the value '1' since then, the asynchronous writer ## is no longer decoupled from the monitored application. kieker.monitoring.writer.jms.AsyncJMSWriter.QueueFullBehavior=0 # ## Maximum time to wait for the writer threads to finish (in milliseconds). ## A MaxShutdownDelay of -1 means infinite waiting. kieker.monitoring.writer.jms.AsyncJMSWriter.MaxShutdownDelay=-1 ##### #kieker.monitoring.writer=kieker.monitoring.writer.database.SyncDbWriter # ## Database driver classname ## Examples: ## MySQL: com.mysql.jdbc.Driver ## DerbyDB: org.apache.derby.jdbc.EmbeddedDriver kieker.monitoring.writer.database.SyncDbWriter.DriverClassname=org.apache.derby.jdbc.EmbeddedDriver # ## Connection string ## Examples: ## MySQL: jdbc:mysql://HOSTNAME/DBNAME?user=DBUSER&password=DBPASS ## DerbyDB: jdbc:derby:DBNAME;user=DBUSER;password=DBPASS kieker.monitoring.writer.database.SyncDbWriter.ConnectionString=jdbc:derby:tmp/KIEKER;user=DBUSER;password=DBPASS;create=true # ## Prefix for the names of the database tables kieker.monitoring.writer.database.SyncDbWriter.TablePrefix=kieker # ## Drop already existing tables or terminate monitoring with an error. kieker.monitoring.writer.database.SyncDbWriter.DropTables=false ##### #kieker.monitoring.writer=kieker.monitoring.writer.database.AsyncDbWriter # ## Database driver classname ## MySQL: com.mysql.jdbc.Driver ## DerbyDB: org.apache.derby.jdbc.EmbeddedDriver kieker.monitoring.writer.database.AsyncDbWriter.DriverClassname=org.apache.derby.jdbc.EmbeddedDriver # ## Connection string ## Examples: ## MySQL: jdbc:mysql://HOSTNAME/DBNAME?user=DBUSER&password=DBPASS ## DerbyDB: jdbc:derby:DBNAME;user=DBUSER;password=DBPASS kieker.monitoring.writer.database.AsyncDbWriter.ConnectionString=jdbc:derby:tmp/KIEKER;user=DBUSER;password=DBPASS;create=true # ## Prefix for the names of the database tables kieker.monitoring.writer.database.AsyncDbWriter.TablePrefix=kieker # ## Drop already existing tables or terminate monitoring with an error. kieker.monitoring.writer.database.AsyncDbWriter.DropTables=false # ## The number of concurrent Database connections. kieker.monitoring.writer.database.AsyncDbWriter.numberOfConnections=4 # ## Asynchronous writers need to store monitoring records in an internal buffer. ## This parameter defines its capacity in terms of the number of records. kieker.monitoring.writer.database.AsyncDbWriter.QueueSize=10000 # ## Behavior of the asynchronous writer when the internal queue is full: ## 0: terminate Monitoring with an error (default) ## 1: writer blocks until queue capacity is available ## 2: writer discards new records until space is available ## Be careful when using the value '1' since then, the asynchronous writer ## is no longer decoupled from the monitored application. kieker.monitoring.writer.database.AsyncDbWriter.QueueFullBehavior=0 # ## Maximum time to wait for the writer threads to finish (in milliseconds). ## A MaxShutdownDelay of -1 means infinite waiting. kieker.monitoring.writer.database.AsyncDbWriter.MaxShutdownDelay=-1 ##### #kieker.monitoring.writer=kieker.monitoring.writer.jmx.JMXWriter # ## The domain used to register the MonitoringLog. If empty, the value ## of "kieker.monitoring.jmx.domain" will be used. kieker.monitoring.writer.jmx.JMXWriter.domain= # ## The name of the MonitoringLog in the domain. kieker.monitoring.writer.jmx.JMXWriter.logname=MonitoringLog