你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用作业关系图进行数据驱动调试
使用 Azure 门户中“监视”边栏选项卡里的作业关系图,可以可视化作业管道。 它显示了输入、输出和查询步骤。 可使用作业关系图检查每个步骤的指标,并且在解决问题时,更快速地隔离问题源。
使用作业关系图
在 Azure 门户的流分析作业中,在“支持和故障排除”下,选择“作业关系图”:
选择每个查询步骤,在查询编辑窗格中查看相应的部分。 步骤的指标图表显示在页面下方的窗格中。
要查看 Azure 事件中心输入的分区,请选择“. . .”。此时显示一个上下文菜单。 还可查看输入合并。
要查看单个分区的指标图表,请选择分区节点。 指标显示在页面底部。
要查看合并的指标图表,请选择合并节点。 下表显示没有删除或调整事件。
要查看指标值和时间的详细信息,请指向图表。
使用指标进行故障排除
QueryLastProcessedTime 指标指示特定步骤收到数据的时间。 通过查看拓扑,可以从输出处理器开始反向检查,判断哪个步骤未接收数据。 如果一个步骤未收到数据,请转到它之前的查询步骤。 检查前面的查询步骤是否具有时间范围,以及是否经过了充足的、用于输出数据的时间。 (注意:时间范围会对齐到小时。)
如果前一个查询步骤是输入处理器,请使用输入指标帮助解答下列针对性问题。 它们可以帮助判断作业是否正从其输入源获取数据。 如果查询已分区,请检查每个分区。
正在读取的数据量有多少?
- InputEventsSourcesTotal 是已读取的数据单元的数目。 例如,blob 的数目。
- InputEventsTotal 是已读取的事件数目。 此指标按分区提供。
- InputEventsInBytesTotal 是已读取的字节数。
- 在接收每个事件时,使用该事件的排队时间更新 InputEventsLastArrivalTime。
时间是否在不断前进? 如果已读取实际事件,可能不会发出停顿。
- InputEventsLastPunctuationTime 表示发出停顿,从而使时间不断前进的时间。 如果不发出停顿,数据流可能会阻塞。
输入中是否有任何错误?
- InputEventsEventDataNullTotal 是包含 null 数据的事件计数。
- InputEventsSerializerErrorsTotal 是无法正确反序列化的事件计数。
- InputEventsDegradedTotal 是出现了问题、但该问题不是反序列化问题的事件计数。
事件是否被删除或调整?
- InputEventsEarlyTotal 是应用程序时间戳在高水位线之前的事件数目。
- InputEventsLateTotal是应用程序时间戳在高水位线之后的事件数目。
- InputEventsDroppedBeforeApplicationStartTimeTotal 是作业开始时间之前删除的事件数目。
在读取数据上是否落后于人?
- 囤积的输入事件数(总计) 告知还需要为事件中心和 Azure IoT 中心输入读取多少条消息。 当此数字大于 0 时,表示作业不能以数据传入速度快速处理数据。 在这种情况下,可能需要增加流单元数和/或确保作业可以并行化。 可以在查询并行化页上看到有关此内容的更多信息。
获取帮助
如需获取进一步的帮助,请阅读关于 Azure 流分析的 Microsoft 问答页。