提问者:小点点

如何获取在组件内运行的管道的状态,在顶点AI上运行?


以前,使用Kubeflow管道SDKv1,可以在管道执行期间通过将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}}"
              ]
)

当传递给组件时,此占位符将采用值成功失败。这方面的一个用例是将失败警告发送到例如。Slack,结合dsl. ExitHandler

然而,当使用PipelineSDK版本2,kfp. v2,连同VertexAI编译和运行管道时,Argo占位符不再起作用,如本公开问题所述。正因为如此,我需要另一种方法来检查组件内管道的状态。我在想我可以使用kfp.Client类,但我假设这在使用VertexAI时不起作用,因为实际上没有“主机”。此外,似乎支持占位符来传递运行id(dsl.PIPELINE_JOB_ID_PLACEHOLDER)作为占位符,根据这SO帖子,但我找不到status周围的任何东西。

任何想法如何获得运行在顶点AI上的组件内的管道的状态?


共1个答案

匿名用户

每个管道运行都会自动记录到Google Logging,失败的管道运行也是如此。错误日志还包含有关管道和失败组件的信息。

例如,我们可以使用这些信息来监控我们的日志并通过电子邮件设置警报。

顶点AI管道运行的日志我们使用以下过滤器获得

source. type="aiplatform.googleapis.com/PipelineJob"严重程度=(错误或严重或警报或紧急)

顶点AI管道日志

基于这些日志,您可以设置基于日志的警报https://cloud.google.com/logging/docs/alerting/log-based-alerts.通过电子邮件、Slack、SMS等通知。

来源:https://medium.com/google-cloud/google-vertex-ai-the-easiest-way-to-run-ml-pipelines-3a41c5ed153

相关问题