How to determine the elapsed run time of workflow activities

Hi there,

We’re using the Temporal Go SDK and I’m trying to work out if there is a native way built-in that we can get the elapsed runtime for activities?

Imagine a workflow that launched child workflows and ultimately ends up running 10’s-100’s of activities to do the actual units of work - is there a way I can query out of temporal via the Go SDK how long was actually spent running these activities for a given workflow run ID? So even if the workflow took longer due to concurrency constraints etc, I could ascertain the exact time temporal spent executing the activity units of work.

If there’s not a native way, are there any techniques I could employ?

I can see there’s a memo concept in the SDK that I could possibly record things in, but I don’t see a corresponding way to retrieve this information via the SDK?

I suspect I may need to add some kind of wrapper around execution that can record the information I need, but thought worth checking here first.


You can get the workflow execution history using GetWorkflowExecutionHistory API and then determine each activity execution time by looking at the corresponding activity events.

Thanks Maxim.

Do you have any links to docs on using this in Go please? I can’t find that in the Go SDK docs?