使用作业关系图进行数据驱动调试

Azure 门户的“监视”边栏选项卡中的作业关系图可帮助你将作业管道可视化。 它显示了输入、输出和查询步骤。 可使用作业关系图检查每个步骤的指标,并且在解决问题时,更快速地隔离问题来源。

使用作业关系图

在 Azure 门户的流分析作业中,在“支持和故障排除”下,选择“作业关系图”:

包含指标的作业关系图 - 位置

选择每个查询步骤,在查询编辑窗格中查看相应的部分。 步骤的指标图表显示在页面上的下方窗格中。

包含指标的作业关系图 - 基本作业

要查看 Azure 事件中心输入对应的分区,请选择“. . .” 上下文菜单随即打开。 还可查看输入合并。

包含指标的作业关系图 - 展开分区

要查看单个分区的指标图表,请选择分区节点。 指标显示在页面底部。

包含指标的作业关系图 - 更多指标

要查看合并的指标图表,请选择合并节点。 以下图表表明没有删除或调整任何事件。

包含指标的作业关系图 - 网格

要查看指标值和时间的详细信息,请指向图表。

包含指标的作业关系图 - 悬停

使用指标进行故障排除

QueryLastProcessedTime 指标指示特定步骤收到数据的时间。 通过查看拓扑,可以从输出处理器开始反向检查,判断哪个步骤未接收数据。 如果一个步骤未收到数据,请转到它之前的查询步骤。 检查前面的查询步骤是否具有时间范围,以及是否经过了充足的、用于输出数据的时间。 (注意:时间范围会对齐到小时。)

如果前一个查询步骤是输入处理器,请使用输入指标帮助解答下列针对性问题。 它们可帮助你判断作业是否正从其输入源获取数据。 如果查询已分区,请检查每个分区。

正在读取的数据量有多少?

  • InputEventsSourcesTotal 是已读取的数据单元的数目。 例如,blob 的数目。
  • InputEventsTotal 是已读取的事件数目。 此指标按分区提供。
  • InputEventsInBytesTotal 是已读取的字节数。
  • 在接收每个事件时,使用该事件的排队时间更新 InputEventsLastArrivalTime

时间是否在不断前进? 如果已读取实际事件,可能不会发出停顿。

  • InputEventsLastPunctuationTime 表示发出停顿,从而使时间不断前进的时间。 如果不发出停顿,数据流可能会阻塞。

输入中是否有任何错误?

  • InputEventsEventDataNullTotal 是包含 null 数据的事件计数。
  • InputEventsSerializerErrorsTotal 是无法正确反序列化的事件计数。
  • InputEventsDegradedTotal 是出现了问题、但该问题不是反序列化问题的事件计数。

事件是否被删除或调整?

  • InputEventsEarlyTotal 是应用程序时间戳在高水位线之前的事件数目。
  • InputEventsLateTotal 是应用程序时间戳在高水位线之后的事件数目。
  • InputEventsDroppedBeforeApplicationStartTimeTotal 是作业开始时间之前删除的事件数目。

在读取数据上是否落后于人?

  • 囤积的输入事件数(总计) 告知还需要为事件中心和 Azure IoT 中心输入读取多少条消息。 当此数字大于 0 时,表示作业不能以数据传入速度快速处理数据。 在这种情况下,可能需要增加流单元数和/或确保作业可以并行化。 可以在查询并行化页上看到有关此内容的更多信息。

获取帮助

若要获取更多帮助,请访问我们的 Azure 流分析论坛

后续步骤