Nginx-Ingress-Controller

Nginx Ingress Controller Template

Template built by

Telegraf Plugins used:

Included Resources:

  • 2 Labels: nginx-ingress
  • 1 Telegraf Configuration: nginx-ingress-controller
  • 1 Dashboard: Nginx Ingress Controller
  • 4 Variables: bucket, controller_namespace, controller_pod, controller_class

Quick Install

If you have your InfluxDB credentials configured in the CLI, you can install this template with:

https://raw.githubusercontent.com/influxdata/community-templates/master/nginx-ingress-controller/nginx-ingress-controller.yml

Nginx ingress controller Dashboard

Many websites rely on NGINX cloud-native services in Kubernetes to run smoothly. In particular, the NGINX Ingress Controller is a traffic management solution for cloud‑native apps in Kubernetes and containerized environments that uses NGINX as a reverse proxy, load balancer, API gateway, cache, or web application firewall. In fact, the NGINX Ingress Controller is more popular than all other Kubernetes ingress controllers combined, with more than 10 million downloads.

Why monitor your Nginx ingress controller

Ingress-nginx is an Ingress controller for Kubernetes using NGINX as a reverse proxy and load balancer. This InfluxDB template can be used to monitor your Nginx Controller setup inside your Kubernetes cluster which will help you ensure a performant environment for your web applications.

How to use Nginx Ingress Controller Monitoring Template

Once your InfluxDB credentials have been properly configured in the CLI, you can install the Nginx Ingress Controller monitoring template using the Quick Install command. Once installed, the data for the dashboard will be populated by the included Prometheus Telegraf plugin and Nginx Ingress Controller configurations. Note that you might need to customize the input configuration to better serve your needs, including by specifying a new input value. All of this will depend on how your organization is currently running Nginx and Kubernetes.

Nginx Ingress Controller setup:
  • GitHub: https://github.com/kubernetes/ingress-nginx
  • Helm chart sources: https://github.com/kubernetes/ingress-nginx/tree/main/charts/ingress-nginx

Flux queries rely on The Prometheus Telegraf Input Plugin v2 metric version format. It is not compatible with v1 or with UI Scraper metric format.

Telegraf:

Use the Telegraf Prometheus input plugin to scrape Prometheus metrics from the Controller service endpoint. The Prometheus input plugin can be also configured to scrape Controller pod(s) directly via annotations.

Telegraf configuration requires the following environment variables

  • INFLUX_HOST
  • INFLUX_BUCKET
  • INFLUX_TOKEN - The token with the permissions to read Telegraf configs and write data to the telegraf bucket. You can just use your operator token to get started.
  • INFLUX_ORG - The name of your Organization
  • CONTROLLER_SVC_URLS - URLs to Ingress Controller metrics endpoint service(s) e.g. http://ingress-nginx-controller-metrics.default.svc.cluster.local:10254/metrics.

To reflect specific Kubernetes or Ingress Controller setup may require additional Telegraf plugin configuration.

Please note that you must set these environment variables before running Telegraf using the following commands:

  • This can be found on the Load Data > Tokens page in your browser: export INFLUX_TOKEN=TOKEN
  • Your Organization name can be found on the Settings page in your browser: export INFLUX_ORG=my_org

Key Nginx Ingress Controller metrics to monitor

Some of the most important Nginx Ingress Controller monitoring metrics that you should proactively monitor include:

  • Controller connections
  • Controller Request volume
  • Ingress Request volume
  • Network I/O pressure
  • Config successfully reloaded
  • Last failed config time
  • Average memory usage
  • Ingress Certificate expiry
  • Ingress Percentile response time

Related Resources

Kubernetes Monitoring Template

Monitoring Kubernetes ensures that Kubernetes clusters utilize underlying resources efficiently.

Getting Started With the InfluxDB Template for NGINX Ingress Controller

This post introduces the InfluxDB Template created to monitor your NGINX Ingress Controller.

Nginx Telegraf Plugin

Use this Telegraf Plugin to monitor your Nginx web server to keep it performant.

Scroll to Top