提问者:小点点

谷歌数据流作业监视器


我正在编写一个应用程序来监控和查看Google数据流作业。

为了获取有关google数据流作业的元数据,我正在探索此处列出的REST API:

https://developers.google.com/apis-explorer/#search/dataflow/dataflow/v1b3/

我想知道是否有任何API可以执行以下操作:

1)如果我们提供工作ID列表,则获取工作详细信息(一个单独的工作ID有API,但我希望ID列表相同)

2)根据工作名称搜索或过滤工作。或者,过滤除工作状态之外的任何其他标准的工作。

3)获取与数据流作业关联的日志消息

4)获取“所有”作业的记录,从时间开始。目前的API似乎只给出了最近30天内作业的记录。

任何帮助都将不胜感激谢谢


共2个答案

匿名用户

还有关于Dataflow RESTAPI的其他留档:https://cloud.google.com/dataflow/docs/reference/rest/

分别回答您的每个问题:

1)如果我们提供工作ID列表,则获取工作详细信息(一个单独的工作ID有API,但我希望ID列表相同)

不,作业列表没有批处理方法。您需要使用projects.jobs. get单独查询它们。

2)根据工作名称搜索或过滤工作。或者,过滤除工作状态之外的任何其他标准的工作。

当前唯一可用的其他过滤器是位置。

3)获取与数据流作业关联的日志消息

在数据流中有两种类型的日志消息:

"作业日志"由Dataflow服务生成,提供有关整个作业执行的高级信息。这些信息可通过projects.jobs. Messages.listAPI获得。

还有由管道中运行的SDK和用户代码编写的“工作日志”。这些日志在与管道关联的分布式虚拟机上生成,并被摄取到堆栈驱动程序中。可以通过堆栈驱动程序日志条目. list查询它们API在过滤器中包含:

resource.type="dataflow_step"
resource.labels.job_id="<YOUR JOB ID>"

4)获取“所有”作业的记录,从时间开始。目前的API似乎只给出了最近30天内作业的记录。

数据流作业仅由服务保留30天。较旧的作业将被删除,因此在UI或API中不可用。

匿名用户

在我们的例子中,我们通过跟踪作业阶段和使用调度程序/cron作业在一个文件中报告正在运行的作业的详细信息来实现此类功能。这个文件带有1个桶,由我们的作业监视,它只是为我们的应用程序提供所有状态