Giter Club home page Giter Club logo

aretha's People

Contributors

dependabot[bot] avatar dkarandikar avatar electronicmax avatar markraemer avatar mcnutty26 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

caiji00

aretha's Issues

daemon doesn't stop python scripts

The script grabs the PID but this isn't correct, as we call env to run it, which then calls python

Can probably fix by explicitly calling python3

refactor: eliminate loop.py

i think that loop.py adds unnecessary complexity and CPU burden and memory pressure which could be eliminated simply by integrating some of the functionality into capture.py and the rest into api.py.

Monitoring

When we deploy this, we need a mechanism to see which instances are running normally/which ones are offline or have developed problems. This will probably be something in loop that pings us every (hour?) with stats from the database so we can check the numbers are going up.

Multiple Devices same Maufacturer

The device dictionary only links manufacturers to devices, which is a problem if you're (say) a big apple fanboy and have 10 apple devices. This dictionary needs to be keyed by mac and manufacturer, not just manufacturer.

colours cycle randomly

colours cycle randomly (albeit consistently), it's a bit disorientating and it would be nice if we could figure out a way to make this not happen :)

IoT-refine doesn't work when accessed remotely

When running angular and flask bound to external interfaces, loading the front end fails (as tested on the media fire tablet).

This happens because calls to the API time out (/api/refine and /stream)

I think the long term solution here is to move to a more robust server like gunicorn, rather than use the internal flask development server.

Mouse over and remove device

Would be nice to be able to click on devices in the legend in the middle of the screen and remove these from all the charts.

Could aid in users seeing what the effects could be of removing particular devices from their homes

Auto reset

Further to #50 we should look into having a mechanism to restart parts of IoT Refine that stall for whatever reason (basically a more robust version of what we used at BRE).

postgres high CPU

I've hit the 1million packet mark in the packets table and now i'm getting postgres consistently hitting 44-60% of my CPU - we should keep a watch on this and maybe figure out ways to stress postgres out less

also possibly help it with more RAM / buffers / whatnot?

Hue Bridge - no categories

Our capture script discards the content of the packet and so later when trying to categorise bursts of traffic we will be unable to inspect and process the HTTP packets that the Hue bridge sends, and so won't be able to display to the user when lights were turned on or off.

Time scale for refine data

There should probably be a cut off point after which data is not displayed in the graphs.

Ideally we would have a selector for 1 day/ 1 week/ 1 month

This ties in with one of the main purposes of the tool - plugging something new in and seeing what changes (which is close to real time?) which isn't going to work if it displays all the data ever collected.

GeoBar doesn't display mB

GeoBar doesn't display mB and I'm not sure what data it is accessing at all, it works but should look into this to make sure they're consistent

It also doesn't seem to be consistent with the sizes of bars in refineBar. The data seems to be correct now, but the bars are still the wrong size

remove hardcoded things in the code

There are hardcoded paths to /home/mcnutty in the following files:

service/daemon.sh
service/iotrefine.service

these need to be replaced by something parameterised for the installation

api needs to catch signals

At present the api never closes connections to /stream, causing problems on shutdown

Fix: on SIGTERM or SIGINT event_stream should break out of the eternal loop

Oh God performance nightmare

Split capture and categorise into separate scripts (i.e. they don't call each other)
Stop burtsification reading two files per packet

Think about devices activated by default

Maybe we want to have devices we don't recognise be deactivated by default in the refine interface (e.g. laptops). Quite often these devices have high traffic volumes compared to other IoT devices, and end up swamping the graph with GBs of cat gifs.

ipv6 support?

I think it would be a very small amount of work to add v6 support. It was a source of confusion for me yesterday as most of my traffic to/from google is v6 now.

Installation instructions need updating

  • npm install -g @angular/cli
  • pacman -S wireshark-cli (or platform equivalent)
  • pip instal flask flask_restful
  • is ipwhois still needed? If so then it should be on the list, if not then remove it from the code
  • README.md still refers to the db reset script by its old name

domain resolution for bursts, take II

Have other predictions use the company name. Do this by opening the company file before starting the categorisation loop and passing it in, as well as pickling the dictionary of ips/companies.

Possible MAC filtering issue

iptables doesn't allow mac filtering on the OUTPUT chain, so we're using FORWARD at the moment. We need to make sure that this fires properly on packets that come from connected devices.

(see a147283)

Front end doesn't account for sliding window

As in, it should forget impacts etc. after 5 mins (or whatever the period is). At least, I don't think it does.

Might not be easy given the current architecture

Will check tomorrow when I'm not on my phone :P

Timestamp mismatch

Packet timestamps are generated in the local time zone (e.g. BST), but are recorded in the database as UTC. This causes problems later on when we try to select packets relative to the current time, which will be measured in the local time zone.

Alternative: generate all timestamps in UTC.

Database review UI

Study participants need a way of reviewing what data IoT Refine has captured, as well as a way of selectively removing data they don't want to submit at the end of an experiment

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.