azure - 当角色停止时,Azure 诊断信息会发生什么情况?

标签 azure

当 Azure 辅助角色停止时(由于未处理的异常或 Run() 完成),尚未传输的本地诊断信息会发生什么情况? Microsoft documentation表示诊断信息会按计划的时间间隔或按需传输到存储中,这两种方法都不能涵盖未处理的异常。这是否意味着在这种情况下诊断信息总是丢失?这看起来特别奇怪,因为故障转储是诊断数据的一部分(默认在 DiagnosticMonitorConfiguration.Directories 中设置)。那么如何才能恢复故障转储(与 this question 相关)?

对我来说,如果角色终止时诊断也被转移,这是合乎逻辑的,但这不是我的经验。

最佳答案

这取决于您所说的“角色停止”的含义。 SDK 1.3 及更高版本中的诊断监视器作为后台任务实现,不依赖于 RoleEntryPoint。因此,如果您的意思是您的 RoleEntryPoint 报告自身不健康或类似情况,那么您的 DiagnosticMonitor (DM) 仍将响应并根据您设置的配置发送数据。

但是,如果您的意思是角色停止是缩减操作(关闭虚拟机),那么不会,磁盘上的数据不会刷新。此时,VM 已关闭,DM 也随之关闭。任何尚未刷新(传输)的内容都可以被视为丢失。

如果您只是重新启动虚拟机,那么理论上您将连接回保存缓冲诊断数据的同一资源 VHD,这样您就不会丢失它,它将在下一个请求时进行传输。我很确定它启用了粘性存储,因此它不会在重新启动时被清除。

HTH。

关于azure - 当角色停止时,Azure 诊断信息会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5739950/

相关文章:

Azure CORS 变量允许的来源

apache - 在 Azure 虚拟机上托管网站

Azure Key Vault - 如何更新 secret

python - Azure Functions 可以用 Python 编写吗?

Azure Redis 缓存 + Azure 上的 WordPress

azure - Azure CDN 和同一数据中心内的托管应用程序之间是否收费?

azure - SitecoreContext 和 Azure 索引

c# - 我可以在我的 asp.net mvc 站点触发的特定日期运行一次 Azure 函数吗?

azure - Docker 容器的 Web 应用程序已启动但也超时

Azure Boards,如何使用每个工作项类型?