问题描述
把应用部署到Azure Container Apps(容器应用),可以在Container App Environemnt级别设置诊断日志,把日志收集到Event Hub / Log Analystic Workspace / Storage Account中。
虽然,这样能把日志导出到目标源中。但在检查日志时候,发现延迟很大,通常要等待7-10分钟才能受到日志,这样在检测问题时候,会带来很大的困难。
问题解答
配置Azure Monitor设置Diagnostic Setting,这种日志收集方案,正是基于Azure Monitor来获取日志,所以,它也遵循Monitor的日志数据引入时间的限制,受到如下因数的影响:
- 代理时间:发现事件、收集事件,然后将其作为日志记录发送到数据收集终结点的时间。 大多数情况下,此过程由代理处理。 网络可能会引入更多延迟。
- 管道时间:引入管道处理日志记录的时间。 在该时段,会解析事件属性,而且可能会添加计算的信息。
- 索引时间:将日志记录引入到 Azure Monitor 大数据存储所花费的时间。
Azure 指标、资源日志、活动日志存在30 秒到 15 分钟的延迟。所以在Container App Environment中,延迟在10分钟左右也是设计使然。不能缩短这里的延迟时间!
查考资料
Azure Monitor 中的日志数据引入时间 : https://docs.azure.cn/zh-cn/azure-monitor/logs/data-ingestion-time