Использование таймера для пакетных операций - PullRequest
1 голос
/ 19 апреля 2019

Я новичок в использовании Микрометра и пытаюсь выяснить, есть ли способ использовать Таймер, который бы также включал подсчет количества элементов в сценарии пакетной обработки.Поскольку я обрабатываю пакет с помощью потоков Java, я не видел очевидного способа записи таймера для каждого обработанного элемента, поэтому я искал способ установить атрибут размера пакета.Один способ, который, по моему мнению, может сработать, - это использовать FunctionTimer из https://micrometer.io/docs/concepts#_function_tracking_timers,, но я считаю, что приложение требует, чтобы приложение поддерживало постоянный монотонно увеличивающийся набор значений для общего количества и общего времени.

IsЕсть ли более простой способ сделать это?В конечном итоге эти данные будут переданы в New Relic.Я также пытался установить теги для размера пакета, но они, кажется, отображаются как строки, поэтому я не могу выполнить какой-либо тип агрегации для значений.

Спасибо!

1 Ответ

0 голосов
/ 19 апреля 2019

Таймер предназначен для измерения действия и как минимум приводит к двум измерениям: счет и длительность.

Так что таймер будет отлично работать для вашей пакетной обработки. В потоке java операция peek может быть хорошим местом для установки таймера.

Если вы собираетесь обрабатывать 20 элементов и измеряете время для всех 20 элементов, вам нужно будет создать новый Counter для измерения размера партии. Вы можете разделить общую продолжительность таймера с вашим счетчиком, чтобы получить длительность за элемент, или поделить ее с общим счетчиком таймера, чтобы получить длительность за пакет.

Не стесняйтесь добавлять фрагменты кода, если вам нужна обратная связь.

...