Как правильно переключиться с метрик Dropwizard на микрометр?

У меня есть кусок старого кода, который использует метрики Codahale. Я хотел бы изменить его на микрометр. И я в порядке с переключением простых, у меня есть некоторые проблемы с воспроизведением функциональности некоторых специфических для Codahale объектов.

И я в порядке с переключением простых, у меня есть некоторые проблемы с воспроизведением функциональности некоторых специфических для Codahale объектов. Я не нашел удовлетворительного сравнения в этой области. Я опирался на документацию и статьи, но все равно не повезло. Я не знаю, возможно ли то, что я хочу сделать.

Например, как это будет выглядеть в микрометре?

final CachedGauge<T> g = new CachedGauge<T>(refreshPeriod, TimeUnit.SECONDS) {
    @Override
    protected T loadValue() {
        try {
        return provider.call();
        } catch (Exception ex) {
            throw new RuntimeException("Failed to get cached value for [" + name + "]", ex);
        }
    }
};
metricRegistry.register("gauge." + fullName, g);

или просто простая струнная мера?

Gauge<String> gauge;  

или датчик соотношения?

RatioGauge ratioGauge = new AttendanceRatioGauge(15, 20);

когда я хочу сравнить два длинных значения, например?

1 ответ

Решение

Здесь есть 3 вопроса. Все с совершенно разными ответами.

Кэшированный датчик

В микрометре нет эквивалента для кэшированного датчика. Я рекомендую открыть вопрос, запрашивающий его. Это было бы хорошим дополнением. Я бы выступил за это. (Мне даже нужно что-то подобное самому)

Струнный датчик

Все метрики, которые производит микрометр, являются числовыми. Так что для случаев, когда вы хотите выставить строку, добавьте ее в качестве тега.

meterRegistry.gauge("app.version",Tags.of("version",myVersion), this, () -> 1.0)

Коэффициент отношения

Коэффициент отношения будет просто типичным, делая деление самостоятельно. В качестве альтернативы, вы можете представить источники отношений как их собственные счетчики и выполнить деление на стороне платформы метрик. Например, Прометей легко это поддерживает:

class_attendance/class_size
Другие вопросы по тегам