Azure - 为 worker/web 角色启用诊断
Azure - Enable diagnostics for worker/web role
我想在我的 table 存储中记录发生的每个异常 (MVC cloudapp)。
我遵循了 Microsoft 的官方教程,但似乎他们把事情搞得太复杂了。教程可以在这里查看:
https://azure.microsoft.com/sv-se/documentation/articles/cloud-services-dotnet-diagnostics/#how-to-enable-diagnostics-in-a-worker-role
就是默认不支持Azure Diagnostics 1.3,感觉太麻烦了?在为 web/worker 角色配置 window 中有一个更快更容易的选项,让您启用诊断,但仅适用于 1.0?
我只想在我的存储帐户中记录异常,所以 Azure Diagnostics 1.0 应该足够了,不是吗?
我做了什么:
- 通过单击网络和辅助角色配置 window 中的复选框,在我的辅助角色和网络角色中启用诊断。
- 指定存储帐户凭据。
我需要帮助:
我的存储帐户中没有创建 WAD 容器。在我启用并指定存储帐户凭据后,它们不应该被创建吗?
为什么启用 Azure 诊断 1.3 与 1.0 相比如此复杂?
辅助角色诊断和网络角色诊断有什么区别?如果我在 webrole 中有我的应用程序并在工作者角色中缓存..然后它会单独记录吗?如果我想对应用程序和缓存都进行异常日志记录,是否需要同时启用它们?
回答您的问题:
No WAD containers are created in my storage account. Are they not
supposed to be created after I have enabled and specified the storage
account credentials?
如果您正在寻找 wad-control-container
,则不会创建它。但是,如果您在诊断配置中启用了 IIS 日志、失败请求日志和故障转储,您应该会看到这些容器。
Why is it so complicated to enable Azure diagnostics 1.3 compared to
1.0?
本质上诊断模型已经改变。 1.0版是插件模型,1.3版是扩展模型(他们引入1.2版时从SDK 2.5改变而来)。复杂不复杂,我觉得值得商榷。虽然 1.0 版本相当简单并且具有一些功能,例如在代码中定义诊断配置,但我认为 1.3 是朝着正确方向迈出的一步。一开始我也对它感到沮丧,但现在我越来越多地使用它,意识到它提供的好处。一些吸引我的好处是:
- 纯 decalarative 模型而不是混合模型(Programmatic + Decalarative)。
- 为您的云服务和虚拟机收集诊断数据的统一方法(目前仅 Windows)。
- 能够enable/disable 即时诊断配置,因为它现在是一个扩展模型。
- 支持 ETW 日志。
1.3 中我不喜欢的一些东西:
- 如果不通过 Visual Studio 进行部署,部署过程会相当复杂。
- 有限的工具支持。您可用的选项只有 Visual Studio 或 PowerShell。目前,Portal(当前和预览版)不支持它。
- 已弃用
On-Demand Transfer
功能。我们经常使用此功能,但现在已弃用,因为它依赖于基于代码的诊断更改。
What's the difference between worker role diagnostics and web role
diagnostics?
据我所知,两者之间没有区别。这完全取决于您要为每个角色收集哪些诊断数据。
If I had my app in webrole and caching in worker role. Is it then
logged individually?
好吧,是的,也不是。每个角色都有自己的 diagnostics.wadcfgx
文件,您可以在其中定义用于存储诊断数据的存储帐户。如果您在每个角色的 wadcfgx
文件中定义不同的存储帐户,则数据将进入单独的存储帐户。即使您保留相同的存储帐户,数据也会有 role name
和 role instance name
,以便您可以区分不同的诊断数据。
Do I need to enable them both if I want exception logging for both app
and caching?
是的。您需要同时启用它们。
有一个 simple PowerShell script on GitHub to enable WAD on either a Cloud Service (Web/Worker Role) or a VM with zero hassle. At the same time it will also configure WAD to send your logs to Visual Studio Application Insights让你可以高效的搜索和查询。
我想在我的 table 存储中记录发生的每个异常 (MVC cloudapp)。
我遵循了 Microsoft 的官方教程,但似乎他们把事情搞得太复杂了。教程可以在这里查看: https://azure.microsoft.com/sv-se/documentation/articles/cloud-services-dotnet-diagnostics/#how-to-enable-diagnostics-in-a-worker-role
就是默认不支持Azure Diagnostics 1.3,感觉太麻烦了?在为 web/worker 角色配置 window 中有一个更快更容易的选项,让您启用诊断,但仅适用于 1.0?
我只想在我的存储帐户中记录异常,所以 Azure Diagnostics 1.0 应该足够了,不是吗?
我做了什么:
- 通过单击网络和辅助角色配置 window 中的复选框,在我的辅助角色和网络角色中启用诊断。
- 指定存储帐户凭据。
我需要帮助:
我的存储帐户中没有创建 WAD 容器。在我启用并指定存储帐户凭据后,它们不应该被创建吗?
为什么启用 Azure 诊断 1.3 与 1.0 相比如此复杂?
辅助角色诊断和网络角色诊断有什么区别?如果我在 webrole 中有我的应用程序并在工作者角色中缓存..然后它会单独记录吗?如果我想对应用程序和缓存都进行异常日志记录,是否需要同时启用它们?
回答您的问题:
No WAD containers are created in my storage account. Are they not supposed to be created after I have enabled and specified the storage account credentials?
如果您正在寻找 wad-control-container
,则不会创建它。但是,如果您在诊断配置中启用了 IIS 日志、失败请求日志和故障转储,您应该会看到这些容器。
Why is it so complicated to enable Azure diagnostics 1.3 compared to 1.0?
本质上诊断模型已经改变。 1.0版是插件模型,1.3版是扩展模型(他们引入1.2版时从SDK 2.5改变而来)。复杂不复杂,我觉得值得商榷。虽然 1.0 版本相当简单并且具有一些功能,例如在代码中定义诊断配置,但我认为 1.3 是朝着正确方向迈出的一步。一开始我也对它感到沮丧,但现在我越来越多地使用它,意识到它提供的好处。一些吸引我的好处是:
- 纯 decalarative 模型而不是混合模型(Programmatic + Decalarative)。
- 为您的云服务和虚拟机收集诊断数据的统一方法(目前仅 Windows)。
- 能够enable/disable 即时诊断配置,因为它现在是一个扩展模型。
- 支持 ETW 日志。
1.3 中我不喜欢的一些东西:
- 如果不通过 Visual Studio 进行部署,部署过程会相当复杂。
- 有限的工具支持。您可用的选项只有 Visual Studio 或 PowerShell。目前,Portal(当前和预览版)不支持它。
- 已弃用
On-Demand Transfer
功能。我们经常使用此功能,但现在已弃用,因为它依赖于基于代码的诊断更改。
What's the difference between worker role diagnostics and web role diagnostics?
据我所知,两者之间没有区别。这完全取决于您要为每个角色收集哪些诊断数据。
If I had my app in webrole and caching in worker role. Is it then logged individually?
好吧,是的,也不是。每个角色都有自己的 diagnostics.wadcfgx
文件,您可以在其中定义用于存储诊断数据的存储帐户。如果您在每个角色的 wadcfgx
文件中定义不同的存储帐户,则数据将进入单独的存储帐户。即使您保留相同的存储帐户,数据也会有 role name
和 role instance name
,以便您可以区分不同的诊断数据。
Do I need to enable them both if I want exception logging for both app and caching?
是的。您需要同时启用它们。
有一个 simple PowerShell script on GitHub to enable WAD on either a Cloud Service (Web/Worker Role) or a VM with zero hassle. At the same time it will also configure WAD to send your logs to Visual Studio Application Insights让你可以高效的搜索和查询。