Menu

Logging and Output

Alex Libov

Logging

MOLStream systems supports two types of logs:

TextLogger

The TextLogger logs all messages sent and received by nodes. Moreover, additional logs can be written using the function TextLogger.log

If the <enabletextlogger> element is present in the configuration file, all logs will be added to a single log file.
To log only the messages and logs relevant to a single node, the name of the node can be added as an argument when invoking MOLStream.</enabletextlogger>

ObjectLogger

Object loggers are used to store statistics and metrics for every run. Each object logger stores a list of object of some class. When a run is finished, the ObjectLogger stores its state to a file.
For example:

static ObjectLogger<DegreeLog> degreeLogger = new ObjectLogger<DegreeLog>("degreeLog");

degreeLogger will be used to log objects of type - DegreeLog.

These object logs are all stored in files - a file per log per run.

Output

LogAnalyzer

The LogAnalyzer class reads the stored log files and calculates different measurements and statistics based on the data:

chunkIDinfo.csv/tsv

chunkIDinfo file stores data per chunk - it stores that total amount of nodes that have played each chunk.

dataUsage.csv/tsv

dataUsage stores all data related statistics per protocol and per message type:

  • overhead messages - amount of messages sent that are not the streaming content
  • overall messages - amount of messages sent overall
  • overhead bits - amount of bits sent that are not the streaming content
  • overall bits - amount of bits sent overall
  • averageAverageDegree - average node degree throughout the whole run, averaged by all nodes.
  • averageNodeDegreeVariance - the variance of the average node degree.
  • degreeVariance - the average variance of the node degree.
  • serverAverageDegree - the average degree of the source node throughout the run
  • serverDegreeVariance - the variance of the source node degree throughout the run
hopCount.tsv/csv

hopCount stores data that is calculated for a specific distance from the source node:

  • average latency
  • number of chunks received
secondInfo.csv/tsv

secondInfo stores data per second:

  • server Upload Utilization - amount of bits sent by the server during that second
  • server Bits In Queue - amount of bits sent by the server during that second exceeding the server's upload bandwidth
  • all Upload Utilization - average amount of bits sent by the rest of the nodes during that second
  • all Bits In Queue - average amount of bits sent by the rest of the nodes during that second exceeding the node's upload bandwidth
  • chunks played - numebr of chunks played during the second
  • available nodes - number of available nodes during the second
upTimeInfo.csv/tsv

secondInfo stores data per node up time:
* protocol degree - an average degree is stored for each active overlay protocol
* count - the number of neighbors that are up

overall.csv/tsv

overall data for the run:

  • averageLag - the difference in time between the latency of the first chunk and the latency of the last chunk. Averaged on all nodes.
  • averageStartupDelay the average time after the node joins and until the node first plays a chunk.
  • averageHopcount - the average distance (in hops) of nodes from the server
  • averageLatency - the average time between generation of content and consumption.
  • averageLatencySD - standard deviation of the latency.
  • averageLastDelay - the average time between the playback of the last chunk and the leaving time of the node (or end of the playback)
  • averageQuality - the average quality of the playback - average number of descriptors played out of the number of available descriptors.
  • continuityIndex - the average amount of chunk played out of chunk that could have been played.
  • overheadBitsSent - the average amount of overhead bit sent by nodes.
  • vitalBitsSent the average amount of vital bits sent by nodes.

Related

Wiki: Home

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.