Skip to content

[keystone] add apache_exporter sidecar for Apache worker/scoreboard metrics - #12763

Open
tz3 wants to merge 1 commit into
masterfrom
keystone-apache-metrics
Open

[keystone] add apache_exporter sidecar for Apache worker/scoreboard metrics#12763
tz3 wants to merge 1 commit into
masterfrom
keystone-apache-metrics

Conversation

@tz3

@tz3 tz3 commented Sep 10, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds apache_exporter sidecar to the keystone-api deployment to expose Apache HTTP server metrics
  • Enables mod_status via a new status.conf mounted at /etc/apache2/conf-enabled/status.conf
  • Scrapes /server-status?auto on localhost and exposes metrics on port 9117
  • Wires up prometheus.io/port_1: "9117" annotation so the existing pods_metric_port_1 Prometheus job picks it up
  • Feature-gated behind api.apacheMetrics.enabled (defaults to false)

Metrics exposed

  • apache_workers (busy/idle worker count)
  • apache_scoreboard (per-state worker slots)
  • apache_accesses_total (total request count, requires ExtendedStatus On)

Test plan

  • Deployed to qa-de-3 with apacheMetrics.enabled: true
  • Pods running 4/4 (apache-exporter sidecar added)
  • Metrics confirmed on port 9117: apache_scoreboard, apache_workers, apache_accesses_total
  • Verify pods_metric_port_1 Prometheus job scrapes the targets end-to-end

@rajivmucheli

Copy link
Copy Markdown
Contributor

Can this be implemented for barbican as well ?

@rajivmucheli

Copy link
Copy Markdown
Contributor

I think keystone and barbican are the only 2 openstack services running on apache, hence we could add this exporter to common charts at a later stage.

@tz3
tz3 marked this pull request as ready for review September 10, 2026 17:27
@tz3

tz3 commented Sep 10, 2026

Copy link
Copy Markdown
Member Author

@rajivmucheli yes we can do the same for barbican, WDYT creating a dedicated pr and do the same?
Or just make a shared one with shared config for both?

@rajivmucheli

Copy link
Copy Markdown
Contributor

@rajivmucheli yes we can do the same for barbican, WDYT creating a dedicated pr and do the same?

Or just make a shared one with shared config for both?

Shared config in common folder if there will be continuous development and image update. Else a dedicated PR for barbican.

@bbobrov bbobrov left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please explain why this change is needed.

enabled: false
port: "9117"

image: 'shared-app-images/apache-exporter'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

where does it come from and who is the maintainer in our team?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

where does it come from and who is the maintainer in our team?

Image added to shared-app-images pipeline: https://github.wdf.sap.corp/cc/base-images/pull/105. Current Keppel image is manually pushed for QA testing only. Maintainer: identity team.

Please explain why this change is needed.

Related task: https://github.wdf.sap.corp/sap-cloud-infrastructure/foundation-issues/issues/1696

@bbobrov

bbobrov commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

I am fine with the patch, but lets get the image with the exporter built by our CIs first.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants