Giter VIP home page Giter VIP logo

akka-visualmailbox's Introduction

akka-visualmailbox

Build Status Project Score Project Mood

Current version: 1.1.0

This project wants to help you finding hotspots in your Akka application by visualizing your message flows like it is shown on the next picture. Actors are displayed as nodes, message flows are displayed as arrows. The thicker an arrow is displayed, the more messages have been sent this way. You can get the actor path by clicking the nodes. The number shown on a node represents the mailbox size of this actor.

sample flow

collector

The collector is the component that collects the mailbox data and sends it to the visualization server. To integrate the collector into your project you just have to add the dependency to your build file and set the collector mailbox for the akka default dispatcher.

build.sbt

libraryDependencies += "de.aktey.akka.visualmailbox" %% "collector" % "1.1.0"

application.conf:

akka.actor.default-mailbox.mailbox-type = "de.aktey.akka.visualmailbox.VisualMailboxType"

It will collect your mailbox data and send it in chunks of 40 data sets or at least every second to the visualization server.

visualization

The visualisation component receives the mailbox data at udp://0.0.0.0:60009, which can be changed in the application.conf by overriding

de.aktey.akka.visualmailbox {
  server {
    address {
      host: "localhost"
      port: 60009
    }
  }
}

It servers a web surface at http://localhost:8080, that renders the messages with vis.js The web server can be changed to listen at a different interface by overriding in the application.conf

de.aktey.akka.visualmailbox {
  web.server {
    address {
      host: "0.0.0.0"
      port: 8080
    }
  }
}

It uses the JavaScript keyword "class" and the "EventSource" API, so it is viewable with Chrome 42+ or Firefox 45+. Other browsers I did not try.

run visualization with sbt

To run the server, you have to have node.js and bower installed. To prepare the web part you need to do

bower install

in the project root directory, then

sbt "project visualization" run

to run the server.

run visualization with docker

There is docker image on https://hub.docker.com. You can run it with

docker run -ti --rm -p 8080:8080 -p 60009:60009/udp ouven/akka-visual-mailbox-visualization

sample-project

The sample project puts it all together, to show the usage and to play arround with pictures. You can run it with

sbt "project sample-project" run

common

The common project contains the protocol and common config stuff.

akka-visualmailbox's People

Contributors

jamesanto avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.