每个管道作业的成本
Cost of each pipeline job
我在 Moloco 的团队 运行 有很多数据流管道(每小时和每天,主要是批处理作业),有时我们希望计算每个管道的总成本,以确定我们可以做出哪些改进节省成本。
在过去的几周里,我们的一位工程师通常会去作业监控 UI 网页(通过 https://console.cloud.google.com/dataflow?project=$project-name),并通过查找 worker 数量,worker machine 来手动计算成本类型,总PD和使用的内存等
最近,我们注意到现在页面显示 "resource metrics",这将帮助我们在计算成本时节省时间(以及不久前宣布的新定价模式)。
另一方面,因为我们 运行 每天大约有 60-80 个数据流作业,所以我们计算每个作业的成本非常耗时。
有没有办法通过 API 给定作业 ID 来获取总 vCPU、内存和 PD/SSD 使用指标,也许是通过“'PipelineResult'”或主节点的日志?如果现在不支持,你们打算在不久的将来支持吗?
我们想知道我们是否应该考虑编写自己的脚本或可以提取每个作业 ID 的指标并计算成本的东西,但我们更希望我们不必这样做。
谢谢!
我是数据流团队的一名工程师。
我建议使用命令行工具列出这些指标并编写脚本来解析输出字符串中的指标并根据这些指标计算成本。如果您想为许多作业执行此操作,您可能还想使用 gcloud beta 数据流作业列表列出您的作业。我们正在研究解决方案,以便将来更容易获得。
确保您使用的是 gcloud 135.0.0+:
gcloud version
如果没有,您可以使用以下方式更新它:
gcloud components update
使用有权访问该项目的帐户登录运行您的工作:
cloud auth login
设置你的项目
gcloud config set project <my_project_name>
运行 此命令用于列出指标并 grep 资源指标:
gcloud beta dataflow metrics list <job_id> --project=<my_project_name> | grep Service -B 1 -A 3
您的结果应采用如下结构:
name:
name: Service-mem_mb_seconds
origin: dataflow/v1b3
scalar: 192001
updateTime: '2016-11-07T21:23:46.452Z'
--
name:
name: Service-pd_ssd_gb_seconds
origin: dataflow/v1b3
scalar: 0
updateTime: '2016-11-07T21:23:46.452Z'
--
name:
name: Service-cpu_num
origin: dataflow/v1b3
scalar: 0
updateTime: '2016-11-07T21:23:46.452Z'
--
name:
name: Service-pd_gb
origin: dataflow/v1b3
scalar: 0
updateTime: '2016-11-07T21:23:46.452Z'
--
name:
name: Service-pd_gb_seconds
origin: dataflow/v1b3
scalar: 12500
updateTime: '2016-11-07T21:23:46.452Z'
--
name:
name: Service-cpu_num_seconds
origin: dataflow/v1b3
scalar: 50
updateTime: '2016-11-07T21:23:46.452Z'
--
name:
name: Service-pd_ssd_gb
origin: dataflow/v1b3
scalar: 0
updateTime: '2016-11-07T21:23:46.452Z'
--
name:
name: Service-mem_mb
origin: dataflow/v1b3
scalar: 0
updateTime: '2016-11-07T21:23:46.452Z'
与您相关的是:
- Service-cpu_num_seconds
- Service-mem_mb_seconds
- Service-pd_gb_seconds
- Service-pd_ssd_gb_seconds
注意:这些指标名称将来会更改为:
- VCPU 总使用率
- 总内存使用率
- TotalHDDPersistentDiskUsage
- 总 SSDPersistentDiskUsage
我在 Moloco 的团队 运行 有很多数据流管道(每小时和每天,主要是批处理作业),有时我们希望计算每个管道的总成本,以确定我们可以做出哪些改进节省成本。 在过去的几周里,我们的一位工程师通常会去作业监控 UI 网页(通过 https://console.cloud.google.com/dataflow?project=$project-name),并通过查找 worker 数量,worker machine 来手动计算成本类型,总PD和使用的内存等
最近,我们注意到现在页面显示 "resource metrics",这将帮助我们在计算成本时节省时间(以及不久前宣布的新定价模式)。
另一方面,因为我们 运行 每天大约有 60-80 个数据流作业,所以我们计算每个作业的成本非常耗时。 有没有办法通过 API 给定作业 ID 来获取总 vCPU、内存和 PD/SSD 使用指标,也许是通过“'PipelineResult'”或主节点的日志?如果现在不支持,你们打算在不久的将来支持吗? 我们想知道我们是否应该考虑编写自己的脚本或可以提取每个作业 ID 的指标并计算成本的东西,但我们更希望我们不必这样做。
谢谢!
我是数据流团队的一名工程师。
我建议使用命令行工具列出这些指标并编写脚本来解析输出字符串中的指标并根据这些指标计算成本。如果您想为许多作业执行此操作,您可能还想使用 gcloud beta 数据流作业列表列出您的作业。我们正在研究解决方案,以便将来更容易获得。
确保您使用的是 gcloud 135.0.0+:
gcloud version
如果没有,您可以使用以下方式更新它:
gcloud components update
使用有权访问该项目的帐户登录运行您的工作:
cloud auth login
设置你的项目
gcloud config set project <my_project_name>
运行 此命令用于列出指标并 grep 资源指标:
gcloud beta dataflow metrics list <job_id> --project=<my_project_name> | grep Service -B 1 -A 3
您的结果应采用如下结构:
name:
name: Service-mem_mb_seconds
origin: dataflow/v1b3
scalar: 192001
updateTime: '2016-11-07T21:23:46.452Z'
--
name:
name: Service-pd_ssd_gb_seconds
origin: dataflow/v1b3
scalar: 0
updateTime: '2016-11-07T21:23:46.452Z'
--
name:
name: Service-cpu_num
origin: dataflow/v1b3
scalar: 0
updateTime: '2016-11-07T21:23:46.452Z'
--
name:
name: Service-pd_gb
origin: dataflow/v1b3
scalar: 0
updateTime: '2016-11-07T21:23:46.452Z'
--
name:
name: Service-pd_gb_seconds
origin: dataflow/v1b3
scalar: 12500
updateTime: '2016-11-07T21:23:46.452Z'
--
name:
name: Service-cpu_num_seconds
origin: dataflow/v1b3
scalar: 50
updateTime: '2016-11-07T21:23:46.452Z'
--
name:
name: Service-pd_ssd_gb
origin: dataflow/v1b3
scalar: 0
updateTime: '2016-11-07T21:23:46.452Z'
--
name:
name: Service-mem_mb
origin: dataflow/v1b3
scalar: 0
updateTime: '2016-11-07T21:23:46.452Z'
与您相关的是:
- Service-cpu_num_seconds
- Service-mem_mb_seconds
- Service-pd_gb_seconds
- Service-pd_ssd_gb_seconds
注意:这些指标名称将来会更改为:
- VCPU 总使用率
- 总内存使用率
- TotalHDDPersistentDiskUsage
- 总 SSDPersistentDiskUsage