a visual debugger for Akka actor systems (experimental)
resolvers += Resolver.bintrayRepo("lustefaniak", "maven")
libraryDependencies += "com.blstream.akkaviz" %% "monitoring" % latestVersion
- see which actors exchange messages on a graph
- monitor internal state via reflection
- track FSM transitions
- monitor actor creation
- display messages in realtime (with contents) for selected actors
- filter messages by class
- delay processing of messages
We supply a few demos with the source code, so you can explore without hooking up to an existing ActorSystem.
Clone project and run with reStart
in SBT. Go to http://localhost:8888
in your favourite browser and play around!
Include jar in classpath of your app and run your main()
. Server should be listening on http://localhost:8888
.
To hook into Akka's internals, we use AspectJ (capturing actor creation, intercepting of messages). WebSocket handling is provided by Akka HTTP and Akka Streams. Filtering is done per client; slowing down of message processing, however, affects the whole system. Frontend is powered by Scala.js, Scala.Rx and ScalaTags.
We're using custom-made serialization with help of upickle for transporting the messages to frontend clients. To serialize some specific type of message - ie. your custom class, that you want to have displayed in web frontend - you have to implement a AkkaVizSerializer.