Extra! Extra! Read all about Extra Info!

Version: Deadline 8.0

Introduction

While using the Monitor application as part of your routine interactions with Deadline, you may have noticed a set of mysterious columns that tend to be perpetually empty; likely unhelpfully named 'Extra Info [0-9]'. They often represent sizeable chunk of under-utilized space on the far-right side of your horizontal scroll bar in the Monitor's most common list views (Jobs, Slaves, and Tasks), so they're typically not that hard to miss.

So, what are these mysterious columns for? What kind of stuff goes into these ambiguous boxes? A boring answer might be that we populate some of these with information from Shotgun, FTrack, or NIM if you're using those integrations. The fun answer, however, is they exist for your purpose, and contain whatever you want them to contain! Since that answer's much more interesting, that is the topic we will explore in this post.

Filling the Boxes

As I mentioned, you can fill the boxes with literally any text data you would like displayed alongside everything else in the Monitor. For the sake of example, I will choose to use my Jobs' ExtraInfo6 for the name of the song that was playing when the Job was submitted, because I think that it might have an interesting correlation with the number of Errors on a given Job. Similarly, I could use ExtraInfo7-9 with the Artist, Genre, and Album. Note that I'm only starting at ExtraInfo6 to not interfere with Shotgun/FTrack/NIM integration, but if you're not using any of these or filling in Extra Info on the Slaves/Tasks, feel free to use any of them!

Now that we've filled out some values for these columns, you should be able to search, sort, and filter on these columns the same way you would for any other columns in the Job view.

Naming the Columns

While filling the columns with arbitrary data is simple enough, it can quickly get confusing if everyone's using them for different purposes, or if you forget whether ExtraInfo8 was supposed to be the Album or the Artist. Luckily, it's a simple matter of re-naming them in the Repository Options to let everyone else know what they should be filling these with, and helps serve as a convenient reminder for which column is which. You can find these settings for the Job List in 'Tools' -> 'Configure Repository Options' -> 'Job Settings', under the 'Job Extra Properties' tab. Note that the names for the Tasks' Extra Info columns is in the adjacent tab, and the Slaves' columns are under the 'Slave Settings' category.

Now that I've done that, everywhere in the Monitor UI that refers to these columns should henceforth be accurately labeled, leading to a much more intuitive user experience.

Automation

While filling in values manually for each Job and Slave might be tenable, that proposition quickly gets out of hand if you start doing this for Tasks. Fortunately, this can all be scripted and automated through our various Python API hooks. Setting extra info columns on Jobs could be done as part of a Submission script, the Slaves' ExtraInfo values can be updated via Event Plugins, and Tasks could be done as part of a custom application Plugin. Note that these aren't the only places you can do these, simply the most natural.

As a quick scripting example, let's look at populating the ExtraInfo0 and ExtraInfo1 columns with the executable and arguments that were used for that particular Task. Below is an example of doing this using the CommandLine plugin that ships with Deadline, nice and simple! It is important to note that that even if you renamed these columns in the Repository Option, they are still referred to as ExtraInfo0-9 in code.

Another fun thing that you can do with Task Extra Info Columns is override the names of the columns on a per-Job basis. So, we could create a very simple Event Plugin that sets the names for these columns on Job Submission, based on the Plugin name:

Putting this all together, we get a nice tidy summary of the command run for that Task. Should be helpful for isolating pesky Slaves running the wrong exe, or possibly identifying Tasks that need requeuing after Job Settings were changed!

Now this is obviously just a small taste of what you could do here; you could log additional stats (CPU/GPU temps), surface important diagnostic information (software versions), or any other status information that might be deemed useful. Hopefully your mind is running wild with the possibilities!

Ten Columns Not Enough?

If ten different columns are too tight of a constraint for all the metadata you want to store alongside Jobs, Slaves, and Tasks, there are also ExtraInfo Key/Value Pairs available. This is a basically just a dictionary of arbitrary data, in which you can store all the other information that didn't fit in those first ten slots. They behave very similarly to the Extra Info Columns, but each value stored here must be tied to a unique key that can be used later to retrieve it. There's no cap on how many things you can put in there, but keep in mind that none of it will be displayed in the Monitor's list views -- so be sure to reserve the ExtraInfo0-9 for the most relevant data that benefits from being highly visible, like historical metadata of submission-time songs!