Plot Graphs¶
This page describes how to create plots of dependency graphs of your workflow.
Pre-defined graphs¶
Torc can generate visualizations of these pre-defined graphs:
job_job_dependencies: Creates a plot showing job-to-job dependencies on the
blocks
edges.job_file_dependencies: Creates a plot showing job-to-file dependencies on the
produces
andneeds
edges.job_user_data_dependencies: Creates a plot showing job-to-user-data dependencies on the
stores
andconsumes
edges.
$ torc graphs plot job_job_dependencies job_file_dependencies job_user_data_dependencies
Note
Torc converts the workflow graphs into .dot files. If you want to keep the DOT files in
order to make customizations, append -k
to the command.
User-defined graphs¶
Torc can also generate a visualization of any .xmgmml
file exported from ArangoDB.
Pre-requisite: You must be able to run the ArangoDB tool arangoexport
. The recommended way
of running it is through Arango’s Docker container. You can also install it locally; refer to
https://www.arangodb.com/download-major/.
Ensure you can run
arangoexport
Docker:
$ docker run -it arangodb/arangodb:latest arangoexport --help
apptainer on Eagle:
$ module load apptainer
$ apptainer run /datasets/images/arangodb/arangodb.sif arangoexport --help
Local:
$ arangoexport --help
Export only the collections of interest. Examples of collections that you may want to include in the same graph are
jobs
vertexes +blocks
edgesjobs
andfiles
vertexes +produces
andneeds
edgesjobs
anduser_data
vertexes +stores
andconsumes
edges
Here is an example arangoexport
command to export one graph.
$ arangoexport \
--server.endpoint "http+tcp://localhost:8529" \
--server.database workflows \
--type xgmml \
--graph-name job-blocks \
--collection jobs__97903629 \
--collection blocks__97903629 \
--xgmml-label-only true \
--xgmml-label-attribute name
Connected to ArangoDB 'http+tcp://127.0.0.1:8529, version: 3.10.2, database: 'workflows', username: 'root'
# Export graph with collections jobs__97903629, blocks__97903629 as 'job-blocks'
# Exporting collection 'jobs__97903629'...
# Exporting collection 'blocks__97903629'...
Processed 1 graph, wrote 753 bytes, 2 HTTP request(s)
Key points:
Set the endpoint and database for your configuration.
graph-name
can be any name. Arango will create a file with that name in./export
.Append your workflow key to each collection in the format
<collection>__<key>
.You may want to append
--overwrite true
.
The file export/job-blocks.xgmml
now exists.
Create the plot with the torc CLI command.
$ torc graphs plot-xgmml export/job-blocks.xgmml
Created job-blocks.png