How to enable vts dashboard for kubernetes nginx-ingress?

3/12/2019

I am having trouble getting the kubernetes nginx-ingress vts dashboard to show up.

I am deploying my nginx-ingress using version 1.3.1 of this helm chart: https://github.com/helm/charts/tree/master/stable/nginx-ingress

I have tried several ways of enabling vts metrics, and have ended up with this config:

nginx-ingress:
  controller:
    config:
      enable-vts-status: "true"
      location-snippets: "vhost_traffic_status_display;\nvhost_traffic_status_display_format html;"

    service:
      type: NodePort

      nodePorts:
        http: 30972

    stats:
      enabled: true
    metrics:
      enabled: true
      serviceMonitor:
        enabled: true
        additionalLabels:
          prometheus: kube-prometheus

  defaultBackend:
    enabled: false

Based on the docs, the controller.stats.enabled setting should be all that is required to enable the dashboard:

controller.stats.enabled if true, enable "vts-status" page

However, since that has not worked, I also tried adding the enable-vts-status: "true" setting to the config, and when that didn't work, tried injecting the required settings directly into the location snippets.

I can access the endpoint where the vts dashboard should be available, but it only shows a simplified version:

Active connections: 3 
server accepts handled requests
 87 87 115 
Reading: 0 Writing: 1 Waiting: 2 

I expected to see the full html output detailed at https://github.com/vozlt/nginx-module-vts expected vts dashboard

My setup:

NAME                                            READY   STATUS    RESTARTS   AGE
pod/nginx-ingress-controller-6b4496d857-9kmnl   1/1     Running   0          18m
pod/nginx-ingress-controller-6b4496d857-qkc8n   1/1     Running   0          18m
pod/nginx-ingress-controller-6b4496d857-rfk82   1/1     Running   0          18m

NAME                                       TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
service/nginx-ingress-controller           NodePort    10.xxx.xx.xx   <none>        80:30972/TCP,443:32177/TCP   130d
service/nginx-ingress-controller-metrics   ClusterIP   10.xx.xx.xxx    <none>        9913/TCP                     1d
service/nginx-ingress-controller-stats     ClusterIP   10.xxx.xx.xx   <none>        18080/TCP                    1d

NAME                                       DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nginx-ingress-controller   3         3         3            3           130d

NAME                                                  DESIRED   CURRENT   READY   AGE
replicaset.apps/nginx-ingress-controller-6b4496d857   3         3         3       1d
-- 2PacIsAlive
kubernetes
kubernetes-helm
nginx
nginx-ingress

1 Answer

3/12/2019

It appears the vts module was removed in v0.16.0 https://github.com/kubernetes/ingress-nginx/releases/tag/nginx-0.16.0

-- 2PacIsAlive
Source: StackOverflow