使用 Azure 存储指标和日志记录、AzCopy 和 Message Analyzer 进行端到端故障排除

诊断和故障排除是使用 Microsoft Azure 存储生成和支持客户端应用程序的关键技能。 由于 Azure 应用程序的分布式性质,诊断和排查错误和性能问题可能比传统环境中更为复杂。

在本教程中,我们演示如何识别可能影响性能的某些错误,以及使用 Microsoft 和 Azure 存储提供的工具从端到端排查这些错误,以优化客户端应用程序。

本教程提供端到端故障排除方案的实践探索。 有关 Azure 存储应用程序进行故障排除的深入概念指南,请参阅 监视、诊断和排除 Microsoft Azure 存储问题

用于对 Azure 存储应用程序进行故障排除的工具

若要使用 Microsoft Azure 存储对客户端应用程序进行故障排除,可以使用工具的组合来确定问题发生的时间以及问题的原因。 这些工具包括:

  • Azure 存储分析Azure 存储分析 为 Azure 存储提供指标和日志记录。

    • 存储指标 跟踪存储帐户的事务指标和容量指标。 使用指标,可以确定应用程序如何根据各种不同度量值执行。 有关存储分析跟踪的指标类型的详细信息,请参阅 存储分析指标表架构
    • 存储日志记录 会将对 Azure 存储服务的每个请求记录到服务器端日志。 日志跟踪每个请求的详细数据,包括执行的操作、操作的状态和延迟信息。 有关存储分析写入日志的请求和响应数据的详细信息,请参阅 存储分析日志 格式。
  • Azure 门户。 可以在 Azure 门户中为存储帐户配置指标和日志记录。 还可以查看图表,这些图表展示应用程序随时间推移的性能,并配置警报,如果应用程序的表现与预期不同,则通知你。

    有关在 Azure 门户中配置监视的信息,请参阅 Azure 门户中监视存储帐户

  • AzCopy。 Azure 存储的服务器日志存储为 blob,因此可以使用 AzCopy 将日志 blob 复制到本地目录,以便使用 Microsoft Message Analyzer 进行分析。 有关 AzCopy 的详细信息,请参阅使用 AzCopy Command-Line 实用工具传输数据

  • Microsoft消息分析器。 消息分析器是一种工具,它使用日志文件并采用可视化格式显示日志数据,使用户可以轻松地将日志数据筛选、搜索和分组到可用于分析错误和性能问题的有用集。 有关 消息分析器的详细信息,请参阅Microsoft消息分析器作指南

关于示例情境

在本教程中,我们将探讨一种方案,其中 Azure 存储指标指示调用 Azure 存储的应用程序的成功率较低。 低成功率指标(在 Azure 门户和指标表中显示为 PercentSuccess)跟踪成功的操作,但这些操作返回的 HTTP 状态代码大于 299。 在服务器端存储日志文件中,这些操作被记录为事务状态 ClientOtherErrors。 有关低成功率度量标准的更多详细信息,请参阅 指标显示低 PercentSuccess 或分析日志条目的事务状态为 ClientOtherErrors 的操作

Azure 存储作可能会返回大于 299 的 HTTP 状态代码,作为其正常功能的一部分。 但在某些情况下,这些错误表明你也许能够优化客户端应用程序以提高性能。

在这种情境下,我们将认为成功率低于 100%为低成功率。 但是,可以根据需求选择不同的指标级别。 建议在测试应用程序期间,为关键性能指标建立基线容忍度。 例如,可以根据测试确定,您的应用程序应始终保持 90%或 85%的成功率。 如果指标数据显示应用程序偏离该数字,则可以调查可能导致增加的原因。

对于示例方案,一旦我们确定成功率指标低于 100%,我们将检查日志以查找与指标相关的错误,并使用它们来确定导致成功率较低的原因。 我们将专门研究 400 范围内的错误。 然后,我们将更仔细地调查 404 (找不到) 错误。

造成 400 范围错误的一些原因

以下示例显示了针对 Azure Blob 存储的请求的大约 400 范围错误采样及其可能的原因。 这些错误中的任何一个,以及 300 范围和 500 范围内的错误,都可能导致低成功率。

请注意,下面的列表远未完成。 有关常规 Azure 存储错误以及特定于每个存储服务的错误的详细信息,请参阅 MSDN 上的 状态和错误代码

状态代码 404 (找不到) 示例

当针对容器或 Blob 的读取操作失败时发生,因为找不到 Blob 或容器。

  • 如果容器或 Blob 已由另一个客户端在此请求之前删除,则会发生此事件。
  • 如果在检查某个容器或 Blob 是否存在后使用创建它的 API 调用,则会发生这种情况。 CreateIfNotExists API 首先进行 HEAD 调用,以检查容器或 Blob 是否存在;如果不存在,则返回 404 错误,然后进行第二次 PUT 调用以写入容器或 Blob。

状态代码 409 (冲突) 示例

  • 如果使用创建 API 创建新容器或 Blob,而不首先检查是否存在,并且具有该名称的容器或 Blob 已存在,则会发生此情况。
  • 在删除容器时发生,并且尝试在删除作完成之前创建具有相同名称的新容器。
  • 如果在容器或 blob 上指定租约,而该容器或 blob 上已存在租约,则会发生此情况。

状态代码 412 (前置条件失败) 示例

  • 在未满足条件标头指定的条件时发生。
  • 当指定的租约 ID 与容器或 Blob 上的租约 ID 不匹配时发生。

生成日志文件以供分析

在本教程中,我们将使用 Message Analyzer 处理三种不同类型的日志文件,不过可以选择使用以下任一日志文件:

  • 启用 Azure 存储日志记录时创建的 服务器日志。 服务器日志包含关于针对 Azure 存储服务之一(Blob、队列、表、文件)发起的每个操作的数据。 服务器日志指示调用了哪个作以及返回了哪些状态代码,以及有关请求和响应的其他详细信息。
  • 在 .NET 应用程序中启用客户端日志记录时创建的 .NET 客户端日志。 客户端日志包含有关客户端如何准备请求和接收和处理响应的详细信息。
  • HTTP 网络跟踪日志用于收集 HTTP/HTTPS 请求和响应的数据,包括针对 Azure 存储的操作。 在本教程中,我们将通过消息分析器生成网络跟踪。

配置服务器端日志记录和指标

首先,我们需要配置 Azure 存储日志记录和指标,以便从服务端获取数据进行分析。 可以通过多种方式配置日志记录和指标 - 通过 Azure 门户、使用 PowerShell 或以编程方式进行配置。 有关配置日志记录和指标的详细信息,请参阅 “启用指标 ”和 “启用日志记录 ”。

配置 .NET 客户端日志记录功能

若要为 .NET 应用程序配置客户端日志记录,请在应用程序的配置文件(web.config 或 app.config)中启用 .NET 诊断。 有关详细信息,请参阅 MSDN 上的 .NET 存储客户端库的客户端日志记录适用于 Java 的 Microsoft Azure 存储 SDK 的客户端日志记录

客户端日志包含有关客户端如何准备请求和接收和处理响应的详细信息。

存储客户端库将客户端日志数据存储在应用程序配置文件(web.config 或 app.config)中指定的位置。

收集网络数据追踪

在客户端应用程序运行时,可以使用消息分析器收集 HTTP/HTTPS 网络跟踪。 消息分析器在后端使用 Fiddler 。 在收集网络跟踪之前,建议将 Fiddler 配置为记录未加密的 HTTPS 流量:

  1. 安装 Fiddler
  2. 启动 Fiddler。
  3. 选择 工具 |Fiddler 选项
  4. 在“选项”对话框中,确保同时选择了 “捕获 HTTPS CONNECT ”和 “解密 HTTPS 流量 ”,如下所示。

配置 Fiddler 选项

