Monitoring and alerting
Monitor API7 and APISIX Ingress Controller health and performance, and configure alerts for common failure modes.
Applies to:API7 Ingress Controller (drives API7 Gateway)APISIX Ingress Controller (drives Apache APISIX)
Both the Ingress Controller and the gateway it manages expose metrics. This guide describes how to scrape them and which signals to alert on.
What to scrape
Ingress Controller metrics
The controller exposes a metrics endpoint on port 8080 by default. The exact path and metric names are not published here; read them from the running pod:
kubectl port-forward -n aic deploy/api7-ingress-controller 8080:8080
# or for APISIX Ingress Controller
# kubectl port-forward -n apisix deploy/apisix-ingress-controller 8080:8080
curl -s http://localhost:8080/metricsFor the listening address, see Ports and Endpoints and Configuration File.
Gateway metrics
The gateway publishes Prometheus metrics on port 9091 at /apisix/prometheus/metrics. Typical pod annotations for Prometheus scraping:
prometheus.io/scrape: "true"
prometheus.io/port: "9091"
prometheus.io/path: "/apisix/prometheus/metrics"The API7 Gateway chart requires enable_export_server: true and a configured export_addr. See Ports and Endpoints.
Recommended alerts
| Symptom | What to check | Suggested action |
|---|---|---|
| Controller pod not ready | probe_addr readiness and liveness probes | Check logs and common issues |
| Configuration not syncing | Leader election, sync_latency, and sync_errors if available | See configuration synchronization |
| High upstream error rate | Gateway 5xx rate and upstream health | Verify backend health and routes |
| Admission webhook failing | Webhook certificate and port 9443 | See admission webhook |
| Certificate expiry | TLS and mTLS certificate validity | Plan rotation before expiry |
Dashboards
- Use the API7 Dashboard or APISIX Prometheus plugin for gateway traffic dashboards.
- For the controller itself, build a dashboard from the
api7_ingress_*orapisix_ingress_*metric prefixes scraped from port8080.