Prometheus 监控 APISIX 全栈实战:云原生 API 网关的透明化可观测性
Prometheus 监控 APISIX 全栈实战云原生 API 网关的透明化可观测性Apache APISIX 作为云原生 API 网关的佼佼者凭借其动态路由、插件热插拔和高性能支撑着无数微服务集群的流量入口。它的请求吞吐量、上游健康状态、响应延迟分布、etcd 连接可靠性以及插件执行效率直接决定了业务 API 的可用性与用户体验。从 APISIX 2.0 版本开始内置的 prometheus 插件就可将核心指标以 Prometheus 标准格式暴露无需额外部署 Exporter。本文将带你从启用插件、配置抓取到解读关键指标、搭建 Grafana 大屏和落地告警规则彻底透视 APISIX 网关的每一个细节。1. 为什么选择 APISIX 原生 Prometheus 插件零侵入插件内置通过 Admin API 或声明式配置即可全局启用无需重启。指标丰富涵盖 HTTP 请求、连接数、带宽、上游状态、etcd 健康、插件调用统计等。高性能基于内置的prometheus插件采集对数据平面转发性能影响微乎其微。多协议支持同时监控 HTTP 和 gRPC 流量。生态兼容完美对接 Prometheus Operator、Grafana 社区仪表盘。2. 启用 Prometheus 插件2.1 全局启用推荐通过 APISIX Admin API默认http://127.0.0.1:9180/apisix/admin全局启用使所有服务和路由的指标统一收集。curlhttp://127.0.0.1:9180/apisix/admin/global_rules/1-XPUT\-HX-API-KEY: edd1c9f034335f136f87ad84b625c8f1\-d{ plugins: { prometheus: { prefer_name: true } } }参数prefer_name设为true时指标标签中会使用路由和服务的名称而非 ID更易读。2.2 在特定路由上启用如果只需监控特定接口可针对单个路由启用curlhttp://127.0.0.1:9180/apisix/admin/routes/1-XPATCH\-HX-API-KEY: ...\-d{ plugins: { prometheus: {} } }2.3 验证端点APISIX 默认在数据平面端口 9091上暴露/apisix/prometheus/metricsAPISIX 2.7 开始。在配置文件中确认plugin_attr.prometheus的export_addr# conf/config.yamlplugin_attr:prometheus:export_addr:ip:0.0.0.0port:9091重启 APISIX 后访问curlhttp://localhost:9091/apisix/prometheus/metrics你将看到apisix_http_requests_total、apisix_bandwidth、apisix_etcd_modify_index等指标。注意早期版本可能直接在127.0.0.1:9091/metrics或通过数据面端口提供具体以版本为准。本文以 3.x 版本默认路径/apisix/prometheus/metrics为准。3. 配置 Prometheus 抓取3.1 静态配置scrape_configs:-job_name:apisixscrape_interval:15smetrics_path:/apisix/prometheus/metricsstatic_configs:-targets:[apisix-node1:9091,apisix-node2:9091]labels:cluster:prodcomponent:gateway3.2 Kubernetes 环境自动发现如果 APISIX 部署在 K8s 中使用 PodMonitorapiVersion:monitoring.coreos.com/v1kind:PodMonitormetadata:name:apisixspec:selector:matchLabels:app.kubernetes.io/name:apisixpodMetricsEndpoints:-port:prometheuspath:/apisix/prometheus/metricsinterval:15s需确保 APISIX Pod 暴露了名为prometheus的容器端口对应 9091。4. 核心监控指标与 PromQLAPISIX 的 Prometheus 插件暴露的指标以apisix_为前缀标签包括route、service、consumer、node、status等。4.1 HTTP 请求与状态码指标含义apisix_http_requests_totalHTTP 请求总数Counter按route、service、consumer、status分组apisix_http_status各状态码的请求数与上类似视版本可能合并PromQL 示例整体 QPSsum(rate(apisix_http_requests_total[1m]))5xx 错误率sum(rate(apisix_http_requests_total{status~5..}[5m])) / sum(rate(apisix_http_requests_total[5m]))某个路由的 QPSrate(apisix_http_requests_total{routemy-route}[1m])4.2 延迟指标含义apisix_http_latency(Histogram)APISIX 处理延迟从接收到请求到转发给上游的时间apisix_upstream_latency(Histogram)上游服务响应时间PromQLAPISIX 处理延迟 P95histogram_quantile(0.95, rate(apisix_http_latency_bucket[5m]))上游延迟 P99histogram_quantile(0.99, rate(apisix_upstream_latency_bucket[5m]))4.3 带宽指标含义apisix_bandwidth(Counter)入口和出口流量字节数标签type为ingress或egressPromQL入口流量字节/秒rate(apisix_bandwidth{typeingress}[1m])出口流量rate(apisix_bandwidth{typeegress}[1m])4.4 连接数指标含义apisix_nginx_http_current_connections当前 HTTP 连接数包含 reading、writing、waiting类似 Nginx 连接状态。告警apisix_nginx_http_current_connections{statewriting} 100004.5 上游健康与状态指标含义apisix_upstream_status上游健康检查状态1健康0不健康按upstream标签apisix_node_info节点信息主机名、版本等告警上游不健康apisix_upstream_status{upstreambackend-api} 04.6 etcd 连接与同步指标含义apisix_etcd_modify_indexetcd 修改索引反映配置变更频率apisix_etcd_reachableetcd 是否可达1连通0断开PromQLetcd 断连apisix_etcd_reachable 0立即告警配置变更速率rate(apisix_etcd_modify_index[5m])4.7 插件调用统计指标含义apisix_plugin_metrics特定插件如limit-count、prometheus本身的执行计数和延迟可据此分析限流、认证等插件的性能影响。5. Grafana 仪表盘推荐APISIX Official DashboardDashboard ID11719Apache APISIX 社区官方仪表盘完美适配 APISIX 2.x/3.x 的 Prometheus 指标涵盖 QPS、延迟、带宽、上游状态、etcd 健康等。APISIX Ingress Controller若在 Kubernetes 中使用可导入 ID14403。自定义业务视图基于route或service标签创建 QPS 排行、错误率热力、延迟分位数面板。导入后选择数据源通过cluster或instance变量区分不同 APISIX 集群。6. 告警规则实战groups:-name:apisix_alertsrules:-alert:APISIXNodeDownexpr:up{jobapisix} 0for:1mlabels:severity:criticalannotations:summary:APISIX 节点 {{ $labels.instance }} 指标端点不可达-alert:APISIXEtcdDisconnectedexpr:apisix_etcd_reachable 0for:1mlabels:severity:criticalannotations:summary:APISIX 与 etcd 失去连接配置可能无法生效-alert:APISIXHigh5xxRateexpr:sum(rate(apisix_http_requests_total{status~5..}[5m])) by (instance) / sum(rate(apisix_http_requests_total[5m])) by (instance)0.01for:5mlabels:severity:criticalannotations:summary:APISIX 节点 {{ $labels.instance }} 5xx 错误率超过 1%-alert:APISIXUpstreamUnhealthyexpr:apisix_upstream_status 0for:2mlabels:severity:criticalannotations:summary:上游服务 {{ $labels.upstream }} 健康检查失败-alert:APISIXHighUpstreamLatencyexpr:histogram_quantile(0.99,rate(apisix_upstream_latency_bucket[5m]))2for:5mlabels:severity:warningannotations:summary:上游服务 P99 延迟超过 2 秒-alert:APISIXHighConnectionsexpr:apisix_nginx_http_current_connections{statewriting}10000for:5mlabels:severity:warningannotations:summary:APISIX 正在写响应的连接数超过 10000可能过载-alert:APISIXBandwidthSaturationexpr:rate(apisix_bandwidth{typeingress}[5m]) * 8 / 1e90.8for:10mlabels:severity:warningannotations:summary:入口带宽使用率接近物理网卡上限根据实际硬件和流量调整阈值。7. 进阶多节点、安全与自定义指标7.1 监控多个 APISIX 节点每个节点独立暴露指标端点Prometheus 中使用文件服务发现或 Kubernetes Pod 注解自动添加。使用标签instance或node区分。Grafana 中可通过变量切换或聚合。7.2 安全加固指标端口保护9091 端口仅监听内网 IP (export_addr设为127.0.0.1或内网 IP)或使用防火墙限制。认证APISIX 指标端点本身无鉴权建议通过 Nginx/Caddy 反向代理添加 Basic Auth然后 Prometheus 配置basic_auth。Admin API 隔离永远不要将 Admin API (9180) 暴露到公网。7.3 自定义业务指标APISIX 支持通过serverless插件或自定义 Lua 插件向prometheus模块注册新指标。例如统计特定 API 的调用次数localprometheusrequire(apisix.plugins.prometheus)prometheus.define_metric(custom_api_calls,counter,API calls,{api_name})-- 在逻辑中prometheus.inc(custom_api_calls,{login})这些自定义指标会同样暴露在/apisix/prometheus/metrics端点。7.4 结合日志与追踪当告警触发时可联动 APISIX 的访问日志写入 Kafka/Loki和 SkyWalking/Zipkin 追踪快速定位错误原因。Prometheus 负责发现问题日志和追踪负责诊断问题。8. 总结通过 APISIX 内置的 Prometheus 插件云原生 API 网关的每一个请求、每一字节带宽、每一次上游健康检查和 etcd 同步状态都转化为可查询、可告警的时序数据。结合 Grafana 仪表盘和 Alertmanager 的及时通知你可以在网关 5xx 错误率攀升、上游服务宕机或 etcd 断连时第一时间响应。将 APISIX 的可观测性无缝纳入全栈监控体系意味着从网关到后端微服务整个流量生命周期的透明化已经完成。部署它让 APISIX 不仅是高性能的流量入口更是完全可观测的云原生网关基石。