对于本教程,请先在 Message Analyzer 中收集和保存网络跟踪,然后创建分析会话以分析跟踪和日志。 在消息分析器中收集网络跟踪:

  1. 在消息分析器中,选择 “文件” |快速跟踪 |未加密的 HTTPS

  2. 跟踪将立即开始。 选择 “停止 ”以停止跟踪,以便我们可以将其配置为仅跟踪存储流量。

  3. 选择 “编辑” 以编辑跟踪会话。

  4. 选择 Microsoft-Pef-WebProxy ETW 提供程序右侧的“配置”链接。

  5. “高级设置” 对话框中,单击“ 提供程序 ”选项卡。

  6. “主机名筛选器” 字段中,指定存储终结点,用空格分隔。 例如,您可以按如下所示指定终结点;将 storagesample 更改为您的存储帐户名称:

    storagesample.blob.core.windows.net storagesample.queue.core.windows.net storagesample.table.core.windows.net

  7. 退出对话框,然后单击“ 重启 ”开始收集具有主机名筛选器的跟踪,以便跟踪中仅包含 Azure 存储网络流量。

注释

收集完网络跟踪后,强烈建议还原 Fiddler 中可能已更改的设置以解密 HTTPS 流量。 在“Fiddler 选项”对话框中,取消勾选 捕获 HTTPS CONNECT解密 HTTPS 流量 复选框。

有关更多详细信息,请参阅 Technet 上的 网络跟踪功能

在 Azure 门户中查看指标数据

应用程序运行一段时间后,可以查看 Azure 门户中 显示的指标图表,以观察服务的性能。

首先,在 Azure 门户中导航到存储帐户。 默认情况下,账户页面上会显示一个带有成功百分比指标的监控图表。 如果之前已修改图表以显示不同的指标,请添加 “成功百分比 ”指标。

现在,监视图表中会显示 “成功百分比 ”以及可能添加的任何其他指标。 在方案中,我们将通过分析消息分析器中的日志来调查下一步,成功率略低于 100%。

有关添加和自定义指标图表的更多详细信息,请参阅 “自定义指标图表”。

注释

启用存储指标后,指标数据可能需要一些时间才能显示在 Azure 门户中。 这是因为,在当前小时过去之前,前一小时的每小时指标不会显示在 Azure 门户中。 此外,分钟指标当前不会显示在 Azure 门户中。 因此,根据启用指标的时间,最长可能需要两个小时才能查看指标数据。

使用 AzCopy 将服务器日志复制到本地目录

Azure 存储将服务器日志数据写入 Blob 存储,而指标则写入表中。 日志 Blob 在存储帐户的已知 $logs 容器中可用。 日志 Blob 按年份、月、日和小时分层命名,以便可以轻松找到要调查的时间范围。 例如,在storagesample帐户中,2015年01月02日,上午8点到9点的日志 Blob 的容器是https://storagesample.blob.core.windows.net/$logs/blob/2015/01/08/0800。 此容器中的单个 Blob 按顺序命名,以 000000.log开头。

可以使用 AzCopy 命令行工具将这些服务器端日志文件下载到本地计算机上所选位置。 例如,可以使用以下命令将 2015 年 1 月 2 日发生的 Blob 操作的日志文件下载到文件夹 C:\Temp\Logs\Server,并将 <storageaccountname> 替换为存储帐户的名称:

azcopy copy 'http://<storageaccountname>.blob.core.windows.net/$logs/blob/2015/01/02' 'C:\Temp\Logs\Server'  --recursive

AzCopy 可在 Azure 下载 页上下载。 有关使用 AzCopy 的详细信息,请参阅 使用 AzCopy Command-Line 实用工具传输数据

有关下载服务器端日志的其他信息,请参阅 下载存储日志记录日志数据

使用Microsoft消息分析器分析日志数据

Microsoft消息分析器是一种在故障排除和诊断方案中捕获、显示和分析协议消息传送流量、事件和其他系统或应用程序消息的工具。 利用消息分析器,还可以从日志和保存的跟踪文件加载、聚合和分析数据。 有关消息分析器的详细信息,请参阅 Microsoft Message Analyzer作指南

