All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.quarkus.micrometer.runtime.binder.netty.ReactiveNettyMetricsProvider Maven / Gradle / Ivy

Go to download

Instrument the runtime and your application with dimensional metrics using Micrometer.

There is a newer version: 3.15.0
Show newest version
package io.quarkus.micrometer.runtime.binder.netty;

import java.lang.reflect.Field;

import jakarta.enterprise.inject.Produces;
import jakarta.inject.Singleton;

import io.micrometer.core.instrument.binder.MeterBinder;
import io.micrometer.core.instrument.binder.netty4.NettyAllocatorMetrics;
import io.netty.buffer.ByteBufAllocatorMetricProvider;

@Singleton
public class ReactiveNettyMetricsProvider {

    @Produces
    @Singleton
    public MeterBinder reactiveAllocatorMetrics() throws Exception {
        ClassLoader tccl = Thread.currentThread().getContextClassLoader();
        Class clazz = tccl.loadClass("org.jboss.resteasy.reactive.client.impl.multipart.QuarkusMultipartFormUpload");
        Field af = clazz.getDeclaredField("ALLOC");
        af.setAccessible(true);
        ByteBufAllocatorMetricProvider provider = (ByteBufAllocatorMetricProvider) af.get(null);
        return new NettyAllocatorMetrics(provider);
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy