micrometer-metrics/micrometer

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

オープン

#3,212 opened on 2022/06/09

 (7 件のコメント) (0 件のリアクション) (0 人の担当者)Java (1,134 件のフォーク)batch import
bughelp wantedregistry: statsdtheme: native-imagewaiting for feedback

Repository metrics

Stars
 (4,882 個のスター)
PR merge metrics
 (平均マージ 1d 21h) (30d で 100 merged PRs)

説明

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.

コントリビューターガイド