【问题标题】:How do you get jobs & tasks statistics in Azure batch with the Python API?如何使用 Python API 在 Azure 批处理中获取作业和任务统计信息?
【发布时间】:2017-07-07 21:07:40
【问题描述】:

我最近开始使用 Azure 批处理,发现尽管存在给定作业的字段,但我无法获取该作业的统计信息。

我正在使用 Python API,当我轮询工作信息时,stats 字段始终为无。 JobListOptions 类可以与job.list 方法一起使用,但文档不是很有用。

通过BatchExplorer 示例代码,我发现JobListOptions 类的expand 字段可能需要设置为stats,但我仍然不确定,因为我仍然没有从中获取统计信息Python API。

【问题讨论】:

    标签: python azure azure-batch


    【解决方案1】:

    您可以按如下方式从工作中获取统计信息:

    my_batch_client.job.list(
        job_list_options=azure.batch.models.JobListOptions(
            expand='stats'
        )
    )
    

    请注意,如果您只对一份工作感兴趣,那么找一份工作比列出所有工作更有效。在这种情况下,请使用 my_batch_client.job.get() 和适当的 JobGetOptions

    或者对于一个工作下的所有任务:

    my_batch_client.task.list(
        job_id='MY_JOB_ID',
        task_list_options=azure.batch.models.TaskListOptions(
            expand='stats'
        )
    )
    

    同样,如果您只对作业下的单个任务感兴趣,请仅查询该任务,因为它更有效:

    my_batch_client.task.get(
        job_id='MY_JOB_ID',
        task_id='MY_TASK_ID',
        task_get_options=azure.batch.models.TaskGetOptions(
            expand='stats'
        )
    )
    

    【讨论】:

    • 我确实自己找到了答案,但你确实先写了答案!
    • 如果您还可以提供一个示例来获取各个任务的状态,那将是一个很好的答案。
    • 更新了单个任务查询的答案。
    【解决方案2】:

    听起来您想使用 Azure Python SDK 获取 Azure Batch 的作业和任务的整个生命周期的资源使用情况统计信息,因此首先您需要打开诊断以收集 ServiceLog 日志,如下图所示。

    然后你可以从batch_client.job.get(JOB_ID) & batch_client.task.get(JOB_ID, TASK_ID)方法的响应中得到这些统计信息stats

    【讨论】:

      猜你喜欢
      • 2021-04-14
      • 1970-01-01
      • 1970-01-01
      • 2013-10-29
      • 1970-01-01
      • 1970-01-01
      • 2014-10-09
      • 2021-04-14
      • 1970-01-01
      相关资源
      最近更新 更多