Giter Club home page Giter Club logo

rpcboard's Introduction

rpcboard

rpcboard is a visualization tool that collects and reconstructs distributed traces in real time, from client/server logs.

This project was developed for CS244B: Distributed Systems, Spring 2020.

Looking for the project at the time of submission? Check out commit hash 68cd222.

Usage

Adding symlinks to PATH

Symbolic links for the rpcboard and rpcboard-trace commands are provided in the root directory of the project. You can add them to your path per Terminal session (allowing easy execution of the commands below) by running export PATH=$PATH:$(pwd) (set PATH $PATH (pwd) on fish). Two scripts are provided in the repo under the name add_scripts, for that purpose:

source add_scripts.fish

If you want a more permanent solution, you can modify your shell's configuration file accordingly.

Starting a distributed trace collection

First, start a rpcboard instance on localhost:8080:

rpcboard -p 8080 -s 6006

This boots up a log server that will accept streaming connections from nodes you want to monitor on port 8080 and serve the dashboard on port 6006. Now, assuming you have a distributed application you want to profile (see /examples for some applications you can trace), you can wrap the commands which start its nodes inside:

rpcboard-trace -p 8080 [command ...]

This convenience wrapper connects to the log server on port 8080, sets necessary trace flags, then forks a child process that runs your command, with any supplied args/flags, and pipes stderr via socket to the log server.

Once everything's set up, you can go to localhost:6006 to watch your distributed system go!

Developing

Developed using Node v12.14.1.

See the documentation for all the components, as well as guides for getting started developing.

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.