Skip to content

Dev/774 fr create metrics services for snh#1202

Merged
GregJohnStewart merged 16 commits into
developmentfrom
dev/774-fr-create-metrics-services-for-snh
Apr 20, 2026
Merged

Dev/774 fr create metrics services for snh#1202
GregJohnStewart merged 16 commits into
developmentfrom
dev/774-fr-create-metrics-services-for-snh

Conversation

@GregJohnStewart
Copy link
Copy Markdown
Contributor

@GregJohnStewart GregJohnStewart commented Apr 16, 2026

Checklist:

  • Tested

Summary by CodeRabbit

Release Notes

  • New Features

    • Added OpenTelemetry LGTM metrics stack with integrated Grafana UI.
    • Enabled OAuth-based authentication for Grafana metrics dashboard.
    • Added Grafana desktop launcher for quick access to metrics.
  • Refactor

    • Replaced standalone Jaeger and Prometheus components with unified OTEL LGTM stack.
    • Updated observability integration to Micrometer-based OpenTelemetry.
    • Enhanced application tracing and metrics collection infrastructure.
  • Documentation

    • Updated metrics configuration documentation and added resource links.
  • Chores

    • Version bumps for Core API and Base Station components.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 16, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8e92a48e-659b-4101-98a6-1aa405013c5e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev/774-fr-create-metrics-services-for-snh

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@GregJohnStewart GregJohnStewart marked this pull request as ready for review April 20, 2026 02:08
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 9

🧹 Nitpick comments (1)
deployment/Single Host/metrics/makeInstallers.sh (1)

59-65: Stow static cargo without execute bits.

These JSON/config/desktop/icon files don’t need 755; 644 keeps the package tidier and avoids marking data as runnable.

🧹 Proposed mode cleanup
-install -m 755 -D "uiEntry-grafana.json" "$buildDir/$debDir/etc/oqm/ui.d/oqm-metrics-otel_lgtm-grafana.json"
-install -m 755 -D "30-metrics-otel_lgtm.json" "$buildDir/$debDir/etc/oqm/config/configs/"
-install -m 755 -D "oqm-metrics-otel_lgtm.desktop" "$buildDir/$debDir/usr/share/applications/"
-install -m 755 -D "oqm-metrics-otel_lgtm-proxy-config.json" "$buildDir/$debDir/etc/oqm/proxyConfig.d/"
-install -m 755 -D "oqm-metrics-otel_lgtm-grafana-client.json" "$buildDir/$debDir/etc/oqm/kcClients/"
-install -m 755 -D "metrics-otel_lgtm-config.list" "$buildDir/$debDir/etc/oqm/serviceConfig/metrics/otel-lgtm/main-config.list"
-install -m 755 -D "oqm-grafana-icon.svg" "$buildDir/$debDir/etc/oqm/static/media/metrics/otel-lgtm/"
+install -m 644 -D "uiEntry-grafana.json" "$buildDir/$debDir/etc/oqm/ui.d/oqm-metrics-otel_lgtm-grafana.json"
+install -m 644 -D "30-metrics-otel_lgtm.json" "$buildDir/$debDir/etc/oqm/config/configs/"
+install -m 644 -D "oqm-metrics-otel_lgtm.desktop" "$buildDir/$debDir/usr/share/applications/"
+install -m 644 -D "oqm-metrics-otel_lgtm-proxy-config.json" "$buildDir/$debDir/etc/oqm/proxyConfig.d/"
+install -m 644 -D "oqm-metrics-otel_lgtm-grafana-client.json" "$buildDir/$debDir/etc/oqm/kcClients/"
+install -m 644 -D "metrics-otel_lgtm-config.list" "$buildDir/$debDir/etc/oqm/serviceConfig/metrics/otel-lgtm/main-config.list"
+install -m 644 -D "oqm-grafana-icon.svg" "$buildDir/$debDir/etc/oqm/static/media/metrics/otel-lgtm/"

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8967262a-eb32-4141-9025-30c7ce99e441

📥 Commits

Reviewing files that changed from the base of the PR and between f23364c and 9a296bf.

⛔ Files ignored due to path filters (2)
  • deployment/Single Host/metrics/jaeger/jaeger-icon.svg is excluded by !**/*.svg
  • deployment/Single Host/metrics/oqm-grafana-icon.svg is excluded by !**/*.svg
📒 Files selected for processing (36)
  • deployment/Single Host/Station-Captain/makeInstallers.sh
  • deployment/Single Host/metrics/.gitignore
  • deployment/Single Host/metrics/30-metrics-otel_lgtm.json
  • deployment/Single Host/metrics/README.md
  • deployment/Single Host/metrics/grafana/10-grafana.json
  • deployment/Single Host/metrics/grafana/oqm-infra-grafana.service
  • deployment/Single Host/metrics/grafana/properties.json
  • deployment/Single Host/metrics/jaeger/10-jaeger.json
  • deployment/Single Host/metrics/jaeger/infra-jaeger-proxy-config.json
  • deployment/Single Host/metrics/jaeger/oqm-infra-jaeger.service
  • deployment/Single Host/metrics/jaeger/oqm-jaeger.desktop
  • deployment/Single Host/metrics/jaeger/properties.json
  • deployment/Single Host/metrics/jaeger/readme.md
  • deployment/Single Host/metrics/jaeger/uiEntry.json
  • deployment/Single Host/metrics/makeInstallers.sh
  • deployment/Single Host/metrics/metrics-otel_lgtm-config.list
  • deployment/Single Host/metrics/oqm-metrics-otel_lgtm-grafana-client.json
  • deployment/Single Host/metrics/oqm-metrics-otel_lgtm-proxy-config.json
  • deployment/Single Host/metrics/oqm-metrics-otel_lgtm.desktop
  • deployment/Single Host/metrics/oqm-metrics-otel_lgtm.service
  • deployment/Single Host/metrics/otel/10-otel.json
  • deployment/Single Host/metrics/otel/collector-config.yaml
  • deployment/Single Host/metrics/otel/oqm-infra-otel.service
  • deployment/Single Host/metrics/otel/properties.json
  • deployment/Single Host/metrics/prometheus/10-prometheus.json
  • deployment/Single Host/metrics/prometheus/config.yaml
  • deployment/Single Host/metrics/prometheus/oqm-infra-prometheus.service
  • deployment/Single Host/metrics/prometheus/properties.json
  • deployment/Single Host/metrics/properties.json
  • deployment/Single Host/metrics/uiEntry-grafana.json
  • software/core/oqm-core-api/build.gradle
  • software/core/oqm-core-api/installerSrc/core-api-config.list
  • software/core/oqm-core-api/src/main/resources/application.yaml
  • software/core/oqm-core-base-station/build.gradle
  • software/core/oqm-core-base-station/installerSrc/base-station-config.list
  • software/core/oqm-core-base-station/src/main/resources/application.yml
💤 Files with no reviewable changes (18)
  • deployment/Single Host/metrics/grafana/properties.json
  • deployment/Single Host/metrics/prometheus/config.yaml
  • deployment/Single Host/metrics/jaeger/infra-jaeger-proxy-config.json
  • deployment/Single Host/metrics/otel/properties.json
  • deployment/Single Host/metrics/grafana/10-grafana.json
  • deployment/Single Host/metrics/prometheus/10-prometheus.json
  • deployment/Single Host/metrics/jaeger/properties.json
  • deployment/Single Host/metrics/prometheus/properties.json
  • deployment/Single Host/metrics/jaeger/10-jaeger.json
  • deployment/Single Host/metrics/otel/10-otel.json
  • deployment/Single Host/metrics/otel/collector-config.yaml
  • deployment/Single Host/metrics/prometheus/oqm-infra-prometheus.service
  • deployment/Single Host/metrics/otel/oqm-infra-otel.service
  • deployment/Single Host/metrics/jaeger/readme.md
  • deployment/Single Host/metrics/jaeger/uiEntry.json
  • deployment/Single Host/metrics/jaeger/oqm-jaeger.desktop
  • deployment/Single Host/metrics/jaeger/oqm-infra-jaeger.service
  • deployment/Single Host/metrics/grafana/oqm-infra-grafana.service
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: CI-Pipeline / Integration Tests
  • GitHub Check: CI-Pipeline / Unit Tests
  • GitHub Check: unitTest / unitTest
🧰 Additional context used
🪛 LanguageTool
deployment/Single Host/metrics/README.md

[grammar] ~11-~11: Ensure spelling is correct
Context: .../configure-authentication/keycloak/ ## TOODs - [ ] make installer - [ ] selectively in...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🪛 Shellcheck (0.11.0)
deployment/Single Host/metrics/makeInstallers.sh

[warning] 20-20: Expanding an array without an index only gives the first element.

(SC2128)


[warning] 27-27: rpmDir appears unused. Verify use (or export if used externally).

(SC2034)


[style] 142-142: Consider using 'grep -c' instead of 'grep|wc -l'.

(SC2126)

🔇 Additional comments (15)
deployment/Single Host/Station-Captain/makeInstallers.sh (1)

4-4: Aye, good fix to the ship's log, matey!

Ye've corrected the header comment to properly reflect we be buildin' installers for Station Captain, not Station Master. The rest o' the script already be speakin' of Station Captain in all its directories and package names—now the header's sailin' in formation with the rest of the crew. Documentation be shipshape now!

deployment/Single Host/metrics/.gitignore (1)

1-1: Aye, this keeps the build cargo out of the hold.

installerBuild/ matches the generated installer staging path and should not be tracked.

software/core/oqm-core-base-station/src/main/resources/application.yml (1)

145-151: Shipshape placement for the OTel signal flags.

The block sits in the proper quarkus.otel berth and matches the metrics/traces/logs course for the new LGTM stack.

software/core/oqm-core-api/src/main/resources/application.yaml (2)

36-36: Aye, clearer service naming.

Including both ${service.version} and ${service.apiVersion} should make the app identity easier to read in dashboards and logs.


49-50: Mongo tracing fits the observability tack.

This is a reasonable hook now that the service is being wired into OTel.

software/core/oqm-core-base-station/build.gradle (2)

8-8: Aye, the snapshot version bump is in order.

This matches the work-in-progress nature of the branch.


31-31: This OTel/Micrometer fitting be shipshape with the new observability course.

quarkus-micrometer-opentelemetry be the right deck gear fer sendin' Micrometer/OTel telemetry toward LGTM. The project's Quarkus BOM version (3.32.4) carries this extension cleanly, with the enforcedPlatform declaration keepin' all the rigging taut and true.

deployment/Single Host/metrics/properties.json (1)

1-16: Manifest looks seaworthy.

The package name, version, description, homepage, and manager-station dependency are all laid out clearly for the new metrics cargo.

software/core/oqm-core-api/build.gradle (1)

11-11: Aye, the core API version bump is consistent.

4.4.6-SNAPSHOT matches an in-flight observability integration.

deployment/Single Host/metrics/oqm-metrics-otel_lgtm-proxy-config.json (1)

1-8: Grafana proxy chart looks tidy.

The source name, title, internal base URI config, and path flags line up cleanly for routing the LGTM Grafana UI.

software/core/oqm-core-api/installerSrc/core-api-config.list (1)

45-48: Aye, this wiring looks sound.

The Core API now points Quarkus OTLP export at the shared metrics collector only when metrics is aboard.

deployment/Single Host/metrics/uiEntry-grafana.json (1)

1-9: Aye, the Grafana UI entry is shipshape.

The urlConfigKey matches the new metrics config, and the icon path follows the otel-lgtm route.

deployment/Single Host/metrics/oqm-metrics-otel_lgtm.desktop (1)

1-12: Looks ready for the desktop dock, matey.

The launcher points at the same Grafana external URI key used elsewhere in this metrics stack.

deployment/Single Host/metrics/oqm-metrics-otel_lgtm-grafana-client.json (1)

1-12: Aye, the client ID be aligned.

This matches the Grafana OAuth client configured in the metrics service config.

deployment/Single Host/metrics/30-metrics-otel_lgtm.json (1)

7-15: This concern does not apply — the hostname matches properly.

The service file creates a container named oqm-metrics-otel-lgtm (hyphenated) via the CONTAINER_NAME environment variable. This hostname is what the config file specifies and what DNS resolution will provide within the oqm-internal network. The underscore spelling (oqm-metrics-otel_lgtm) appears only in package and file names, which is standard convention—the runtime container and internal network alias use the hyphen form as configured.

Comment thread deployment/Single Host/metrics/makeInstallers.sh
Comment thread deployment/Single Host/metrics/metrics-otel_lgtm-config.list
Comment thread deployment/Single Host/metrics/oqm-metrics-otel_lgtm.service
Comment thread deployment/Single Host/metrics/oqm-metrics-otel_lgtm.service Outdated
Comment thread deployment/Single Host/metrics/oqm-metrics-otel_lgtm.service Outdated
Comment thread deployment/Single Host/metrics/README.md
Comment thread software/core/oqm-core-api/build.gradle
Comment thread software/core/oqm-core-api/src/main/resources/application.yaml
@GregJohnStewart GregJohnStewart merged commit 1d192eb into development Apr 20, 2026
2 of 5 checks passed
@GregJohnStewart GregJohnStewart deleted the dev/774-fr-create-metrics-services-for-snh branch April 20, 2026 02:41
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.

1 participant