micrometer-metrics/micrometer

Native image config for netty in statsd module is not relocated during shading

Open

#3212 aperta il 9 giu 2022

Vedi su GitHub
 (7 commenti) (0 reazioni) (0 assegnatari)Java (935 fork)batch import
bughelp wantedregistry: statsdtheme: native-imagewaiting for feedback

Metriche repository

Star
 (4220 star)
Metriche merge PR
 (Merge medio 1g 21h) (100 PR mergiate in 30 g)

Descrizione

statsd module uses a shaded netty that makes its packages io.micrometer.shaded.io.netty, and none of the standard native hints apply.

So far, I had to add (using spring-native) the following to get the app to start at least:

@NativeHint( // Micrometer
        types = @TypeHint(
                access = {TypeAccess.DECLARED_CLASSES, TypeAccess.DECLARED_CONSTRUCTORS, TypeAccess.DECLARED_METHODS},
                typeNames = "io.micrometer.shaded.io.netty.buffer.AbstractByteBufAllocator"
        )
)
@NativeHint(
        types = {
                @TypeHint(
                        typeNames = "io.micrometer.shaded.io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueColdProducerFields",
                        fields = @FieldHint(name = "producerLimit", allowUnsafeAccess = true)
                ),
                @TypeHint(
                        typeNames = "io.micrometer.shaded.io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueConsumerFields",
                        fields = @FieldHint(name = "consumerIndex", allowUnsafeAccess = true)
                ),
                @TypeHint(
                        typeNames = "io.micrometer.shaded.io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueProducerFields",
                        fields = @FieldHint(name = "producerIndex", allowUnsafeAccess = true)
                ),
                @TypeHint(
                        typeNames = "io.micrometer.shaded.io.netty.util.ReferenceCountUtil",
                        methods = @MethodHint(name = "touch", parameterTypes = {Object.class})
                )
        }
)

But I might have to add more as I keep testing it.

Guida contributor