Recording info about transmissions between nodes
Hello,
Our goal is to use IBR-DTN in a small testbed (50nodes), where we will do measurements and calculate statistics about the moments when the bundles are sent, received, and transfered from node to node (including information such as the source node, destination node, amount of data transfered), for example, this situation from NodeA to NodeB, passing throw NodeC:
Emitter: "BundleX SENT from NodeA to NodeB" Receiver: "BundleX_Received from NodeA - completed (10MB)" (or, in case of 3 nodes): in nodeC: "transferofbundle (10MB) from NodeA to NodeB - completed"
We want to store this information in a file as small as possible, so we need to find the logging instructions for these events in the code, so as to also log to our own file each time one of these events happens (and thus avoid recording and storing all the other log messages).
We have studied the code, but it is hard to find these things clearly, as the logging seems to use several different routines and sub-routines. If you could point us to the most important code files that we should look into and change so as to log these informations into our own log file, that would be very helpful.
Thank you,
Luís Guedes
Hi,
regarding the correct source files, Johannes is better suited to point you to the correct paces.
However, another alternative that might be the API. When the daemon is running (assuming you did not change the default API port), try this
telnet localhost 4550 Trying ::1... Connected to localhost. Escape character is '^]'. IBR-DTN 0.11.0-269 (build f4b03f2) API 1.0 protocol event 200 SWITCHED TO EVENT
then send some bundles and look at the output. If that is helpful, you could write a small script, that connects to the API, switches to Event mode, parses the data and writes your "compressed logs" (of course the same approach would be possible by piping the normal log of the daemon to a program and parse that, but I think the API output is more structured/simpler to parse).
Also, if your main problem is really file size, try piping the output to gzip or similar. This will reduce used to (far?) less than 10 percent. Something like
dtnd <options> -v | gzip > log.gz
should do wonders.
Sebastian
Am 11.03.2014 um 18:50 schrieb Luís Carlos Guedes duarte_d10@hotmail.com:
Hello,
Our goal is to use IBR-DTN in a small testbed (50nodes), where we will do measurements and calculate statistics about the moments when the bundles are sent, received, and transfered from node to node (including information such as the source node, destination node, amount of data transfered), for example, this situation from NodeA to NodeB, passing throw NodeC:
Emitter: "BundleX SENT from NodeA to NodeB" Receiver: "BundleX_Received from NodeA - completed (10MB)" (or, in case of 3 nodes): in nodeC: "transferofbundle (10MB) from NodeA to NodeB - completed"
We want to store this information in a file as small as possible, so we need to find the logging instructions for these events in the code, so as to also log to our own file each time one of these events happens (and thus avoid recording and storing all the other log messages).
We have studied the code, but it is hard to find these things clearly, as the logging seems to use several different routines and sub-routines. If you could point us to the most important code files that we should look into and change so as to log these informations into our own log file, that would be very helpful.
Thank you,
Luís Guedes
-- !! This message is brought to you via the `ibr-dtn' mailing list. !! Please do not reply to this message to unsubscribe. To unsubscribe or adjust !! your settings, send a mail message to ibr-dtn-request@ibr.cs.tu-bs.de !! or look at https://mail.ibr.cs.tu-bs.de/listinfo/ibr-dtn.
Am 11.03.2014 18:50, schrieb Luís Carlos Guedes:
We have studied the code, but it is hard to find these things clearly, as the logging seems to use several different routines and sub-routines. If you could point us to the most important code files that we should look into and change so as to log these informations into our own log file, that would be very helpful.
Logging of events is done in the EventDebugger class (located in src/core/). What else do you need?
Kind regards, Johannes Morgenroth
participants (3)
-
Johannes Morgenroth
-
Luís Carlos Guedes
-
Sebastian Schildt