Custom UI

Hello

I’d like to show some custom information in the monitor’s columns, but i can’t find a way to do it, if you have any idea to archive it.

In the Job panel :

  • An Average Frame Time column, to sort job by render time.

In the slave panel :

  • A custom column : a percent between errors & completed frames, to see witch nodes generate errors (and eventually build an alert on it)

And eventually, is there’s a way to make custom buttons, to build shortcuts for basics actions like “change selected job’s to X pool”, “add/remove 10 priority” or “set this custom list to whitelist” to skip right click actions

Thanks !

We have an example of collecting farm statistics into the ExtraInfo fields on our GitHub page:
github.com/ThinkboxSoftware/Dea … /FarmStats

Thanks

I’ve try to custom it to fit my needs.
I’ve a problem with the stats generated. They work on finished jobs, but on current rendering job, the AverageFrameRenderTime is calculated on all frames, non completed included.

So my AverageFrameRenderTime is messed up on rendering jobs.
Which is what i really need, to sort my rendering job, to allocate them to specific pool.

tasks = RepositoryUtils.GetJobTasks(job, True)
stats = JobUtils.CalculateJobStatistics(job, tasks)
jobAverageFrameRenderTime = stats.AverageFrameRenderTime

I reviewed our code and indeed there is a bug in the calculation of the averages in that the accumulated time is divided by the number Tasks in the Job rather than the number of completed Tasks in the job. I’ve logged the bug. It’s a simple correction, so we might see a fix as early as the next patch release.

Thanks for the report!

Side note: A temporary workaround for your script is to check whether the job is completed, and if not, multiply the computed average by a factor of (TotalTasks/CompletedTasks). If you implement this workaround, don’t forget to take it back out once the bug has been fixed.

By the way, in the monitor, the value is correct.

Job : 62/82 frames completed (75%)
Monitor Average Frame Time : 11:50
Script JobAverageFrameRenderTime : 08:56

Indeed, i’ve fix this by using the percent finished job multiplied by my render time.

percentFinished = float(jobCompletedChunks)/float(JobTaskCount)

Thanks !

Hello

Just wanted to know :
I have now my renderTime (recalculated with the % job finished) in minutes in an job extra properties.
So i can sort them.
But, extra properties are string values, so my jobs sorts like :

Any idea on how to inject a integer/float in extra properties ?

Thanks !

The ExtraInfo fields are always strings as far as I know. Have you tried fixed padding for the digits?

str = "Jobs - render times %4d min" % min

Indeed, it worked !

I thought that extra would have print me the value like “009” but zeros are invisible, so it’s perfect :slight_smile:

Thanks !