Как мога да профилирам топологии на Apache Storm, без да използвам уеб таблото?

Заглавието до голяма степен казва всичко, имам някои топологии на Storm и бих искал да измеря техните закъснения, тоест времето между съобщението, идващо от Kafka, и последния бит свързано изпълнение в последния болт. Бонус точки, ако мога да разбия резултатите, за да видя закъснението във всеки болт.

Може ли това да стане чрез просто промяна на конфигурацията на Storm?

Ако не, е http://storm.incubator.apache.org/apidocs/backtype/storm/hooks/info/SpoutAckInfo.html backtype.storm.hooks.info.SpoutAckInfo.completeLatencyMs нещото, което търся?


person teryret    schedule 30.07.2014    source източник


Отговори (1)


За общо профилиране имаме разклонение на буря, където разрешавам на супервайзора динамично да задава и отваря JMX порта, равен на 1000 по-висок от работния порт (разбира се, това ограничава броя на работниците, които можем да назначим, но ние не сме никъде близо до този проблем сега). След това със стойността supervisor.childopts присвояваме JMX порта на работника и се свързваме с Visual VM.

Специфично за вашия въпрос относно показателите, можете да използвате BaseTaskHook, за да преместите storm показателите към нещо с MBean (използваме показатели на codahale) и отново да прегледате стойностите през JMX. Публикувах пример същност. Имайте предвид, че не сме повишили до 3.x показателите на codahale.

С инструментите на Java 7 вярвам, че можете да включите JMX на работеща JVM, така че ако използвате Java 7+, това също ще ви помогне.

person danehammer    schedule 30.07.2014
comment
Това звучи добре, но имате ли повече подробности за MetricsHook? Не виждам това име никъде в документите на Storm... - person teryret; 31.07.2014
comment
Моите извинения, неправилно си спомних как постигнахме това. Актуализира отговора и публикува същност. - person danehammer; 01.08.2014
comment
Така че в същността си правите куп нулеви проверки на лаг стойностите, знаете ли какво означава нулева стойност в този контекст? Опитах го и почти всички обаждания към това събитие имат нулеви закъснения, но не знам защо. Със сигурност има известно забавяне в системата... - person teryret; 04.08.2014
comment
Възможно ли е това да е свързано с вземането на проби? По подразбиране е 5%, така че виждате ли подобен брой пъти, когато получавате нула? - person danehammer; 09.08.2014
comment
А, да, това е. Може ли някой да гласува за този отговор и горния коментар? Нямам достатъчно представител, за да гласувам за този акаунт :-( - person teryret; 11.08.2014
comment
Можем ли да използваме VisualVM или jProfiler? Как мога да разбера кой метод отнема най-много време? - person anir; 31.10.2019