В нашем приложении запущено несколько потоков akka, и я хотел бы узнать, сколько ЦП использует каждый из них. У них одна и та же система актеров.
Моя идея состоит в том, чтобы выяснить, сколько времени каждый Runnable
, ответственный за обработку островных почтовых ящиков, тратит на выполнение, и обработать его как время использования ЦП, но, кажется, невозможно ActorSystem
использовать инструмент для достижения этой цели. Я мог бы, например:
- создайте новый
Materializer
для каждого графа, вызвав withNamePrefix
на базовом графике. Это даст префиксы имен всем актерам, чтобы я мог выяснить, к какому графу они принадлежат
- (невозможно) глобально перехватить
Actor.receive
для определения времени выполнения и приписать его графику на основе имени актера
Наши графики довольно сложны, поэтому я бы хотел избежать ручного инструментирования каждого Flow
.
Я новичок в akka / streams, поэтому я надеюсь, что упускаю что-то очевидное.