消息分析器包含 Azure 存储的资产,可帮助你分析服务器、客户端和网络日志。 在本部分中,我们将讨论如何使用这些工具解决存储日志中低成功百分比的问题。

下载并安装 Message Analyzer 和 Azure 存储资源

  1. 下载 消息分析器
  2. 启动消息分析器。
  3. “工具” 菜单中选择 “资产管理器”。 在 “资产管理器 ”对话框中,选择“ 下载”,然后筛选 Azure 存储。 你将看到 Azure 存储资产,如下图所示。
  4. 单击“ 同步所有显示项 ”以安装 Azure 存储资产。 可用资产包括:
    • Azure 存储颜色规则: 使用 Azure 存储颜色规则可以定义使用颜色、文本和字体样式来突出显示跟踪中包含特定信息的消息的特殊筛选器。
    • Azure 存储图表: Azure 存储图表是图形服务器日志数据的预定义图表。 请注意,若要目前使用 Azure 存储图表,只能将服务器日志加载到分析网格中。
    • Azure 存储分析器: Azure 存储分析器分析 Azure 存储客户端、服务器和 HTTP 日志,以便在分析网格中显示它们。
    • Azure 存储筛选器: Azure 存储筛选器是预定义的条件,可用于在分析网格中查询数据。
    • Azure 存储视图布局: Azure 存储视图布局是分析网格中的预定义列布局和分组。
  5. 安装资产后重启消息分析器。

Message Analyzer Asset Manager

注释

安装本教程所示的所有 Azure 存储资产。

将日志文件导入到 Message Analyzer 中

可以将所有保存的日志文件(服务器端、客户端和网络)导入到 Microsoft Message Analyzer 中的单个会话中进行分析。

  1. 在Microsoft消息分析器中的 “文件 ”菜单上,单击“ 新建会话”,然后单击“ 空白会话”。 在 “新建会话 ”对话框中,输入分析会话的名称。 在 “会话详细信息 ”面板中,单击“ 文件 ”按钮。
  2. 若要加载消息分析器生成的网络跟踪数据,请单击“ 添加文件”,浏览到从 Web 跟踪会话保存 .matp 文件的位置,选择 .matp 文件,然后单击“ 打开”。
  3. 若要加载服务器端日志数据,请单击“ 添加文件”,浏览到下载服务器端日志的位置,选择要分析的时间范围的日志文件,然后单击“ 打开”。 然后,在 “会话详细信息 ”面板中,将每个服务器端日志文件 的文本日志配置 下拉列表设置为 AzureStorageLog ,以确保Microsoft消息分析器可以正确分析日志文件。
  4. 若要加载客户端日志数据,请单击“ 添加文件”,浏览到保存客户端日志的位置,选择要分析的日志文件,然后单击“ 打开”。 然后,在 “会话详细信息 ”面板中,将每个客户端日志文件 的文本日志配置 下拉列表设置为 AzureStorageClientDotNetV4 ,以确保Microsoft消息分析器可以正确分析日志文件。
  5. 单击“新建会话”对话框中的“开始”以加载和分析日志数据。 日志数据显示在消息分析器的分析网格中。

下图显示了使用服务器、客户端和网络跟踪日志文件配置的示例会话。

配置消息分析器会话

请注意,Message Analyzer 将日志文件加载到内存中。 如果你有一组大型日志数据,则需要对其进行筛选,以便从 Message Analyzer 获得最佳性能。

首先,确定您感兴趣的时间段,并尽可能缩小这一时间段。 在许多情况下,你最多需要查看几分钟或小时。 导入可满足需求的最小日志集。

如果仍有大量日志数据,则可能需要指定会话筛选器,以在加载日志数据之前对其进行筛选。 在 “会话筛选器 ”框中,选择“ ”按钮以选择预定义的筛选器;例如,从 Azure 存储 筛选器中选择全局时间筛选器 I 以按时间间隔进行筛选。 然后,可以编辑筛选器条件,以指定要查看的间隔的起始和结束时间戳。 还可以筛选特定状态代码;例如,可以选择仅加载状态代码为 404 的日志条目。

有关将日志数据导入Microsoft消息分析器的详细信息,请参阅在 TechNet 上 检索消息数据

使用客户端请求 ID 关联日志文件数据

Azure 存储客户端库为每个请求自动生成唯一的客户端请求 ID。 此值将写入客户端日志、服务器日志和网络跟踪,因此可以使用该值关联消息分析器中的所有三个日志中的数据。 有关 客户端请求 ID 的其他信息,请参阅客户端请求 ID。

以下部分介绍如何使用预配置和自定义布局视图根据客户端请求 ID 关联和分组数据。

选择要在分析网格中显示的视图布局

消息分析器的存储资产包括 Azure 存储视图布局,这些布局是预配置的视图,可用于在不同的方案中使用有用的分组和列来显示数据。 还可以创建自定义视图布局并保存它们以供重复使用。

下图显示了“ 视图布局 ”菜单,可通过从工具栏功能区中选择 “视图布局 ”来使用。 Azure 存储的视图布局按菜单中的 Azure 存储 节点分组。 可以在搜索框中搜索 Azure Storage 以仅筛选 Azure 存储视图布局。 还可以选择视图布局旁边的星标,将其设为收藏,并显示在菜单顶部。

“视图布局”菜单

首先,选择按ClientRequestID和模块分组。 此视图布局首先按客户端请求 ID、源日志文件(或消息分析器中的 模块 )对来自所有三个日志的日志数据进行分组。 使用此视图,可以向下钻取到特定的客户端请求 ID,并查看该客户端请求 ID 的所有三个日志文件中的数据。

下图展示的是布局视图应用于示例日志数据的效果,并且只显示了一部分列。 可以看到,对于特定的客户端请求 ID,分析网格显示来自客户端日志、服务器日志和网络跟踪的数据。

Azure 存储视图布局

注释

不同的日志文件具有不同的列,因此,当来自多个日志文件的数据显示在分析网格中时,某些列可能不包含给定行的任何数据。 例如,在上图中,客户端日志行不显示 时间戳TimeElapsed目标 列的任何数据,因为这些列不存在于客户端日志中,但确实存在于网络跟踪中。 同样, “时间戳 ”列显示服务器日志中的时间戳数据,但不显示 TimeElapsed目标 列(不属于服务器日志)的数据。

除了使用 Azure 存储视图布局,还可以定义和保存自己的视图布局。 还可以选择用于对数据进行分组的其他所需字段,并将分组保存为自定义布局的一部分。

将颜色规则应用于分析网格

存储资产还包括颜色规则,该规则提供一种视觉手段来标识分析网格中的不同类型的错误。 预定义的颜色规则适用于 HTTP 错误,因此它们仅针对服务器日志和网络跟踪显示。

若要应用颜色规则,请从工具栏功能区中选择 “颜色规则 ”。 你将在菜单中看到 Azure 存储颜色规则。 对于本教程,请选择 “客户端错误”(状态代码介于 400 和 499 之间),如下图所示。

Azure 存储视图布局

除了使用 Azure 存储颜色规则,还可以定义和保存自己的颜色规则。

对日志数据进行分组和筛选以查找 400 范围错误

接下来,我们将对日志数据进行分组和筛选,以查找 400 范围内的所有错误。

  1. 在分析网格中找到 StatusCode 列,右键单击列标题,然后选择“ ”。

  2. 接下来,对 ClientRequestId 列进行分组。 你将看到分析网格中的数据现在按状态代码和客户端请求 ID 进行组织。

  3. 显示“视图筛选器”工具窗口(如果尚未显示)。 在工具栏功能区上,选择 “工具窗口”,然后选择 “查看筛选器”。

  4. 若要筛选日志数据以仅显示 400 个范围错误,请将以下筛选条件添加到 “视图筛选器 ”窗口,然后单击“ 应用” :

    (AzureStorageLog.StatusCode >= 400 && AzureStorageLog.StatusCode <=499) || (HTTP.StatusCode >= 400 && HTTP.StatusCode <= 499)

