以前,使用Kubeflow管道SDK v1,可以通过将Argo占位符{{workflow.status}}传递给组件来推断管道的状态,如下所示:
import kfp.dsl as dsl
component_1 = dsl.ContainerOp(
name='An example component',
image='eu.gcr.io/.../my-component-img',
arguments=[
'python3', 'main.py',
'--status', "{{workflow.status}}"
]
)当传递给组件时,此占位符将接受值Succeeded或Failed。这方面的一个用例是向eg发送故障警告。松弛,与dsl.ExitHandler相结合。
但是,当使用管线SDK 2、kfp.v2和顶点AI编译和运行管道时,Argo占位符不再工作,正如这个悬而未决的问题所描述的那样。因此,我需要另一种方法来检查组件中管道的状态。我想我可以使用kfp.Client 班级,但我假设使用顶点AI是行不通的,因为没有真正的“主机”。此外,似乎支持占位符将运行id (dsl.PIPELINE_JOB_ID_PLACEHOLDER)作为占位符传递给这是如此的帖子,但我在status周围找不到任何东西。
有什么想法,如何获得在组件中运行的管道状态,运行在顶点AI上?
发布于 2022-06-17 06:32:21
每个管道运行都会自动登录到Google日志记录,失败的管道运行也是如此。错误日志还包含有关管道和失败组件的信息。
例如,我们可以使用这些信息监视日志,并通过电子邮件设置警报。
我们的顶点AI管道的日志运行在下面的过滤器中
resource.type=”aiplatform.googleapis.com/PipelineJob”severity=(错误或关键或警报或紧急情况)
基于这些日志,您可以设置基于日志的警报https://cloud.google.com/logging/docs/alerting/log-based-alerts。通过电子邮件、短信、短信等方式发出通知是可能的。
来源:https://medium.com/google-cloud/google-vertex-ai-the-easiest-way-to-run-ml-pipelines-3a41c5ed153
https://stackoverflow.com/questions/72094768
复制相似问题