You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure中以低于1分钟粒度监控容器应用副本数与请求量?

问题:Azure Container App 亚分钟级监控入站请求数与副本数

我正为小型论文分析不同无服务器服务的扩缩容行为,已创建Azure Container App并基于HTTP规则配置扩缩容策略,同时使用Artillery搭建了负载测试场景。目前希望以低于1分钟的粒度监控入站请求数和副本数(Azure默认指标粒度为1分钟),请问能否通过Log Analytics或其他途径实现该需求?

已完成的操作:

  • 检查Azure门户提供的指标
  • 浏览Log Analytics站点

可行方案

1. 通过Log Analytics实现亚分钟级监控

Azure Container Apps支持将日志转发到Log Analytics工作区,日志粒度可达到亚分钟级(具体取决于应用自身的日志输出频率)。

  • 入站请求数:需在容器应用中配置自定义日志,将每一条HTTP请求的时间戳、请求路径等关键信息输出到标准输出/错误流,Container Apps会自动把这些日志同步到Log Analytics。之后用Kusto查询语言(KQL)按秒级或更细粒度聚合请求数,示例查询:
    ContainerAppConsoleLogs
    | where ContainerAppName == "<你的容器应用名称>"
    | where LogEntry matches regex @"HTTP/1.1 \d{3}" // 根据实际请求日志特征调整匹配规则
    | summarize RequestCount = count() by bin(TimeGenerated, 10s) // 按10秒粒度聚合统计
    | sort by TimeGenerated asc
    
  • 副本数:Container Apps的控制平面会把副本缩放事件记录到ContainerAppSystemLogs表中,可通过KQL查询亚分钟级的副本数变化:
    ContainerAppSystemLogs
    | where ContainerAppName == "<你的容器应用名称>"
    | where LogEntry contains "Replica count changed" // 匹配缩放日志关键词(根据实际日志调整)
    | project TimeGenerated, ReplicaCount = toint(extract(@"to (\d+)", 1, LogEntry))
    | sort by TimeGenerated asc
    

前提:需确保容器应用已开启日志转发到Log Analytics工作区,可在Container Apps的「监控」->「日志」页面完成关联配置。

2. 自定义指标采集(备选方案)

若Log Analytics的日志聚合方式无法满足需求,还可通过以下方式实现亚分钟级指标采集:

  • Azure Monitor自定义指标:在容器应用中集成Azure Monitor SDK,实时获取请求数(通过应用内统计)和副本数(调用Container Apps管理API获取),并以亚分钟级频率上报为自定义指标。自定义指标默认支持1分钟粒度,但高频上报后可在查询时按更细粒度聚合。
  • Prometheus+Grafana集成:让容器应用暴露Prometheus兼容的metrics端点,配置Prometheus以秒级频率抓取指标,再通过Grafana搭建可视化面板,实现秒级粒度的请求数和副本数监控。

内容的提问来源于stack exchange,提问作者mboehler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 13:52:50