ingress-nginx icon indicating copy to clipboard operation
ingress-nginx copied to clipboard

Some metrics are not exposed

Open PAKalucki opened this issue 1 year ago • 7 comments

What happened: Some of expected prometheus metrics are not exposed. Here is output from /metrics from the controller:

# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 2.8473e-05
go_gc_duration_seconds{quantile="0.25"} 3.5106e-05
go_gc_duration_seconds{quantile="0.5"} 5.6897e-05
go_gc_duration_seconds{quantile="0.75"} 8.8305e-05
go_gc_duration_seconds{quantile="1"} 0.003285976
go_gc_duration_seconds_sum 0.012383753
go_gc_duration_seconds_count 58
# HELP go_goroutines Number of goroutines that currently exist.
# TYPE go_goroutines gauge
go_goroutines 94
# HELP go_info Information about the Go environment.
# TYPE go_info gauge
go_info{version="go1.22.6"} 1
# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use.
# TYPE go_memstats_alloc_bytes gauge
go_memstats_alloc_bytes 1.24564e+07
# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
# TYPE go_memstats_alloc_bytes_total counter
go_memstats_alloc_bytes_total 3.14009576e+08
# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
# TYPE go_memstats_buck_hash_sys_bytes gauge
go_memstats_buck_hash_sys_bytes 1.508153e+06
# HELP go_memstats_frees_total Total number of frees.
# TYPE go_memstats_frees_total counter
go_memstats_frees_total 2.648588e+06
# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata.
# TYPE go_memstats_gc_sys_bytes gauge
go_memstats_gc_sys_bytes 3.813024e+06
# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use.
# TYPE go_memstats_heap_alloc_bytes gauge
go_memstats_heap_alloc_bytes 1.24564e+07
# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used.
# TYPE go_memstats_heap_idle_bytes gauge
go_memstats_heap_idle_bytes 4.145152e+06
# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use.
# TYPE go_memstats_heap_inuse_bytes gauge
go_memstats_heap_inuse_bytes 1.5089664e+07
# HELP go_memstats_heap_objects Number of allocated objects.
# TYPE go_memstats_heap_objects gauge
go_memstats_heap_objects 85712
# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS.
# TYPE go_memstats_heap_released_bytes gauge
go_memstats_heap_released_bytes 2.924544e+06
# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system.
# TYPE go_memstats_heap_sys_bytes gauge
go_memstats_heap_sys_bytes 1.9234816e+07
# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection.
# TYPE go_memstats_last_gc_time_seconds gauge
go_memstats_last_gc_time_seconds 1.7247553154794369e+09
# HELP go_memstats_lookups_total Total number of pointer lookups.
# TYPE go_memstats_lookups_total counter
go_memstats_lookups_total 0
# HELP go_memstats_mallocs_total Total number of mallocs.
# TYPE go_memstats_mallocs_total counter
go_memstats_mallocs_total 2.7343e+06
# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures.
# TYPE go_memstats_mcache_inuse_bytes gauge
go_memstats_mcache_inuse_bytes 2400
# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system.
# TYPE go_memstats_mcache_sys_bytes gauge
go_memstats_mcache_sys_bytes 15600
# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures.
# TYPE go_memstats_mspan_inuse_bytes gauge
go_memstats_mspan_inuse_bytes 229760
# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system.
# TYPE go_memstats_mspan_sys_bytes gauge
go_memstats_mspan_sys_bytes 277440
# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place.
# TYPE go_memstats_next_gc_bytes gauge
go_memstats_next_gc_bytes 1.701484e+07
# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations.
# TYPE go_memstats_other_sys_bytes gauge
go_memstats_other_sys_bytes 535167
# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator.
# TYPE go_memstats_stack_inuse_bytes gauge
go_memstats_stack_inuse_bytes 1.703936e+06
# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator.
# TYPE go_memstats_stack_sys_bytes gauge
go_memstats_stack_sys_bytes 1.703936e+06
# HELP go_memstats_sys_bytes Number of bytes obtained from system.
# TYPE go_memstats_sys_bytes gauge
go_memstats_sys_bytes 2.7088136e+07
# HELP go_threads Number of OS threads created.
# TYPE go_threads gauge
go_threads 10
# HELP nginx_ingress_controller_admission_config_size The size of the tested configuration
# TYPE nginx_ingress_controller_admission_config_size gauge
nginx_ingress_controller_admission_config_size{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt"} 0
# HELP nginx_ingress_controller_admission_render_duration The processing duration of ingresses rendering by the admission controller (float seconds)
# TYPE nginx_ingress_controller_admission_render_duration gauge
nginx_ingress_controller_admission_render_duration{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt"} 0
# HELP nginx_ingress_controller_admission_render_ingresses The length of ingresses rendered by the admission controller
# TYPE nginx_ingress_controller_admission_render_ingresses gauge
nginx_ingress_controller_admission_render_ingresses{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt"} 0
# HELP nginx_ingress_controller_admission_roundtrip_duration The complete duration of the admission controller at the time to process a new event (float seconds)
# TYPE nginx_ingress_controller_admission_roundtrip_duration gauge
nginx_ingress_controller_admission_roundtrip_duration{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt"} 0
# HELP nginx_ingress_controller_admission_tested_duration The processing duration of the admission controller tests (float seconds)
# TYPE nginx_ingress_controller_admission_tested_duration gauge
nginx_ingress_controller_admission_tested_duration{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt"} 0
# HELP nginx_ingress_controller_admission_tested_ingresses The length of ingresses processed by the admission controller
# TYPE nginx_ingress_controller_admission_tested_ingresses gauge
nginx_ingress_controller_admission_tested_ingresses{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt"} 0
# HELP nginx_ingress_controller_build_info A metric with a constant '1' labeled with information about the build.
# TYPE nginx_ingress_controller_build_info gauge
nginx_ingress_controller_build_info{build="46e76e5916813cfca2a9b0bfdc34b69a0000f6b9",controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt",release="v1.11.2",repository="https://github.com/kubernetes/ingress-nginx"} 1
# HELP nginx_ingress_controller_config_hash Running configuration hash actually running
# TYPE nginx_ingress_controller_config_hash gauge
nginx_ingress_controller_config_hash{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt"} 4.381011311355057e+16
# HELP nginx_ingress_controller_config_last_reload_successful Whether the last configuration reload attempt was successful
# TYPE nginx_ingress_controller_config_last_reload_successful gauge
nginx_ingress_controller_config_last_reload_successful{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt"} 1
# HELP nginx_ingress_controller_config_last_reload_successful_timestamp_seconds Timestamp of the last successful configuration reload.
# TYPE nginx_ingress_controller_config_last_reload_successful_timestamp_seconds gauge
nginx_ingress_controller_config_last_reload_successful_timestamp_seconds{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt"} 1.72475344e+09
# HELP nginx_ingress_controller_nginx_process_connections current number of client connections with state {active, reading, writing, waiting}
# TYPE nginx_ingress_controller_nginx_process_connections gauge
nginx_ingress_controller_nginx_process_connections{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt",state="active"} 1
nginx_ingress_controller_nginx_process_connections{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt",state="reading"} 0
nginx_ingress_controller_nginx_process_connections{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt",state="waiting"} 0
nginx_ingress_controller_nginx_process_connections{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt",state="writing"} 1
# HELP nginx_ingress_controller_nginx_process_connections_total total number of connections with state {accepted, handled}
# TYPE nginx_ingress_controller_nginx_process_connections_total counter
nginx_ingress_controller_nginx_process_connections_total{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt",state="accepted"} 516
nginx_ingress_controller_nginx_process_connections_total{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt",state="handled"} 516
# HELP nginx_ingress_controller_nginx_process_cpu_seconds_total Cpu usage in seconds
# TYPE nginx_ingress_controller_nginx_process_cpu_seconds_total counter
nginx_ingress_controller_nginx_process_cpu_seconds_total{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt"} 2.21
# HELP nginx_ingress_controller_nginx_process_num_procs number of processes
# TYPE nginx_ingress_controller_nginx_process_num_procs gauge
nginx_ingress_controller_nginx_process_num_procs{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt"} 6
# HELP nginx_ingress_controller_nginx_process_oldest_start_time_seconds start time in seconds since 1970/01/01
# TYPE nginx_ingress_controller_nginx_process_oldest_start_time_seconds gauge
nginx_ingress_controller_nginx_process_oldest_start_time_seconds{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt"} 1.724753437e+09
# HELP nginx_ingress_controller_nginx_process_read_bytes_total number of bytes read
# TYPE nginx_ingress_controller_nginx_process_read_bytes_total counter
nginx_ingress_controller_nginx_process_read_bytes_total{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt"} 0
# HELP nginx_ingress_controller_nginx_process_requests_total total number of client requests
# TYPE nginx_ingress_controller_nginx_process_requests_total counter
nginx_ingress_controller_nginx_process_requests_total{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt"} 514
# HELP nginx_ingress_controller_nginx_process_resident_memory_bytes number of bytes of memory in use
# TYPE nginx_ingress_controller_nginx_process_resident_memory_bytes gauge
nginx_ingress_controller_nginx_process_resident_memory_bytes{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt"} 1.21245696e+08
# HELP nginx_ingress_controller_nginx_process_virtual_memory_bytes number of bytes of memory in use
# TYPE nginx_ingress_controller_nginx_process_virtual_memory_bytes gauge
nginx_ingress_controller_nginx_process_virtual_memory_bytes{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt"} 1.873309696e+09
# HELP nginx_ingress_controller_nginx_process_write_bytes_total number of bytes written
# TYPE nginx_ingress_controller_nginx_process_write_bytes_total counter
nginx_ingress_controller_nginx_process_write_bytes_total{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt"} 81920
# HELP nginx_ingress_controller_orphan_ingress Gauge reporting status of ingress orphanity, 1 indicates orphaned ingress.\n			'namespace' is the string used to identify namespace of ingress, 'ingress' for ingress name and 'type' for 'no-service' or 'no-endpoint' of orphanity
# TYPE nginx_ingress_controller_orphan_ingress gauge
nginx_ingress_controller_orphan_ingress{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt",ingress="xyz-ingress-external",namespace="xyz",type="no-endpoint"} 0
nginx_ingress_controller_orphan_ingress{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt",ingress="xyz-ingress-external",namespace="xyz",type="no-service"} 0
nginx_ingress_controller_orphan_ingress{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt",ingress="xyz-ingress-external",namespace="xyz",type="no-endpoint"} 0
nginx_ingress_controller_orphan_ingress{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt",ingress="xyz-ingress-external",namespace="xyz",type="no-service"} 0
nginx_ingress_controller_orphan_ingress{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt",ingress="xyz-ingress-external",namespace="xyz",type="no-endpoint"} 0
nginx_ingress_controller_orphan_ingress{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt",ingress="xyz-ingress-external",namespace="xyz",type="no-service"} 0
# HELP nginx_ingress_controller_ssl_certificate_info Hold all labels associated to a certificate
# TYPE nginx_ingress_controller_ssl_certificate_info gauge
nginx_ingress_controller_ssl_certificate_info{class="k8s.io/external-ingress-nginx",host="_",identifier="-xyz",issuer_common_name="Kubernetes Ingress Controller Fake Certificate",issuer_organization="Acme Co",namespace="",public_key_algorithm="RSA",secret_name="",serial_number="xyz"} 1
nginx_ingress_controller_ssl_certificate_info{class="k8s.io/external-ingress-nginx",host="xyz.xyz.xyzcorp.com",identifier="-xyz",issuer_common_name="DigiCert Global G2 TLS RSA SHA256 2020 CA1",issuer_organization="DigiCert Inc",namespace="xyz",public_key_algorithm="RSA",secret_name="xyz",serial_number="xyz"} 1
nginx_ingress_controller_ssl_certificate_info{class="k8s.io/external-ingress-nginx",host="xyz.xyz.xyzcorp.com",identifier="-xyz",issuer_common_name="DigiCert Global G2 TLS RSA SHA256 2020 CA1",issuer_organization="DigiCert Inc",namespace="xyz",public_key_algorithm="RSA",secret_name="xyz",serial_number="xyz"} 1
nginx_ingress_controller_ssl_certificate_info{class="k8s.io/external-ingress-nginx",host="xyz.xyz.xyzcorp.com",identifier="-xyz",issuer_common_name="DigiCert Global G2 TLS RSA SHA256 2020 CA1",issuer_organization="DigiCert Inc",namespace="xyz",public_key_algorithm="RSA",secret_name="xyz",serial_number="xyz"} 1
nginx_ingress_controller_ssl_certificate_info{class="k8s.io/external-ingress-nginx",host="xyz.xyz.xyzcorp.com",identifier="-xyz",issuer_common_name="DigiCert Global G2 TLS RSA SHA256 2020 CA1",issuer_organization="DigiCert Inc",namespace="xyz",public_key_algorithm="RSA",secret_name="xyz",serial_number="xyz"} 1
nginx_ingress_controller_ssl_certificate_info{class="k8s.io/external-ingress-nginx",host="xyz.xyz.xyzcorp.com",identifier="-xyz",issuer_common_name="DigiCert Global G2 TLS RSA SHA256 2020 CA1",issuer_organization="DigiCert Inc",namespace="xyz",public_key_algorithm="RSA",secret_name="xyz",serial_number="xyz"} 1
# HELP nginx_ingress_controller_success Cumulative number of Ingress controller reload operations
# TYPE nginx_ingress_controller_success counter
nginx_ingress_controller_success{controller_class="k8s.io/external-ingress-nginx",controller_namespace="xyz",controller_pod="external-ingress-nginx-controller-64bf9b644d-dbsgt"} 1
# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
# TYPE process_cpu_seconds_total counter
process_cpu_seconds_total 4.32
# HELP process_max_fds Maximum number of open file descriptors.
# TYPE process_max_fds gauge
process_max_fds 1.048576e+06
# HELP process_open_fds Number of open file descriptors.
# TYPE process_open_fds gauge
process_open_fds 20
# HELP process_resident_memory_bytes Resident memory size in bytes.
# TYPE process_resident_memory_bytes gauge
process_resident_memory_bytes 5.5742464e+07
# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
# TYPE process_start_time_seconds gauge
process_start_time_seconds 1.72475343754e+09
# HELP process_virtual_memory_bytes Virtual memory size in bytes.
# TYPE process_virtual_memory_bytes gauge
process_virtual_memory_bytes 1.302028288e+09
# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes.
# TYPE process_virtual_memory_max_bytes gauge
process_virtual_memory_max_bytes 1.8446744073709552e+19
# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served.
# TYPE promhttp_metric_handler_requests_in_flight gauge
promhttp_metric_handler_requests_in_flight 1
# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.
# TYPE promhttp_metric_handler_requests_total counter
promhttp_metric_handler_requests_total{code="200"} 126
promhttp_metric_handler_requests_total{code="500"} 0
promhttp_metric_handler_requests_total{code="503"} 0

What you expected to happen: Metrics like nginx_ingress_controller_requests, nginx_ingress_controller_request_duration_seconds_bucket used by default NGINX grafana dashboard to be exposed.

NGINX Ingress controller version (exec into the pod and run nginx-ingress-controller --version.): 4.11.2

Kubernetes version (use kubectl version): v1.29.7

Environment:

  • Cloud provider or hardware configuration: Azure Cloud
  • Install tools: helm
  • Basic cluster related info:
    • kubectl version :
Client Version: v1.30.1
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.29.7
  • How was the ingress-nginx-controller installed:
    • If helm was used then please show output of helm ls -A | grep -i ingress
external-ingress-nginx                  stg             13              2024-08-27 12:09:32.827142696 +0200 CEST        deployed        ingress-nginx-4.11.2                                                            1.11.2
ingress-nginx                           stg             13              2024-08-27 12:09:33.013083541 +0200 CEST        deployed        ingress-nginx-4.11.2                                                            1.11.2
  • If helm was used then please show output of helm -n <ingresscontrollernamespace> get values <helmreleasename>
  USER-SUPPLIED VALUES:
controller:
  affinity:
    nodeAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
      - preference:
          matchExpressions:
          - key: kubernetes.azure.com/scalesetpriority
            operator: In
            values:
            - spot
        weight: 1
      - preference:
          matchExpressions:
          - key: kubernetes.azure.com/scalesetpriority
            operator: DoesNotExist
        weight: 1
  config:
    client-max-body-size: 100m
    enable-modsecurity: "true"
    proxy-buffer-size: 64k
    proxy-buffers: 4 64k
    proxy-busy-buffers-size: 128k
    reuse-port: "false"
  enableAnnotationValidations: true
  extraVolumeMounts:
  - mountPath: /mnt/secrets-store
    name: secrets-store-inline
    readOnly: true
  extraVolumes:
  - csi:
      driver: secrets-store.csi.k8s.io
      readOnly: true
      volumeAttributes:
        secretProviderClass: ingress-wildcard
    name: secrets-store-inline
  ingressClassResource:
    controllerValue: k8s.io/internal-ingress-nginx
    default: false
    enabled: true
    name: internal-nginx
  kind: Deployment
  metrics:
    enabled: true
    serviceMonitor:
      enabled: true
      additionalLabels:
        release: prometheus
  minAvailable: 1
  podAnnotations:
    prometheus.io/port: 10254
    prometheus.io/scrape: true
  ports:
  - name: http
    port: 80
    protocol: TCP
  - name: https
    port: 443
    protocol: TCP
  replicaCount: 2
  selector:
    app: internal-lb
  service:
    annotations:
      service.beta.kubernetes.io/azure-load-balancer-health-probe-request-path: /healthz
      service.beta.kubernetes.io/azure-load-balancer-internal: "true"
      service.beta.kubernetes.io/azure-load-balancer-internal-subnet: snet-lb-eastus
    externalTrafficPolicy: Local
    loadBalancerIP: 10.210.20.36
    type: LoadBalancer
  tolerations:
  - effect: NoSchedule
    key: kubernetes.azure.com/scalesetpriority
    operator: Equal
    value: spot
defaultBacked:
  affinity:
    nodeAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
      - preference:
          matchExpressions:
          - key: kubernetes.azure.com/scalesetpriority
            operator: In
            values:
            - spot
        weight: 1
      - preference:
          matchExpressions:
          - key: kubernetes.azure.com/scalesetpriority
            operator: DoesNotExist
        weight: 1
  tolerations:
  - effect: NoSchedule
    key: kubernetes.azure.com/scalesetpriority
    operator: Equal
    value: spot

PAKalucki avatar Aug 27 '24 11:08 PAKalucki

This issue is currently awaiting triage.

If Ingress contributors determines this is a relevant issue, they will accept it by applying the triage/accepted label and provide further guidance.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

k8s-ci-robot avatar Aug 27 '24 11:08 k8s-ci-robot

/remove-kind bug /kind support

Then why can I see this on my minikube on a default install of the controller with default install of kube-prometheus stack

image

longwuyuan avatar Aug 27 '24 12:08 longwuyuan

I'm very happy that it works on your machine and I would also like to know why. ** image ** image

PAKalucki avatar Aug 27 '24 13:08 PAKalucki

Look at the template of a new bug report. Then edit the issue description here and answer the questions asked in a new bug report.

longwuyuan avatar Aug 27 '24 18:08 longwuyuan

/triage needs-information

longwuyuan avatar Aug 27 '24 18:08 longwuyuan

hi @PAKalucki , could you check nginx-controller pod logs, are there any logs like Error fetching requests metric?

chengjoey avatar Aug 28 '24 06:08 chengjoey

@PAKalucki , I tested in minikube that there is no nginx_ingress_controller_requests, I deleted the nginx-controller pod

kubectl get pods -n ingress-nginx -o wide
NAME                                        READY   STATUS      RESTARTS   AGE     IP           NODE       NOMINATED NODE   READINESS GATES
ingress-nginx-admission-create-qn9sw        0/1     Completed   0          62m     10.244.0.3   minikube   <none>           <none>
ingress-nginx-admission-patch-j265t         0/1     Completed   0          62m     10.244.0.4   minikube   <none>           <none>
ingress-nginx-controller-645d89bc5c-zd8bz   1/1     Running     0          3m57s   10.244.0.9   minikube   <none>           <none>

curl metrics:

root@minikube:/# curl http://10.244.0.9:10254/metrics | grep nginx_ingress_controller_requests
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 16368    0 16368    0     0   405k      0 --:--:-- --:--:-- --:--:--  420k
root@minikube:/#

At this time, there is indeed no nginx_ingress_controller_requests

Then curl my ingress

kubectl get ing
NAME   CLASS   HOSTS       ADDRESS     PORTS   AGE
app    nginx   localhost   localhost   80      47m


root@minikube:/# curl localhost
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
root@minikube:/# curl http://10.244.0.9:10254/metrics | grep nginx_ingress_controller_requests
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 47965    0 47965    0     0  1019k      0 --:--:-- --:--:-- --:--:-- 1040k
# HELP nginx_ingress_controller_requests The total number of client requests
# TYPE nginx_ingress_controller_requests counter
nginx_ingress_controller_requests{canary="",controller_class="k8s.io/ingress-nginx",controller_namespace="ingress-nginx",controller_pod="ingress-nginx-controller-645d89bc5c-zd8bz",host="localhost",ingress="app",method="GET",namespace="default",path="/",service="app",status="200"} 1

nginx_ingress_controller_requests appears, so I guess there is no ingress passing through your nginx-controller

chengjoey avatar Aug 28 '24 06:08 chengjoey