Quarkus 3.38 and quarkus-micrometer-registry-prometheus-v1 3.5.0 incompatibility

After bumping to Quarkus **3.38.0** I'm hitting a hard failure during `@QuarkusTest` boot:

java.lang.NoSuchMethodError:
'void io.quarkus.vertx.core.deployment.VertxOptionsConsumerBuildItem.<init>(java.util.function.Consumer, int)'
at io.quarkiverse.micrometer.registry.deployment.binder.VertxBinderProcessor.build(...)

Maven GAVs

io.quarkus.platform:quarkus-bom:3.38.0

io.quarkiverse.micrometer.registry:quarkus-micrometer-registry-prometheus-v1:3.5.0 (latest)

In Quarkus 3.38, `VertxOptionsConsumerBuildItem` was changed to require a third `orderKey` argument:

new VertxOptionsConsumerBuildItem(consumer, priority, orderKey)

Quarkiverse **prometheus-v1 3.5.0** still does the old 2-arg call (and looks built against ~3.31.x). There’s no newer prometheus-v1 release on Maven Central yet.

Has anyone else hit this on Quarkus ≥ 3.38 with prometheus-v1?

How did you deal with it? Switch back to platform `io.quarkus:quarkus-micrometer-registry-prometheus`, or something else? Switching to the legacy simpleclient registry is deprecated and Quarkus 4 is a year away it seems... :/

Is there a tracked Quarkiverse issue / upcoming release for 3.38 compatibility I can follow?

reddit.com
u/backbonehq — 6 days ago
▲ 0 r/github

GitHub Environments: how do you read another env’s vars (e.g. INT account ID) from a STAGE/PROD deploy job?

I'm using GitHub Environments (`INT`, `STAGE`, `PROD`), each with its own `AWS_ACCOUNT_ID`. Works great when a job targets one environment - assume the right role, deploy to that account.

The central ECR registry is in INT env. STAGE/PROD ECS tasks need to pull from that registry, so at CDK synth time we need:

  1. INT’s account ID (where the images live)
  2. INT + STAGE + PROD account IDs (ECR repo policy principals)

The snag: Environment variables are only available to the jobs that declare that Environment. A job with `environment: STAGE` can see STAGE’s `AWS_ACCOUNT_ID`, but not INT’s. So I can’t just write `${{ vars.AWS_ACCOUNT_ID }}` for “the INT account” while deploying STAGE.

I’d rather not invent a parallel config surface if Environments already hold the source of truth.

How is everyone else solving “job in env X needs a non-secret config value from env Y” - especially for central registry / multi-account AWS setups?

reddit.com
u/backbonehq — 9 days ago
▲ 2 r/cicd+1 crossposts

GitHub Environments: how do you read another env’s vars (e.g. INT account ID) from a STAGE/PROD deploy job?

I'm using GitHub Environments (INTSTAGEPROD), each with its own AWS_ACCOUNT_ID. Works great when a job targets one environment - assume the right role, deploy to that account.

The central ECR registry is in INT env. STAGE/PROD ECS tasks need to pull from that registry, so at CDK synth time we need:

  1. INT’s account ID (where the images live)
  2. INT + STAGE + PROD account IDs (ECR repo policy principals)

The snag: Environment variables are only available to the jobs that declare that Environment. A job with environment: STAGE can see STAGE’s AWS_ACCOUNT_ID, but not INT’s. So I can’t just write ${{ vars.AWS_ACCOUNT_ID }} for “the INT account” while deploying STAGE.

I’d rather not invent a parallel config surface if Environments already hold the source of truth.

How is everyone else solving “job in env X needs a non-secret config value from env Y” - especially for central registry / multi-account AWS setups?

reddit.com
u/backbonehq — 9 days ago

Extracted cross-cutting Quarkus modules (throttling, health checks, structured logging) into an open-source kit

Been running a handful of Quarkus services on AWS and pulled the pieces that had stabilized into a standalone repo at backbone-kit.

A few things that might be useful:

  • AMP remote write without scrape+parse - encodes Prometheus Remote Write 1.0 directly from Micrometer's MetricSnapshots, SigV4-signs it, pushes to Amazon Managed Prometheus on a schedule. No text-format round trip.

  • X-Ray tracing without the ADOT collector sidecar - OTLP protobuf straight to X-Ray, SigV4-signed, wired through Quarkus OpenTelemetry.

  • Rate limiting with authenticated vs. unauthenticated capacity split out deterministically.

  • Structured logging - opt-in method-entry logging (@LogMethodEntry), correlation ID propagation through MDC and headers, sensitive-data masking.

Everything's modular - take the throttle module without the AWS bits, etc. MIT licensed.

Full disclosure: this is the infrastructure layer underneath Backbone, a platform I'm building. Kit is the open-sourced primitives with no strings attached - it doesn't depend on anything else in that stack.

https://github.com/get-backbone/backbone-kit - feedback, issues, and PRs welcome.

u/backbonehq — 10 days ago
▲ 12 r/u_backbonehq+3 crossposts

Cut Quarkus monorepo CI from ~11min to ~5.5min on GH Actions free runners - turned out it was almost entirely duplicate @QuarkusTest boots, not Maven

Maven itself was already fast (~2min per verify). The other 9 minutes was Quarkus paying for the same app boot repeatedly - overlapping IT classes, package-time augmentation that @QuarkusTest doesn't need, jobs split by module count instead of by infra requirement.

What actually moved the needle:
- merging/demoting overlapping integration tests,
- splitting jobs by infra (auth+Cognito vs REST+Postgres, not one job per service),
- -Dquarkus.build.skip=true on the install step as tests boot from the test classpath anyway,
- swapping LocalStack for Floci (mainly for Cognito support, but it's also lighter).

Full writeup with before/after logs: https://backbonehq.io/blog/quarkus-github-actions-reducing-ci-time-by-half-without-larger-runners/

(I'm the author - wrote this for my company's blog, but it's a straight CI post, no pitch. Happy to get into specifics.)

u/backbonehq — 10 days ago