当Azure辅助角色停止时(由于未处理的异常或由于Run()完成),尚未传输的本地诊断信息会发生什么情况? Microsoft documentation说,诊断信息会按计划的时间间隔或按需转移到存储中,这两种方法都无法覆盖未处理的异常。这是否意味着在这种情况下始终会丢失诊断信息?这似乎特别奇怪,因为故障转储是诊断数据的一部分(默认情况下在DiagnosticMonitorConfiguration.Directories中设置)。那么,如何才能恢复崩溃转储(与this question相关)?
对我来说,如果角色终止时也转移诊断信息,这将是合乎逻辑的,但这不是我的经验。
最佳答案
这取决于您所说的“角色停止”。 SDK 1.3和更高版本中的诊断监视器被实现为与RoleEntryPoint无关的后台任务。因此,如果您表示RoleEntryPoint报告自己不健康或类似问题,则DiagnosticMonitor(DM)仍将保持响应状态,并将根据您设置的配置发送数据。
但是,如果您表示角色停止是按比例缩小操作(关闭VM),则否,则磁盘上没有刷新数据。届时,VM将关闭,DM随之关闭。尚未冲洗(转移)的所有东西都可以视为丢失。
如果仅重新引导VM,则从理论上讲,您将重新连接到保存缓冲的诊断数据的相同资源VHD,这样您就不会丢失它,它将在下一次请求时进行传输。我非常确定已启用粘性存储,因此重启后不会清除它。
HTH。
关于azure - 角色停止后,Azure诊断信息会如何处理?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5739950/