Как правильно переключиться с метрик Dropwizard на микрометр? - PullRequest
0 голосов
/ 10 февраля 2019

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

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

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

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 Ответ

0 голосов
/ 11 февраля 2019

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

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

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

Строковый манометр

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

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

Ratio gauge

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

class_attendance/class_size
...