Size: a a a

2020 December 07

ES

Eugene Svalukhin in Astana JKUG
Maksat
если с таким же именем метрика уже зарегана, то новый инстанс работать не будет, надо первую зарегистрированную куда-то сохранить, а в месте второго объявления - подменить ссылку на ранее сохраненный инстанс
В micrometer всё гораздо проще
так ты не регаешь метрику по новой
источник

M

Maksat in Astana JKUG
Кайржан Турмагамбетов
мне просто интересно - а зачем? одно и тоже с разных мест выдавать?
в абстарктном классе создаётся метрика, несколько классов его имплементируют
источник

M

Maksat in Astana JKUG
Eugene Svalukhin
так ты не регаешь метрику по новой
если регать по новой то будет exception
источник

M

Maksat in Astana JKUG
я не хочу знать, в каком месте регать, а в каком вызывать уже зареганную
источник

ES

Eugene Svalukhin in Astana JKUG
Collector collector = CollectorFactory.getInstance("metricName");
ClassA classA = new ClassA(collector);
ClassB classB = new ClassB(collector);
источник

M

Maksat in Astana JKUG
поэтому я создаю их через .create(), потом сохраняю в Map который singleton на всё приложение, если в мапе нет ключа, то регаю, если есть - то надо ссылку подменить на тот объект, что в мапе
источник

M

Maksat in Astana JKUG
Eugene Svalukhin
Collector collector = CollectorFactory.getInstance("metricName");
ClassA classA = new ClassA(collector);
ClassB classB = new ClassB(collector);
кроме имени нужно знать тип метрики (counter, gauge, histogram)
а так же лэйблы
источник

ES

Eugene Svalukhin in Astana JKUG
ну сделай разные мапы
источник

ES

Eugene Svalukhin in Astana JKUG
либо в какую то обертку коллекторы обворачивай
источник

ES

Eugene Svalukhin in Astana JKUG
а у тебя получается у метрики могут быть разные типы?
источник

M

Maksat in Astana JKUG
Нет, просто много разных метрик с разными типами и набором лэйблов
источник

ES

Eugene Svalukhin in Astana JKUG
CollectorFactory.getInstance("metricName", CollectorType.GAUGE, List.of("label1", "label2"))
источник

ES

Eugene Svalukhin in Astana JKUG
а там уже в методе чекаешь, если нет коллектора, то создаешь, его и  в мапу ложишь, как ты до этого делал
источник

M

Maksat in Astana JKUG
Придётся так
источник

ES

Eugene Svalukhin in Astana JKUG
источник

ES

Eugene Svalukhin in Astana JKUG
то есть регистрация в реестре происходит и он чекает по имени при добавлении нового коллектора
источник

M

Maksat in Astana JKUG
И выбрасывает exception
источник

ES

Eugene Svalukhin in Astana JKUG
Maksat
И выбрасывает exception
Ну да, там прям так и написано throw new, соответственно или писать свой registry, или делать обёртку над текущим если надо что бы одна метрика писалась
источник
2020 December 08

MM

Mikhail Milyutin in Astana JKUG
источник

ES

Eugene Svalukhin in Astana JKUG
Спасибо
источник