Skip to content

Distributed self-organizing system written in C#. When deployed, it monitors state of distributed nodes grouped into tree-based structure. Comes with embedded SQL interpreter for installing new monitoring queries

Notifications You must be signed in to change notification settings

swtwsk/cloudatlas

Repository files navigation

CloudAtlas

Project

Build

Backend (interpreter, server and client applications) is written in C#, frontend in JavaScript with help of Vue.js framework.

Project uses open source distribution of .NET Core.

After installation of dotnet, building a project on Ubuntu require running command:

dotnet build

in main project directory.

Structure

Project is divided into five applications, it is best to run each one in its own directory:

  • Interpreter is an independent console application, interpreter of SQL-stylized queries. The additional argument is a path to the file describing all of the ZMIs (by default, it searches for zmis.txt file):
cd Interpreter
dotnet run [zmiFileName]
  • CloudAtlasAgent is server application divided into modules and wrapper for the interpreter. By default running on 127.0.0.1:5000 (node communication module) oraz 127.0.0.1:5001 (RPC module). It needs two arguments to run - name of the ZMI and path to file with public RSA key for verifying query signatures. -i flag marks path to configuration file (random.ini and roundrobin.ini are both example configuration files). dotnet run -- --help provides description of all the argument flags. Standard run:
cd CloudAtlasAgent
dotnet run -- -k ../QuerySigner/rsa.pub -n "/uw/violet07"
  • CloudAtlasClient is a client application communicating with Agent on behalf of RPC calls and also serving as HTTP server for user interface frontend. Similarly as in case of Agent it is possible to show additional run options with dotnet run -- --help command. Client uses Nancy miniframework (inspired by both Sinatra and Flask) to serve webpage and provide REST API with data downloaded from Agent instance. One-page webpage written with Vue.js framework, its sources can be found in FrontEnd directory.
cd CloudAtlasClient
dotnet run
  • Fetcher is second client application, updating associated Agent with data about machine it works on. To fetch data it runs shell script fetch.sh (tested on Ubuntu 16.04, does not work on Mac OS X). Running Fetcher require providing it with path to initialization file and name of associated ZMI associated:
cd Fetcher
dotnet run -i sample.ini -n "/uw/violet07"

With -c flag fetcher can be provided with path to fallback contacts file, contacts to which Agent will try to connect when without any other.

  • QuerySigner signs the queries Client provides:
dotnet run -- -k rsa.private

A few project files can be found in Shared directory -- the basic library used by multiple applications.

About

Distributed self-organizing system written in C#. When deployed, it monitors state of distributed nodes grouped into tree-based structure. Comes with embedded SQL interpreter for installing new monitoring queries

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages