Title: Micrometer metrics meter `events_received_total` is registered multiple times · Issue #3255 · operator-framework/java-operator-sdk · GitHub
Open Graph Title: Micrometer metrics meter `events_received_total` is registered multiple times · Issue #3255 · operator-framework/java-operator-sdk
X Title: Micrometer metrics meter `events_received_total` is registered multiple times · Issue #3255 · operator-framework/java-operator-sdk
Description: Bug Report What did you do? Update to Quarkus 3.34.1 which also updates the JOSDK to 7.7.3 What did you expect to see? That my tests run through. What did you see instead? Under which circumstances? I ran my test suite of https://github....
Open Graph Description: Bug Report What did you do? Update to Quarkus 3.34.1 which also updates the JOSDK to 7.7.3 What did you expect to see? That my tests run through. What did you see instead? Under which circumstances...
X Description: Bug Report What did you do? Update to Quarkus 3.34.1 which also updates the JOSDK to 7.7.3 What did you expect to see? That my tests run through. What did you see instead? Under which circumstances...
Opengraph URL: https://github.com/operator-framework/java-operator-sdk/issues/3255
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Micrometer metrics meter `events_received_total` is registered multiple times","articleBody":"## Bug Report\n\n\u003c!--\nThanks for filing an issue! Before hitting the button, please answer these questions.\nFill in as much of the template below as you can. If you leave out information, we can't help you as well.\n\nNote: Make sure to first check the prerequisites that can be found in the main README.md file!\n--\u003e\n\n#### What did you do?\n\nUpdate to Quarkus 3.34.1 which also updates the JOSDK to 7.7.3\n\n\u003c!-- A clear and concise description of the steps you took (or insert a code snippet). --\u003e\n\n#### What did you expect to see?\n\nThat my tests run through.\n\n\u003c!-- A clear and concise description of what you expected to happen (or insert a code snippet). --\u003e\n\n#### What did you see instead? Under which circumstances?\n\nI ran my test suite of https://github.com/aboutbits/postgresql-operator with Quarkus 3.34.1 (e.g. JOSDK 7.7.3 -\u003e Java Operator SDK 5.3.2) and got the following error.\n**This is related to https://github.com/quarkusio/quarkus/wiki/Migration-Guide-3.34#micrometer-prometheus-registry**\n\n```java\nPrometheus requires that all meters with the same name have the same set of tag keys. There is already an existing meter named 'events_received_total' containing tag keys [action, controller_name, event]. The meter you are attempting to register has keys [controller_name, event].\njava.lang.IllegalArgumentException: Prometheus requires that all meters with the same name have the same set of tag keys. There is already an existing meter named 'events_received_total' containing tag keys [action, controller_name, event]. The meter you are attempting to register has keys [controller_name, event].\n\tat io.micrometer.prometheus.PrometheusMeterRegistry.lambda$throwExceptionOnRegistrationFailure$19(PrometheusMeterRegistry.java:619)\n\tat io.micrometer.core.instrument.MeterRegistry.meterRegistrationFailed(MeterRegistry.java:1291)\n\tat io.micrometer.prometheus.PrometheusMeterRegistry.lambda$applyToCollector$18(PrometheusMeterRegistry.java:593)\n\tat java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1956)\n\tat io.micrometer.prometheus.PrometheusMeterRegistry.applyToCollector(PrometheusMeterRegistry.java:579)\n\tat io.micrometer.prometheus.PrometheusMeterRegistry.newCounter(PrometheusMeterRegistry.java:200)\n\tat io.micrometer.core.instrument.MeterRegistry.lambda$counter$4(MeterRegistry.java:348)\n\tat io.micrometer.core.instrument.MeterRegistry.getOrCreateMeter(MeterRegistry.java:725)\n\tat io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:652)\n\tat io.micrometer.core.instrument.MeterRegistry.counter(MeterRegistry.java:347)\n\tat io.micrometer.core.instrument.Counter$Builder.register(Counter.java:148)\n\tat io.micrometer.core.instrument.Counter$Builder.register(Counter.java:144)\n\tat io.micrometer.core.instrument.composite.CompositeCounter.registerNewMeter(CompositeCounter.java:52)\n\tat io.micrometer.core.instrument.composite.CompositeCounter.registerNewMeter(CompositeCounter.java:23)\n\tat io.micrometer.core.instrument.composite.AbstractCompositeMeter.add(AbstractCompositeMeter.java:67)\n\tat java.base/java.lang.Iterable.forEach(Iterable.java:75)\n\tat java.base/java.util.Collections$SetFromMap.forEach(Collections.java:6060)\n\tat io.micrometer.core.instrument.composite.CompositeMeterRegistry.lambda$new$0(CompositeMeterRegistry.java:67)\n\tat io.micrometer.core.instrument.composite.CompositeMeterRegistry.lock(CompositeMeterRegistry.java:189)\n\tat io.micrometer.core.instrument.composite.CompositeMeterRegistry.lambda$new$1(CompositeMeterRegistry.java:67)\n\tat io.micrometer.core.instrument.MeterRegistry.getOrCreateMeter(MeterRegistry.java:735)\n\tat io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:652)\n\tat io.micrometer.core.instrument.MeterRegistry.counter(MeterRegistry.java:347)\n\tat io.micrometer.core.instrument.MeterRegistry.counter(MeterRegistry.java:481)\n\tat io.micrometer.core.instrument.MeterRegistry.counter(MeterRegistry.java:459)\n\tat io.javaoperatorsdk.operator.monitoring.micrometer.MicrometerMetricsV2.incrementCounter(MicrometerMetricsV2.java:260)\n\tat io.javaoperatorsdk.operator.monitoring.micrometer.MicrometerMetricsV2.eventReceived(MicrometerMetricsV2.java:178)\n\tat io.javaoperatorsdk.operator.processing.event.EventProcessor.handleEvent(EventProcessor.java:130)\n\tat io.javaoperatorsdk.operator.processing.event.source.timer.TimerEventSource$EventProducerTimeTask.run(TimerEventSource.java:129)\n\tat java.base/java.util.TimerThread.mainLoop(Timer.java:572)\n\tat java.base/java.util.TimerThread.run(Timer.java:522)\n\n```\n\n\n\u003c!-- A clear and concise description of what you expected to happen (or insert a code snippet). --\u003e\n\n#### Environment\n\n**Kubernetes cluster type:** K3s\n\n\u003c!-- The type of cluster used for testing/deployment, ex. \"vanilla\", \"OpenShift\" --\u003e\n\n`$ Mention java-operator-sdk version from pom.xml file`\nJava Operator SDK version: 5.3.2 (Quarkus 3.34.1 -\u003e JOSDK 7.7.3)\n\n\u003c!-- Verify pom.xml file and insert the java-operator-sdk version here. --\u003e\n\n`$ java -version`\nJava HotSpot(TM) 64-Bit Server VM Oracle GraalVM 25.0.1+8.1 (build 25.0.1+8-LTS-jvmci-b01, mixed mode, sharing)\n\n\u003c!-- Insert the output of `java -version` here --\u003e\n\n`$ kubectl version`\nClient Version: v1.34.1+k3s1\nKustomize Version: v5.7.1\nServer Version: v1.34.1+k3s1\n\n\u003c!-- Insert the output of `kubectl version` here --\u003e\n\n#### Possible Solution\n\n\u003c!-- Only if you have suggestions on a fix for the bug --\u003e\nRegister the Micrometer metrics only once by using [MeterProvider](https://docs.micrometer.io/micrometer/reference/concepts/meter-provider.html) to delay meter registration and avoid duplicating the registration of different 'events_received_total' tag keys `[action, controller_name, event]` and `[controller_name, event]`.\n\n#### Additional context\n\n\u003c!-- Add any other context about the problem here. --\u003e","author":{"url":"https://github.com/ThoSap","@type":"Person","name":"ThoSap"},"datePublished":"2026-03-26T08:43:06.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":6},"url":"https://github.com/3255/java-operator-sdk/issues/3255"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:54655016-874f-5a2c-0b81-b9235eb74f21 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | CF74:73E1D:6E13BA:93B8DC:6A504F52 |
| html-safe-nonce | e01bb97fcc89eedad9bdeeb13a8a36edd109dfaaeff90ef41bc24a234c5917ad |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDRjc0OjczRTFEOjZFMTNCQTo5M0I4REM6NkE1MDRGNTIiLCJ2aXNpdG9yX2lkIjoiNzkwNTQ4NDM0OTE4MDQ5Nzc0NiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 0f1d572a8d546d2c415645c0b4ca6ff5f85a00902769c2a8d897ae6ff7ca61c5 |
| hovercard-subject-tag | issue:4141845168 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/operator-framework/java-operator-sdk/3255/issue_layout |
| twitter:image | https://opengraph.githubassets.com/a74e11b886802db55e66f55637a84a1230e4727f00e4d071cad29c00cf6e6469/operator-framework/java-operator-sdk/issues/3255 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/a74e11b886802db55e66f55637a84a1230e4727f00e4d071cad29c00cf6e6469/operator-framework/java-operator-sdk/issues/3255 |
| og:image:alt | Bug Report What did you do? Update to Quarkus 3.34.1 which also updates the JOSDK to 7.7.3 What did you expect to see? That my tests run through. What did you see instead? Under which circumstances... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | ThoSap |
| hostname | github.com |
| expected-hostname | github.com |
| None | d6dc8294eb500fa36bbc57472d61fe87c522f9c3c1d64f70f4926f66a66a7efb |
| turbo-cache-control | no-preview |
| go-import | github.com/operator-framework/java-operator-sdk git https://github.com/operator-framework/java-operator-sdk.git |
| octolytics-dimension-user_id | 38202270 |
| octolytics-dimension-user_login | operator-framework |
| octolytics-dimension-repository_id | 188592933 |
| octolytics-dimension-repository_nwo | operator-framework/java-operator-sdk |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 188592933 |
| octolytics-dimension-repository_network_root_nwo | operator-framework/java-operator-sdk |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 5741a45fe07e5f377d0d4c524a92e3056acc51bb |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width