你是如何得到工作的?使用Python API在Azure批处理中执行任务统计信息?

时间:2017-07-07 21:07:41

标签: python azure azure-batch

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

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

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

2 个答案:

答案 0 :(得分:2)

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

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'
    )
)

答案 1 :(得分:0)

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

enter image description here

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