micrometer-metrics / micrometer-metrics/prometheus-rsocket-proxy

Prometheus-rsocket-client seems to have issues with JDK17

Open
#53 2 comments 0 reactions 0 assignees View on GitHub
status: waiting for feedback status: waiting for triage
Dominant language
Java
Stars
77
Forks
30
PR merge metrics
No merged PRs in 30d

Description

Looks like executing the prometheus-rsocket-client on Java 17 fails because of some runtime errors of snappy-java library

"Custom destroy method 'pushAndClose' on bean with name 'prometheusRSocketClient' threw an exception: java.lang.NoClassDefFoundError: Could not initialize class org.xerial.snappy.pure.UnsafeUtil"

https://github.com/xerial/snappy-java/issues/305

This is the evidence I collected, but I see no mention here so in case I am missing something I'll stand corrected

I tried with both 1.3.0 and 1.4.0, as soon as I use eclipse-temurin:17-jdk-alpine as my base image, some metrics (I guess those collected during runtime, and relying on pushAndClose) don't get into the proxy and I get this error in logs

Contributor guide

Open the contributing guide

Research direction

Reproduce the failure using eclipse-temurin:17-jdk-alpine with prometheus-rsocket-client versions 1.3.0 and 1.4.0. Start by comparing the reported snappy-java issue with the NoClassDefFoundError from UnsafeUtil, then verify whether runtime metrics and pushAndClose reach the proxy without errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, java
Domain
observability
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.