相关新闻

你的“可编辑安装”为何总在“偷”错代码?——Python pip install -e . 的隐形陷阱与完美配置术

你的“可编辑安装”为何总在“偷”错代码?——Python pip install -e . 的隐形陷阱与完美配置术

你的“可编辑安装”为何总在“偷”错代码?——Python pip install -e . 的隐形陷阱与完美配置术 在 Python 开发中,pip install -e . 是令无数开发者爱恨交加的命令。它让你无需反复打包安装就能实时测试源码修改,仿佛为项目插上了“热更新”…

2026/8/10 11:06:18 阅读更多 →
2024年网站建设谈单技巧揭秘:从初次沟通到成功签单的实战指南

2024年网站建设谈单技巧揭秘:从初次沟通到成功签单的实战指南

做网站建设这一行,大家都懂,技术是敲门砖,但能不能把钱真正装进自己口袋里,靠的往往不是代码写得有多漂亮,而是“谈单”这个环节能不能打通。很多同行抱怨现在的客户难搞,预算低、要求高、还特别爱比价,这确实是真的。但是,如果你换个角度想,为什么有些公司总能轻松拿…

2026/8/10 10:27:37 阅读更多 →
微信数据备份:如何在合规前提下保护你的数字记忆

微信数据备份:如何在合规前提下保护你的数字记忆

