Skip to content

Kubernetes extension uses wrong metrics port when management interface is in use #37904

Open

Description

Describe the bug

When enabling the management interface like this:

quarkus.management.enable=true
quarkus.management.port=9000

the generated kubernetes manifests still use the main application server port in the prometheus scrape config labels.

Expected behavior

deployment has following labels

prometheus.io/scrape: "true"
prometheus.io/path: /q/metrics
prometheus.io/port: "9000"
prometheus.io/scheme: http

Actual behavior

deployment has following labels

prometheus.io/scrape: "true"
prometheus.io/path: /q/metrics
prometheus.io/port: "8080"
prometheus.io/scheme: http

How to Reproduce?

Reproducer Project: https://github.com/SIMULATAN/quarkus-kubernetes-management-metrics-reproducer

Reproduction steps:

  1. Run mvn clean package
  2. Open target/kubernetes/kubernetes.yml
  3. Notice that the prometheus label refer to the incorrect port

Output of uname -a or ver

Linux sim-15p-arch 6.6.7-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 14 Dec 2023 03:45:42 +0000 x86_64 GNU/Linux

Output of java -version

21 Azul Systems, Inc.

Quarkus version or git rev

3.6.0.CR1 & 3.6.0

Build tool (ie. output of mvnw --version or gradlew --version)

Gradle 8.5-rc-3 & Maven 3.9.6

Additional information

Reading through the source, it appears as if appropriate handling already exists for health checks and probes but not metrics.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions