GithubHelp home page GithubHelp logo

racoon63 / bandwidth-monitor Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 0.0 311 KB

Bandwidth-Monitor is a tool to measure your bandwidth and latency.

License: Apache License 2.0

Python 99.28% Dockerfile 0.72%

bandwidth-monitor's People

Contributors

aweberlopes avatar racoon63 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

bandwidth-monitor's Issues

Directory and file checks before starting app

It have to be checked if all necessary directories and files are available to prevent errors in further steps. If one or more items are not present, they have to be created.

It have to be checked if the following directories and files are present:

  • data/
  • logs/
  • current.json
  • daily.json
  • monthly.json
  • yearly.json

Code tests

To increase code quality I want to have tests for the code to make sure the code works as expected.

The code coverage should be at first at least at 50%.

Implement mathematic operations in Grafana

Grafana as a monitoring tool shall be able to process data values from the storage backend like influxDB so we have the following split:

Measurement = Bandwidth-Monitor
Storage = influxDB
Display = Grafana

This has the advantage that the data can be stored in raw format as they are measured by the bwm service and don't have to be preprocessed by Bandwidth-Monitor or influxDB.

Add measurement data check

Sometimes the measurement gives only certain values. An example value that is not always included is "url2". This leads into a measuremnt data loss and is not gonna be recorded. To work around this, an data checker/appender function should check which data is available and add it to the data object.

Documentation

To know how to use this project and its service, we need a documentation that describes what this project/service is, how to use and configure it.

  • Description
  • Usage
  • Configuration
  • Change passwords
  • Maintainer
  • Contributor

Python storage backend interface

I want to have a simple interface where I can adapt new storage backends very simple to extend the service as a whole and don't have to affect other parts of the service.

implement InfluxDB as DataBase Module

InfluxDB as TimeSeries DB for BWM would be awesome. Implementing a similiar module like mongo db one shouldn't be a big deal.
I would try to implement this module.

Parameter and flag support

I want to implement parameters, options, and flags for the service when starting it e.g. specify the path to the config with -c path/to/config.ini or the server list with -s server1 server1 ....

To achieve this I want to implement this through the python argparse lib.

Parameters and flags to implement:

  • -c or --config to specify the path to a config file
  • -t to validate the config file
  • -s or --server list of servers
  • -i or --interval to set the measure interval
  • --type type of the database been used
  • --dbhost DNS name or IP of the database
  • --dbuser db username
  • --dbpassword db password of the specified (--dbuser and --dbhost are required)
  • -v or --verbose for debug output

Add readme

A readme helps users to understand how the app works and how they can use it.

The following sections are planned:

  • Description
  • Prerequisites / Installation
  • Usage
  • Docker

Bandwidth-monitor API

Acceptance criteria:

  • Is written in golang
  • Supports influx as storage backend
  • All data can be retrieved through API
  • Last data record can be retrieved

Add config changes in the config file on the fly

To get the possibility to change the config while service is running I want to implement a hashing mechanism that can check if the config file was changed and if yes reload the config file.

pipeline switch

As we have a problem with the container image build, I want to switch to another container image builder via circle-ci.

MongoDB support is completely removed

This is because mongoDB is no timeseries database which is needed for this kind of service.

Acceptance criterias:

  • is removed from docker-compose
  • is removed from all libs

Add Server ID in JSON Output

Hello Patrick,

it would be nice if you can add to json output a serverID or serverName flag.

That can help to sort it Grafana if you set auto as server.

Thanks
Alex Weber Lopes

{
    "bwm": {
        "1": {
            "download": 24.99,
            "ping": 38.49,
            "timestamp": "2020-03-07-16-22-13",
            "upload": 13.02,
            "serverID": 1234,
            "serverName: "Frankfurt"
        }
    }
}

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.