微信数据备份:如何在合规前提下保护你的数字记忆 【免费下载链接】PyWxDump 删库 项目地址: https://gitcode.com/GitHub_Trending/py/PyWxDump 还在为微信聊天记录丢失而焦虑吗?想备份重要对话却担心技术门槛太高?本文将带你了解微信…

2026/8/10 10:27:37 阅读更多 →

最新新闻

Node.js流处理性能优化:through库的最佳实践

Node.js流处理性能优化:through库的最佳实践

Node.js流处理性能优化:through库的最佳实践 【免费下载链接】through simple way to create a ReadableWritable stream that works 项目地址: https://gitcode.com/gh_mirrors/th/through 在Node.js开发中,流(Stream)是处…

2026/8/10 19:32:08 阅读更多 →
openai-polisher插件高级用法:自定义提示词与多语言润色技巧

openai-polisher插件高级用法:自定义提示词与多语言润色技巧

openai-polisher插件高级用法:自定义提示词与多语言润色技巧 【免费下载链接】bob-plugin-openai-polisher 使用 OpenAI API 给文本进行润色和语法纠错的 Bob 插件!完美代替 Grammarly!Licensed under CC BY-NC-SA 4.0 项目地址: https://g…

2026/8/10 19:32:08 阅读更多 →
kiswitch完全指南:打造专业键盘PCB的终极KiCad元件库

kiswitch完全指南:打造专业键盘PCB的终极KiCad元件库

kiswitch完全指南:打造专业键盘PCB的终极KiCad元件库 【免费下载链接】kiswitch Footprints for popular keyboard switches 项目地址: https://gitcode.com/gh_mirrors/ki/kiswitch kiswitch是一个专为键盘PCB设计打造的KiCad元件库,提供了各种流…

2026/8/10 19:32:08 阅读更多 →
AWS/Azure/GCP三大云平台面试题精编:DevOps Interview Guide深度剖析

AWS/Azure/GCP三大云平台面试题精编:DevOps Interview Guide深度剖析

AWS/Azure/GCP三大云平台面试题精编:DevOps Interview Guide深度剖析 【免费下载链接】DevOps-Interview-Guide DevOps Interview Guide 项目地址: https://gitcode.com/GitHub_Trending/de/DevOps-Interview-Guide 在竞争激烈的DevOps和云服务领域&#xf…

2026/8/10 19:32:08 阅读更多 →
怎样轻松配置RPCS3模拟器:实用完整指南让PS3游戏在PC上完美运行

怎样轻松配置RPCS3模拟器:实用完整指南让PS3游戏在PC上完美运行

怎样轻松配置RPCS3模拟器:实用完整指南让PS3游戏在PC上完美运行 【免费下载链接】rpcs3 PlayStation 3 emulator and debugger 项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3 RPCS3是全球领先的免费开源PS3模拟器,让你能够在Windows、…

2026/8/10 19:32:07 阅读更多 →
怎么远程操作另一台手机 怎么远程控制别人的手机

怎么远程操作另一台手机 怎么远程控制别人的手机

不少人需要远程协助亲友调试手机,或是代管备用设备,常常会思考怎么远程操作另一台手机,可是很多工具要么收费高昂要么连接不稳。如果还不知道怎么远程操作另一台手机,不妨了解一下无界趣连2.0,它连接步骤简洁&#xff…

2026/8/10 19:31:07 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/10 1:05:29 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 1:05:29 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/10 1:05:29 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/10 1:05:29 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →