JEP-0013 Phase 3 - operator image - #1061
Open
RoddieKieley wants to merge 3 commits into
Open
Conversation
Add the MetricsStream protocol and Go hub so Prometheus can scrape merged exporter OpenMetrics from telemetry without an exporter client yet. Generated Python stubs are included for proto consistency. Co-authored-by: Cursor <cursoragent@cursor.com>
Stop silently dropping unparseable exporter snapshots. Log the exporter and error, and increment jumpstarter_metrics_parse_errors_total so reverse-scrape omissions are visible on the same /metrics response. Co-authored-by: Cursor <cursoragent@cursor.com>
…e 3) Build /telemetry into the controller image and have the operator mount cert-manager TLS, advertise the CA, and expose scrape flags plus the HTTP metrics port so reverse-scrape can run in-cluster.
Contributor
|
Warning Review limit reachedNext included review available in 54 minutes. View limit detailsLimit details: You’ve used all 2 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (23)
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. Comment |
This was referenced Sep 2, 2026
RoddieKieley
marked this pull request as ready for review
September 2, 2026 23:21
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
JEP-0013 Phase 3 PR B**: make the MetricsStream hub from PR A runnable in-cluster.
Depends on PR A: #1060
Do not merge until A is on
main, then rebase this branch ontomain. Related PRs C–E will be linked here as they are opened./telemetryincontroller/Containerfileandmake build/docker-build-ci(operator alreadyCommand: ["/telemetry"];mainstill only shipsmanager+router)./healthzand/readyzprobes on that port (replacing TCP probes on gRPC:9093).spec.telemetry.metrics.scrapeTimeout,driverTypeEnum,exemplarKeys. Defaults match JEP-0013 (7s, the driver-type enum,client,lease_id). NoServiceMonitor(Phase 5).GRPC_TELEMETRY_ENDPOINTso the telemetry process advertises the in-cluster Service DNS.TLS: #1023 already landed telemetry TLS on
main. This PR keeps that path (cert-manager or manualspec.telemetry.grpc.tls.certSecret, rolling-restart hash, non-fatal missing CA). It does not reimplement TLS.Lab: in-cluster reverse-scrape of
GET /metricson Service port 8080 worked (port-forward). After driver ops, Python OpenMetrics exemplars still fail GoparseMetricFamilies; the hub from A omits that snapshot and incrementsjumpstarter_metrics_parse_errors_total.spec.telemetry.metrics.exemplarKeysonly allowlists keys on the merge path after a successful parse — it does not fix exemplar decode. That remains A / JEP DD-3, not this PR.DEMO
The lab walkthrough for the stacked Phase 3 work (A+B+C+D+E plus lab-only Route) is on the fork demo branch, not this PR:
See MetricsStream during the lease for the DD-3 exemplar limitation observed on
:8080.How this PR fits the series
jep-0013-phase3-metricsstreamjep-0013-phase3-operator-imagejep-0013-phase3-exporter-metricsstreamjep-0013-phase3-loki-pushjep-0013-phase3-client-pushlogsUnique work vs PR A: the operator/image commit on this branch (
435eebee). If GitHub shows A's commits, that is stacking againstmain; review that unique commit only.Out of scope
identity(C) — after#1058, identity must beexporter_name, notMetadata.nameServiceMonitor(Phase 5)NOTE
Open #1027 also touches telemetry operator files (log-ingest e2e).