如何在Application Insights中屏蔽Service Bus超时TRACE日志节省配额
如何在Application Insights中屏蔽Service Bus特定TRACE日志
针对你提到的「No messages received from 'com--topic/subscriptions/com--subscription'. Pending receive request timed out」这条每日消耗配额的TRACE日志,可以通过**采样覆盖(Sampling Overrides)**精准过滤,以下是具体配置方案:
核心配置方案
在你的applicationinsights.json配置文件中,找到sampling节点,在overrides数组中添加一条针对该日志的过滤规则,将采样比例设为0即可完全屏蔽:
{ "connectionString": "YOUR_CONNECTION_STRING", "sampling": { "percentage": 100, "overrides": [ // 保留你已有的actuator相关规则 { "telemetryType": "log", "filter": "loggerName == 'org.springframework.boot.actuate' AND severityLevel == 'TRACE'", "samplingPercentage": 0 }, // 新增Service Bus日志屏蔽规则 { "telemetryType": "log", "filter": "severityLevel == 'TRACE' AND message contains 'No messages received from' AND message contains 'Pending receive request timed out'", "samplingPercentage": 0 } ] } }
优化匹配精度(可选)
如果能确定这条日志的Logger名称(通常是com.azure.messaging.servicebus.ServiceBusReceiverAsyncClient或相关类),可以在filter中增加Logger名称匹配,进一步避免误过滤:
{ "telemetryType": "log", "filter": "severityLevel == 'TRACE' AND loggerName == 'com.azure.messaging.servicebus.ServiceBusReceiverAsyncClient' AND message contains 'No messages received from' AND message contains 'Pending receive request timed out'", "samplingPercentage": 0 }
配置说明
telemetryType: 指定针对日志类型的遥测进行过滤filter: 通过日志级别、内容、Logger名称的组合条件精准匹配目标日志samplingPercentage: 0: 表示完全不采集符合条件的日志,直接屏蔽
参考依据
- 官方文档明确支持通过采样覆盖规则,针对特定属性、内容的遥测设置自定义采样策略,实现精准过滤
- 社区案例也验证了该方案可有效解决Service Bus这类接收超时日志的配额消耗问题
内容的提问来源于stack exchange,提问作者Vizz
相关产品推荐
相关产品推荐

