如何减少Logic Apps Standard跟踪量 解决host.json配置不生效问题
Logic Apps Standard 对接 Application Insights 冗余跟踪日志解决方案
你配置的host.json不生效、存储相关跟踪日志过多,主要是三个原因导致:配置节点位置错误、未覆盖Logic Apps和存储服务专属日志类别、门户配置覆盖了本地host.json设置,可行的解决步骤如下:
- 首先确认
host.json配置结构正确,logLevel节点必须放在logging根节点下,不能直接放在host.json根目录。你之前只配置了Host.Results远远不够,需要针对Logic Apps运行时、Azure存储组件单独配置日志等级,参考完整配置如下:
{ "version": "2.0", "logging": { "logLevel": { "default": "Information", "Host.Results": "Error", // 过滤Logic Apps运行时底层冗余跟踪 "Microsoft.Azure.Workflows.Runtime": "Warning", "Microsoft.Azure.Workflows.LogTracking": "Error", "Microsoft.Azure.Workflows.Worker": "Warning", // 过滤存储账户交互产生的明细跟踪日志 "Azure.Storage.Blobs": "Warning", "Azure.Storage.Queues": "Warning", "Azure.Storage.Tables": "Warning", "Azure.Core": "Warning" }, "applicationInsights": { "samplingSettings": { "isEnabled": true, // 根据业务负载调整每秒最大采集遥测项数,高负载场景可降低该值 "maxTelemetryItemsPerSecond": 5, // 异常类日志不做采样,全部保留 "excludedTypes": "Exception" } } } }
- 检查Azure门户上的应用设置是否覆盖host.json配置。部署到Azure的Logic Apps Standard配置优先级为:应用程序设置 > host.json > 默认配置,进入Logic Apps实例的「配置」-「应用程序设置」页,查找
AzureFunctionsJobHost__logging__logLevel__前缀的配置项,这类配置会直接覆盖host.json中对应类别的日志等级,不需要的配置直接删除即可,也可以直接在应用设置中配置对应日志等级,效果和修改host.json一致。 - 关闭Logic Apps工作流自带的冗余跟踪开关。进入对应工作流的「工作流设置」页,找到诊断设置相关选项,关闭「运行时事件详细跟踪」「存储操作明细跟踪」开关,这部分是底层存储读写日志的主要来源,关闭后不会影响工作流触发、运行状态、失败告警等核心日志的采集,只会过滤掉无排查价值的底层交互明细。
- 配置修改完成后必须重启Logic Apps实例,新的日志配置才会被加载,未重启的情况下修改的host.json不会生效。
- 如果上述操作后仍有少量不需要的存储类跟踪日志,可以通过自定义遥测处理器,在日志发送到Application Insights之前,本地过滤掉操作名包含存储操作关键字、等级为Information/Verbose的遥测项,从源头减少数据摄入。
内容的提问来源于stack exchange,提问作者David GROSPELIER
相关产品推荐
相关产品推荐

