Skip to content

ItJustWorksTM/EiffelVis

Repository files navigation

EiffelVis

EiffelVis

Sandbox badge Backend CI Frontend CI license

EiffelVis is a scalable Eiffel pipeline traffic visualization stack built on Rust & Svelte. Briefly, the Eiffel protocol is a tool which helps control multiple CI/CD Pipelines within or across multiple projects. To learn more about the Eiffel Protocol, please visit the Eiffel Community.

Why should you use EiffelVis?

The Eiffel Protocol consists of multiple Eiffel Events which each have a defined purpose and structure. In a typical CI pipeline which uses the Eiffel Protocol, there can be hundreds of events which are generated over a short time period. Visualizing large amounts of data such as thousands of Eiffel Events can be difficult, and that's where EiffelVis stands out. EiffelVis is a data visualization and data manipulation tool for Eiffel Events.

Useful Links:

Getting Started

These instructions are an example of how you may run EiffelVis locally.

Prerequisites

Installation

  1. Clone the repository using SSH (or HTTP)

    git clone git@github.com:ItJustWorksTM/EiffelVis.git
  2. After going to the root folder where the repository was cloned, install dependencies for the frontend

    cd EiffelVis/frontend
    npm install
  3. Compile and run the frontend

    npm run dev
  4. The frontend will now be running on port localhost:8080. If you go to this address in your browser, you should be able to view the EiffelVis client. As you will see, there are no events and there is no graph. To see events we need to set up the backend through which we will also load the graph data.

  5. As the client will be running in the current terminal, open a new terminal to run the backend. Go to the root directory of EiffelVis and run the commands

    cd EiffelVis/backend
    cargo run -- --help

Now that the application is running in these 5 simple steps, your client should look something like this: sample image

Usage

Additional information that will be useful in helping you utilize EiffelVis to it's maximum potential.

For usage instructions and information regarding the client/frontend, please see the frontend guide, and for the backend, please see the backend guide.

Deployment

If you would like to deploy the application please refer to the deployment guide for detailed instructions.

About the Repository

The contents of this repository are licensed under the Apache License 2.0.

To contribute to this repository, please see the contribution guidelines.

If you would like to read more about the algorithm used by EiffelVis, please see the algorithm concept.

Copyright © 2022, EiffelVis. EiffelVis is a product by ItJustWorks™.

Event Sender and testing instructions (for default rabbitmq configuration)

  1. start your rabbitmq server rabbitmq server or brew services start rabbitmq if you are using homebrew on mac.
  2. If not activated, activate the management pluggin by running rabbitmq-plugins enable rabbitmq_management
  3. go to http://localhost:15672to enter the rabbitMQ management page. (default credentials are username & password: guest)
  4. go to the queue panel and create a new queue. The queue has to use the same name as the one you are going to use with the backend (default hello) 5 go to the exchange panel and select amq.fanoutin the list.
  5. Click on Bindingsand add the binding of this exchange to the queue using the same name as step 3.
  6. go into EiffelVis/backend/tools/event_senderand run the command cargo run -- -r <any_routing_key> (you can also add other options, run to cargo run -- --helpfor more info)
  7. go into EiffelVis/backendand run cargo run
  8. go into EiffelVis/frontendand run npm run dev
  9. open your browser to localhost:8080and you should have nodes coming and being displayed on the graph.