下图显示了此分组和筛选器的结果。 例如,展开状态代码为 409 的分组下面的 ClientRequestID 字段,将显示产生该状态代码的操作。

Azure 存储视图布局

应用此筛选器后,你将看到客户端日志中的行已排除,因为客户端日志不包含 StatusCode 列。 首先,我们将查看服务器和网络跟踪日志以查找 404 错误,然后返回到客户端日志,检查导致错误的客户端作。

注释

如果将表达式添加到包含状态代码为 null 的日志条目的筛选器,则可以筛选 StatusCode 列,并且仍显示来自所有三个日志(包括客户端日志)的数据。 若要构造此筛选器表达式,请使用:

*StatusCode >= 400 or !*StatusCode

此筛选器返回客户端日志中的所有行,仅返回服务器日志和 HTTP 日志中的所有行,其中状态代码大于 400。 如果将它应用于按客户端请求 ID 和模块分组的视图布局,则可以搜索或滚动日志条目,以查找表示所有三个日志的视图布局。

筛选日志数据以查找 404 错误

存储资产包括预定义的筛选器,可用于缩小日志数据范围,以查找要查找的错误或趋势。 接下来,我们将应用两个预定义筛选器:一个用于筛选服务器和网络跟踪日志的 404 错误,另一个筛选指定时间范围内的数据。

  1. 显示“视图筛选器”工具窗口(如果尚未显示)。 在工具栏功能区上,选择 “工具窗口”,然后选择 “查看筛选器”。

  2. 在“视图筛选器”窗口中,选择“ ”,然后搜索 Azure Storage 以查找 Azure 存储筛选器。 选择筛选器以查看所有日志中 404(找不到)消息

  3. 再次显示 “库 ”菜单,找到并选择 “全局时间筛选器”。

  4. 将筛选器中显示的时间戳编辑为要查看的范围。 这有助于缩小要分析的数据范围。

  5. 筛选器应类似于以下示例。 单击“ 应用 ”将筛选器应用到分析网格。

    ((AzureStorageLog.StatusCode == 404 || HTTP.StatusCode == 404)) And (#Timestamp >= 2014-10-20T16:36:38 and #Timestamp <= 2014-10-20T16:36:39)

    Azure 存储视图布局

分析日志数据

对数据进行分组和筛选后,可以检查生成 404 错误的单个请求的详细信息。 在当前视图布局中,数据按客户端请求 ID 和日志源进行分组。 由于我们正在筛选 StatusCode 字段包含 404 的请求,因此我们只能看到服务器和网络跟踪数据,而不是客户端日志数据。

下图显示了一个特定的请求,其中获取 Blob 操作产生了 404,因为 Blob 不存在。 请注意,为了显示相关数据,某些列已从标准视图中删除。

筛选的服务器和网络跟踪日志

接下来,我们将此客户端请求 ID 与客户端日志数据相关联,以查看客户端在发生错误时执行的作。 可以显示此会话的新分析网格视图以查看客户端日志数据,这将在第二个选项卡中打开:

  1. 首先,将 ClientRequestId 字段的值复制到剪贴板。 可以通过选择其中一行、查找 ClientRequestId 字段,右键单击数据值并选择 复制“ClientRequestId”来完成此操作。

  2. 在工具栏功能区上,选择“ 新建查看器”,然后选择 “分析网格 ”以打开新选项卡。新选项卡显示日志文件中的所有数据,无需分组、筛选或颜色规则。

  3. 在工具栏功能区上,选择“视图布局”,然后选择“Azure 存储”部分下的所有 .NET 客户端列。 此视图布局显示客户端日志以及服务器和网络跟踪日志中的数据。 默认情况下,它在 MessageNumber 列上排序。

  4. 接下来,在客户端日志中搜索客户端请求 ID。 在工具栏功能区上,选择“ 查找消息”,然后在 “查找” 字段中指定客户端请求 ID 的自定义筛选器。 将此语法用于筛选器,指定自己的客户端请求 ID:

    *ClientRequestId == "398bac41-7725-484b-8a69-2a9e48fc669a"

消息分析器查找并选择搜索条件与客户端请求 ID 匹配的第一个日志条目。 在客户端日志中,每个客户端请求 ID 都有多个条目,因此你可能希望将它们分组到 ClientRequestId 字段,以便更轻松地一起查看它们。 下图显示了指定客户端请求 ID 的客户端日志中的所有消息。

显示 404 错误的客户端日志

使用这两个选项卡中的视图布局中显示的数据,可以分析请求数据以确定可能导致错误的原因。 还可以查看此事件前面的请求,以查看上一个事件是否可能导致 404 错误。 例如,可以查看此客户端请求 ID 前面的客户端日志条目,以确定 Blob 是否已删除,或者错误是由于客户端应用程序在容器或 Blob 上调用 CreateIfNotExists API 而引起的。 在客户端日志中,可以在 “说明” 字段中找到 Blob 的地址;在服务器和网络跟踪日志中,此信息将显示在 “摘要” 字段中。

知道产生 404 错误的 Blob 的地址后,可以进一步调查。 如果您在日志条目中搜索与同一 Blob 操作相关的其他消息,可以检查客户端之前是否删除了该实体。

分析其他类型的存储错误

熟悉使用 Message Analyzer 分析日志数据后,可以使用视图布局、颜色规则和搜索/筛选来分析其他类型的错误。 下表列出了可能会遇到的一些问题以及可用于查找它们的筛选条件。 有关构造筛选器和消息分析器筛选语言的详细信息,请参阅 筛选消息数据

要调查... 使用筛选表达式… 表达式适用于日志(客户端、服务器、网络、全部)
队列上的消息传递意外延迟 AzureStorageClientDotNetV4.Description 包含“重试失败的操作。” 客户
PercentThrottlingError 中的 HTTP 错误增加 HTTP。Response.StatusCode == 500 ||HTTP。Response.StatusCode == 503 网络
PercentTimeoutError 错误数量增加 HTTP.Response.StatusCode == 500 网络
百分比超时错误增加(全面) *StatusCode == 500 全部
网络错误百分比增加 AzureStorageClientDotNetV4.EventLogEntry.Level < 2 客户
HTTP 403 (禁止)消息 HTTP.Response.StatusCode == 403 网络
HTTP 404 (未找到) 消息 HTTP.Response.StatusCode == 404 网络
404 (全部) *StatusCode == 404 全部
共享访问签名 (SAS) 授权问题 AzureStorageLog.RequestStatus == “SASAuthorizationError” 网络
HTTP 409 (冲突) 消息 HTTP.Response.StatusCode == 409 网络
409 (全部) *StatusCode == 409 全部
低成功率或分析日志条目的事务状态为客户端其他错误的操作 AzureStorageLog.RequestStatus == “ClientOtherError” 服务器
Nagle 警告 ((AzureStorageLog.EndToEndLatencyMS - AzureStorageLog.ServerLatencyMS) > (AzureStorageLog.ServerLatencyMS * 1.5))和 (AzureStorageLog.RequestPacketSize <1460) 和 (AzureStorageLog.EndToEndLatencyMS - AzureStorageLog.ServerLatencyMS >= 200) 服务器
服务器和网络日志中的时间范围 >#Timestamp = 2014-10-20T16:36:38 和 #Timestamp <= 2014-10-20T16:36:39 服务器、网络
服务器日志中的时间范围 AzureStorageLog.Timestamp >= 2014-10-20T16:36:38 和 AzureStorageLog.Timestamp <= 2014-10-20T16:36:39 服务器

后续步骤

有关对 Azure 存储中的端到端方案进行故障排除的详细信息,请参阅以下资源: