Application Insights服务故障对Azure Functions的影响及日志留存问题
Application Insights故障对Azure Functions的影响及日志留存问题解答
对Azure Functions运行的影响
- 未修改默认遥测配置的前提下,Application Insights服务故障完全不会影响Azure Functions的核心执行逻辑,函数实例可以正常接收触发请求、运行业务代码、返回响应,不会因为遥测上报失败出现执行中断、实例崩溃的问题。
- 底层逻辑是Azure Functions运行时和遥测上报模块完全解耦,遥测数据上报为异步非阻塞流程,上报失败只会触发内部重试逻辑,不会占用业务执行的线程资源,也不会抛出异常中断业务运行,完全符合你预期的「实例可正常持续运行」的要求。
- 唯一可感知的影响仅为故障期间你暂时无法在Application Insights控制台查看函数的运行日志、性能指标、调用链等遥测数据,函数本身的业务可用性不受任何影响。
故障期间的日志留存情况
- 故障半小时后恢复的场景下,故障期间产生的日志不会全部丢失,Azure Functions的遥测模块默认会在本地做临时缓存:
- 运行在弹性消费计划/高级计划的函数实例,默认会在实例本地磁盘缓存最多50MB的遥测数据,会按照指数退避策略尝试重新上报给Application Insights服务,只要故障恢复时间不超过实例的生命周期,缓存的日志都会被重新上报。
- 运行在专用(App Service)计划的函数实例,本地缓存空间更大,只要实例没有被重启,故障时间在24小时以内的遥测数据基本都可以在服务恢复后完成补报。
- 只有两种极端场景下会出现部分日志丢失:
- 故障时间过长,超出了实例本地缓存的容量上限,新产生的日志会覆盖最早的缓存日志
- 故障期间函数实例因为触发缩容、重启、版本更新等操作被销毁,实例本地缓存的未上报日志会随实例销毁丢失
提示:如果对日志可靠性要求极高,可以额外配置Azure Functions把日志同时输出到Blob存储/事件中心做持久化备份,避免极端场景下的日志丢失。
内容的提问来源于stack exchange,提问作者Syed Sajid Hussain
相关产品推荐
相关产品推荐

