【问题标题】:Cost of each pipeline job每个管道作业的成本
【发布时间】:2016-11-24 09:36:13
【问题描述】:

我在 Moloco 的团队运行大量 Dataflow 管道(每小时和每天,主要是批处理作业),并且我们不时希望计算每个管道的总成本,以确定我们可以进行哪些改进以节省成本。 在过去的几周里,我们的一位工程师通常会去作业监控 UI 网页(通过https://console.cloud.google.com/dataflow?project=$project-name),通过查找工人数量、工人机器类型、总 PD 和内存来手动计算成本用过等等。

最近,我们注意到现在该页面显示了“资源指标”,这将帮助我们在计算成本时节省时间(以及不久前宣布的新定价模型)。

另一方面,因为我们每天运行大约 60-80 个数据流作业,所以计算每个作业的成本对我们来说非常耗时。 有没有办法通过 API 获取总 vCPU、内存和 PD/SSD 使用指标,给定作业 ID,可能是通过“PipelineResult”或从主节点的日志?如果现在不支持,你们打算在不久的将来吗? 我们想知道我们是否应该考虑编写自己的脚本或其他可以提取每个作业 ID 的指标并计算成本的东西,但我们希望我们不必这样做。

谢谢!

【问题讨论】:

    标签: google-cloud-dataflow


    【解决方案1】:

    我是数据流团队的工程师之一。

    我建议使用命令行工具列出这些指标并编写脚本来解析输出字符串中的指标并根据这些指标计算成本。如果您想为许多作业执行此操作,您可能还需要使用 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'
    

    与您相关的是:

    • 服务-cpu_num_seconds
    • 服务-mem_mb_seconds
    • 服务-pd_gb_seconds
    • 服务-pd_ssd_gb_seconds

    注意:这些指标名称将很快更改为:

    • 总 VCPU 使用率
    • 总内存使用率
    • 总HDDPersistentDiskUsage
    • SSDPersistentDiskUsage 总量

    【讨论】:

    • 这正是我所需要的。升级到最新的 gcloud sdk (135.0.0) 后,一切正常!
    • 您如何使用上述指标计算成本?
    • 您将使用的资源数量乘以这些资源的价格。
    • 问题:自给出此答案以来已过去 2 年。我想监控批处理作业指标。检查了 Stackdriver,但它只包含来自在线作业的指标。有什么推荐的解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多