使用资源日志排查 Azure 流分析问题

有时,Azure 流分析作业会意外地停止处理。 故障可能由意外的查询结果、与设备的连接问题或意外的服务中断导致。 Azure 流分析中的资源日志可帮助识别这些故障的原因并减少恢复时间。

为所有流分析作业启用资源日志,以帮助调试和监视。

流分析日志类型

流分析提供两种类型的日志:

  • 活动日志(始终在线),可深入了解对作业执行的操作。

  • 资源日志(可配置),可详细了解作业发生的所有情况。 资源日志在创建作业时开始,并在删除作业时结束。 日志涵盖作业更新时以及运行期间发生的事件。

注意

可以使用 Azure 存储、Azure 事件中心和 Azure Monitor 日志等服务分析不一致的数据。 根据这些服务的定价模型向你收费。

注意

本文最近已更新,改用“Azure Monitor 日志”这一术语来替代“Log Analytics”。 日志数据仍然存储在 Log Analytics 工作区中,并仍然由同一 Log Analytics 服务收集并分析。 我们正在更新术语,以便更好地反映 Azure Monitor 中的日志的角色。 有关详细信息,请参阅 Azure Monitor 术语更改

使用活动日志调试流分析作业

活动日志默认启用,并可提供有关流分析作业所执行操作的高层次概览。 活动日志中提供的信息可能有助于找到影响作业的问题的根本原因。 若要在流分析中使用活动日志,请执行以下步骤:

  1. 登录 Azure 门户并选择“概述”下的“活动日志”

    Azure门户中流分析作业的活动日志页的屏幕截图。

  2. 可看到已执行的操作的列表。 导致作业失败的所有操作都有一个红色信息气泡。

  3. 选择一项操作即可查看其摘要视图。 此处的信息通常受到限制。 若要了解有关操作的更多详细信息,请选择“JSON”。

    流分析作业的活动日志中操作摘要视图的屏幕截图。

  4. 向下滚动到 JSON 的“属性”部分,其中提供导致失败操作的错误的详细信息。 在此示例中,失败是由于来自非绑定纬度值的运行时错误导致的。 流分析作业处理的数据差异会导致数据错误。 你可以了解不同的输入和输出数据错误及其发生原因

    JSON 属性部分的屏幕截图,其中显示了失败操作的错误详细信息。

  5. 根据 JSON 中的错误消息采取纠正措施。 在此示例中,添加检查以确保纬度值介于 -90 度和 90 度之间。

  6. 如果活动日志中的错误消息对识别根本原因没有帮助,请启用资源日志并使用Azure Monitor日志。

将流分析诊断发送到Azure Monitor日志

打开资源日志并将其发送到Azure Monitor日志。 默认情况下,资源日志 处于关闭状态

  1. 如果你还没有 Log Analytics 工作区,请创建一个。 将Log Analytics工作区放置在与流分析作业相同的区域中。

  2. 登录到 Azure 门户,然后转到你的 Stream Analytics 作业。 在“监视”下,选择“诊断日志”。 然后选择“启用诊断”

    显示资源日志导航的屏幕截图。

  3. 诊断设置名称中输入名称,并选中日志下的执行创作复选框,以及指标下的AllMetrics复选框。 然后选择“发送到 Log Analytics”并选择工作区。 选择“保存”。

    用于在流分析作业中配置资源日志的诊断设置页的屏幕截图。

  4. 流分析作业开始时,资源日志会被路由到 Log Analytics 工作区。 要查看作业的资源日志,请在监控部分下选择日志

    显示“常规”菜单的屏幕截图,其中选择了“日志”。

  5. 流分析提供预定义的查询,使你可以轻松搜索感兴趣的日志。 可以在左侧窗格中选择任意预定义的查询,然后选择“运行”。 底部窗格将显示查询结果。

    显示流分析作业的“日志”页的屏幕截图。

流分析资源日志类别

Azure 流分析捕获两种类别的资源日志:

  • 创作:捕获与作业创作操作相关的日志事件,例如作业创建、添加和删除输入与输出、添加和更新查询,以及开始或停止作业。

  • 执行:捕获作业执行期间发生的事件。

    • 连接错误
    • 数据处理错误,包括:
      • 不符合查询定义的事件(字段类型和值不匹配、缺少字段等)
      • 表达式求值错误
    • 其他事件和错误

所有日志均以 JSON 格式存储。 若要了解资源日志的架构,请参阅资源日志架构

后续步骤