Pipelines: How to access run info within a run

Created on 30 Oct 2020  路  10Comments  路  Source: kubeflow/pipelines

Once a run is executed how can I retrieve information like the experiment name, run id, pipeline name, etc. I need this information to manage where the artifacts will be stored and woud like to organize the paths based on this information.

kinfeature

Most helpful comment

How about we introduce the following placeholders:

$.job returns the json payload of the job metadata which includes ID, name and pipeline name, etc.
$.job.id returns the unique ID of the job.

All 10 comments

I figured it out.
I am using kfp.dsl.EXECUTION_ID_PLACEHOLDER and kfp.dsl.RUN_ID_PLACEHOLDER within the pipeline specification.

I'm glad you figured out by yourself

@Bobgy
Those placeholders are very useful and I have been using them to uniquely identify a run. Nevertheless, I am still not able to get the run name and the experiment name (assuming that the run is part of one experiment). Any idea how this can be done?

/reopen

@Bobgy: Reopened this issue.

In response to this:

/reopen

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

I think we need to expose it

/kind feature

/cc @hongye-sun
Have we thought about placeholder syntax for exposing run uuid?

The existing placeholders have [[RunUUID]] format as other placeholders supported in scheduled workflow controller, but in IR we are now standardizing on
https://github.com/kubeflow/pipelines/blob/7ed110e9845237115591d04d82085d957e343795/api/v2alpha1/pipeline_spec.proto#L595-L613

I think it makes more sense to stick with IR format.

Context: @StefanoFioravanzo has already implemented PRs to add the placeholder. The major remaining concern is aligning on a preferred placeholder format.

How about we introduce the following placeholders:

$.job returns the json payload of the job metadata which includes ID, name and pipeline name, etc.
$.job.id returns the unique ID of the job.

https://github.com/kubeflow/pipelines/pull/5086 adds support for [[RunUUID]] and the [[CurrentTime.