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

无需Azure监控工具 用Prometheus&Grafana监控Azure App Service

Azure App Service 与 Prometheus 直接集成落地方案

完全可以实现,不需要在App Service实例上手动安装Prometheus agent,也不需要走Application Insights、Azure Monitor这类原生监控链路,以下是经过生产验证的可行路径:

方案1:应用内嵌Prometheus指标端点(优先推荐,链路最短)

这是最直接、开销最低的方案,完全适配PaaS场景的限制:

  • 给你的业务应用集成对应技术栈的Prometheus客户端SDK,在应用内开放标准的/metrics HTTP端点,直接输出运行时指标、自定义业务指标
  • 不需要对App Service做任何底层修改,只要保证/metrics路由能被正常访问即可:你可以给这个端点配置独立的鉴权逻辑,比如加IP白名单只允许你的Prometheus服务IP访问、或者加固定API Key做校验,避免指标端点公网暴露
  • Prometheus侧直接在scrape_configs里配置App Service的访问地址+/metrics路径,就能完成拉取
  • 多实例部署注意:如果App Service开了多副本,先关闭ARR粘性会话配置,拉取时带上X-ARR-INSTANCEID请求头指定访问具体实例,避免所有拉取请求被负载均衡转发到单台实例,导致指标漏采。

这个方案能覆盖的指标包括:应用运行时指标(GC情况、内存占用、线程数、进程CPU占比)、业务自定义指标(接口耗时、设备在线状态、业务处理成功率)、Web服务层面指标(请求量、错误码分布、响应延迟)。

方案2:自定义站点扩展部署轻量Exporter(适合无法修改业务代码的场景)

如果你部署的是第三方打包的应用,没法改代码加/metrics端点,可以用App Service的自定义站点扩展能力实现采集:

  • 自己打包一个轻量的指标采集Exporter,做成App Service自定义站点扩展包,上传到你的App Service启用即可
  • 这个扩展会随App Service实例一同启动,运行在和业务应用同一个沙箱环境里,可以直接读取App Service本地诊断管道暴露的实例运行数据(CPU、内存、磁盘IO、网络流量、站点请求统计),对外暴露标准Prometheus指标端点
  • 全程不需要修改业务代码,也不需要把任何监控数据上传到Azure的监控服务,Prometheus直接拉取扩展暴露的/metrics端点即可。

如果觉得做自定义扩展麻烦,也可以开启App Service的日志输出到同VNet下你自己可控的采集服务,在采集服务里部署prometheus-pushgateway,把日志解析后转换成Prometheus指标格式供Prometheus拉取,只是这种方式的指标精度、实时性比直接读本地诊断管道稍差。

方案3:内网传输安全配置(适合高安全要求场景)

如果你的Prometheus部署在内网,不希望指标走公网传输,可以开启App Service的VNet集成能力,把App Service接入和Prometheus相同的虚拟网络,同时配置App Service的访问限制规则,只放行VNet内Prometheus服务的访问请求,全程指标走内网链路,不需要暴露公网端点,也不会经过Azure原生监控的中转链路。

注意:如果需要采集App Service平台侧管控的事件类数据(比如平台触发的实例重启、平台侧的部署失败记录、硬件故障迁移记录),这类数据不会暴露到应用运行的沙箱环境内,如果完全绕过Azure原生监控链路是无法直接获取的,这类事件可以通过在应用内加健康检查逻辑主动上报到Prometheus,不需要依赖平台侧数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 10:00:54