GithubHelp home page GithubHelp logo

shizuka's Introduction

Shizuka

A Client/Server application for monitoring a network of computers.

Features

  1. Remotely monitor networked computer statistics such as CPU usage, RAM Usage, network throughput, and uptime.
  2. Get Notified by E-mail when events are triggered(RAM/CPU Usage goes over a threshold).
  3. Perform a limited set of commands on remote computers from the command page.
  4. View on the go with the Mobile App.

shizuka's People

Contributors

adambellemare avatar tadgh avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

shizuka's Issues

Write Monitor Manager

Write a class that:

  • Holds a list of Monitor Objects.
  • Has Some Output Option
  • Can Execute polling on all monitors
  • Can Pause Monitors.

Complete Message receiving system celery task.

Have it classify messages by type, and perform some unique actions based on type.
e.g; Type = Monitor Report will pass the remaining part of the message to some function that deletes or adds monitors based on what is shown in the report.

Change Monitor Instantiation to Factory-based using constants.

Type is now the monitor's Identifier:
i.e; RAM/HDD_C/HDD_D/HDD_SLASH_USERS/BytesReceived/BytesSent/Swap/CPU

Workflow:
Client receives message:
Monitor: {RAM add}
Client generates a new Ram monitor.

Client receives message:
Monitor: {RAM remove}
Client attempts to remove its ram Monitor

Client receives message:
Monitor: {HDD_C add}
Client attempts to add Storage monitor for HDD_C.

Client receives message:
Monitor: {HDD_D add}
Client attempts to add Storage monitor for HDD_C.

change monitor reporting to use type as key

when reporting, use TYPE as the key, and [minimum, polled(), maximum] as the value.

Sample:
{
'client_id' : 'shizuka.client.Mulder'
'data': {
'RAM': [0, 12313, 355343],
'HDD_C': [0, 12313, 355343],
'HDD_D': [0, 12313, 355343],
'BYTESREC': [0, 12313, 355343],
}
}

Write Simple Server.

This first server iteration must:

  • Automatically add any new clients that appear
  • Poll data from any clients
  • Print data to console.

Ideally a secondary thread handles polling all the clients.

Have Client registered to the Pyro Nameserver.

Need to determine the best way to handle communications.

Should we have the server ask for a poll whenever it wants, or should the server register itself to the client, and whenever it polls itself, it calls some method on the server?

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.