Note: This was originally posted by an inactive account. Content was preserved by moving under an admin account.
Originally posted by: Tim MeagherHi,
I suppose this depends on how you are executing the graph - there are essentially three ways to execute a graph.
- Using a compiled BRX via the external controller
- If you specify to output a BRD log (using the -brdlog flag) you will see the total execution time for the graph in the brd log in the row with "Graph Completed" in the action field (or "Graph Completed With Errors", if the graph had failed nodes)
- Using the automated logistics UI/API
- You will get the total run time back via the UI if you use this mechanism - or you can retrieve the brd log and use the same information as per above
- Executing the graph directly through BRE
- If your server farm (under Tools->Preferences->Server Farms) is configured to use the BRE controller, then if you view the BRE console log (via view->Toggle Log, or F8) then after all nodes have completed running, you can see this in the console in the line which starts:
- ExecuteMulti Mode DONE - Last execution [execution time]
- If your server farm is configured to use the External controller, then in the console log, look for the line:
- Execution DONE - Server ........... - Last execution [execution time]
Note that for 3) this isn't
technically the execution time for the graph.
This instead refers to the time taken to execute all of the nodes that were selected for execution.
So if you select an individual node, and execute it, then the execution time reported will be for that node.
Executing graphs through BRE allows for interactive execution whereby you can choose which nodes to execute, when.
So you could be constructing the graph as you execute it - or execute a node, walk away for a couple of hours and then executing the next node.
So there isn't really a concept of a "graph execution time".
However, if you simply select all nodes in the graph and choose to execute all of them, then the execution times mentioned above will be correct.
Further, when running the graph through BRE, once execution is complete, you can choose to export the BRS via File->Export BRS.
Then, the execution information is stored in the BRS and you can easily the run times from the BRS for each of the nodes.
It is then pretty simple to just work out the first start execution time and the last end execution time and determine from that the total execution time of your graph.
Note that this will be the duration of the execution, not the sum of the execution times of all of the nodes - so this again wouldn't make too much sense if you first executed a part of the graph, then went an executed another part of the graph later.
In any case, I've attached a graph which will read in a BRS and determine the execution time for the graph execution described by the BRS.
You should just have to enter the name of the BRS file in the Delimited File node to be able to use this.
Regards,
Tim.
Attachments:
CalculateGraphExecutionTime.brg