More customizable configuration of logging links #3666
Replies: 6 comments 1 reply
-
Discussion is continuing in #3696 |
Beta Was this translation helpful? Give feedback.
-
The discussion continued for a bit in #3696. Let's take it back to the incubator. Current state of the discussionUser story: as a user I want to run a long training and log the training progress in an experiment tracking server like Mlflow, Wandb, ClearML, Aim, ... I want to be able to navigate from the Flyte console to my run in the experiment tracking server while the task is still running, e.g. to monitor the training progress and decided whether to continue or abort the run.
Create templateable links in the task decorator @task(log_links="{"wandb": f"https://my-experiment-tracking-server.com/?tag={{.executionId}}") Pro:
Con:
Allow flytekit to communicate a log link to flytepropeller even before the task has finished. This could for instance be done by allowing the user to flush the deck before the task finished: @task
def train():
run = some_experiment_tracking_api.start_run()
deck = flytekit.Deck("Summary", ...)
deck.append(MarkdownRenderer.to_html(f"... {run.link} ..."))
deck.flush() Pro:
Con:
|
Beta Was this translation helpful? Give feedback.
-
Of the two options /2 seems more complete as it is able to handle urls of arbitrary complexity.
|
Beta Was this translation helpful? Give feedback.
-
See flyteorg/flytekit#1704 which might be used to solve this problem. |
Beta Was this translation helpful? Give feedback.
-
2023-11-09 Contributor's meetup notes: this discussion will be used as an argument/use case for the RFC that will come out of this entry: #3838 |
Beta Was this translation helpful? Give feedback.
-
Implemented in #5945 |
Beta Was this translation helpful? Give feedback.
-
I propose two enhancements that would make the configuration of logging links as documented here more powerful:
Logging links are only shown once the pod starts running while useful information could be provided before to users.
A pod in
queued
status, no log links are shown:Once the pod is running, we link to the pod's overview page in the GCP cloud console:
Even before a pod starts running, this page has useful information, e.g. in case the pod cannot be scheduled when the cluster cannot fulfil the task's resource requests.
Having the ability to show some log links before the pod has started would give users not comfortable with
kubectl
an easy way to access this information directly from the Flyte console.This option could for instance be exposed like this:
Providing more parameters for link templating:
Currently these parameters can be used to template links.
We would like to be able to add links to experiment tracking servers like Mlflow, Wandb, ...
We typically add tags with e.g. the flyte task project, domain, version, and execution id (retrieved from the flyte context) to the runs in our experiment tracking server. If we had access to these values during link templating, we could provide links to the run/experiment in e.g. Wandb in the Flyte console. Currently we log this link and have to go to the stackdriver logs to retrieve it.
Beta Was this translation helpful? Give feedback.
All reactions