Git Product home page Git Product logo

speedy's Introduction

speedy

A very simplistic solution to track, monitor & analyze your internet speed & bandwidth.

About

Your ISP promises great bandwidth and reliability to you, but you don't fully trust? Then speedy is the solution for you. Get more insights what you actually get for the money you pay.

Speed Tracker

Table of Contents

(TOC generated by verb using markdown-toc)

Features

  • Test the download & upload speed of your internet connection
  • Save the results for historic analysis
  • Ready to use dashboard to review the results

Installation

Prerequisites

Run it

Fork the repository:

$ git clone https://github.com/stefanwalther/speedy

Then run from the root directory:

$ docker-compose up -d

This will essentially spin up three Docker containers:

  • speedy - Tiny node.js service to run a speed-test periodically (based on speedtest-net.
  • InfluxDB - Time series database to store the results from speedy, based on InfluxDB.
  • Grafana - Pre-Configured Grafana instance to visualize the results.

Access the resulting dashboard at:

Configuration

All configurations are stored in configuration.envconfiguration.env.

Reference Links

Developing

Run the development environment:

$ yarn dc-dev-up

The development differs as follows from the example above:

  • Containers are build on demand (from the Dockerfiles)
  • You can work on the source code in ./docker/speedy/src and the solution will automatically get updated (using nodemon).

About

Author

Stefan Walther

Contributions

Contributions are always welcome. Just submit your PR.

License

MIT

speedy's People

Contributors

mwaldrich avatar samuelhwilliams avatar stefanwalther avatar stevebanik avatar swr-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

speedy's Issues

failed to build: pull access denied for sammlerio/node

after running the "docker-compose up" command I get this error after a while

Step 1/10 : FROM sammlerio/node
ERROR: Service 'speedy' failed to build: pull access denied for sammlerio/node, repository does not exist or may require 'docker login'

not sure if its because im not using the -d flag is seems it does not exist.

Action required: Greenkeeper could not be activated 🚨

🚨 You need to enable Continuous Integration on all branches of this repository. 🚨

To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because we are using your CI build statuses to figure out when to notify you about breaking changes.

Since we did not receive a CI status on the greenkeeper/initial branch, we assume that you still need to configure it.

If you have already set up a CI for this repository, you might need to check your configuration. Make sure it will run on all new branches. If you don’t want it to run on every branch, you can whitelist branches starting with greenkeeper/.

We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.

Once you have installed CI on this repository, you’ll need to re-trigger Greenkeeper’s initial Pull Request. To do this, please delete the greenkeeper/initial branch in this repository, and then remove and re-add this repository to the Greenkeeper integration’s white list on Github. You'll find this list on your repo or organization’s settings page, under Installed GitHub Apps.

Instructions for setting up environment variables are wrong

In the set-up instructions for the speedy docker image (/speedy/docker/speedy/readme.md) it states that the environment variable to set the influxDB name should be:
SPEEDY_DB_NAME

However in index.js, it is reading the environment variable from:
process.env.INFLUXDB_DB

This should be updated to match, either in the readme or in the index.js file. I am happy to open a PR with the change, but not sure which you would prefer changed (considering any backwards compatibility you might want for anyone currently using the image).

Action required: Greenkeeper could not be activated 🚨

🚨 You need to enable Continuous Integration on all branches of this repository. 🚨

To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because we are using your CI build statuses to figure out when to notify you about breaking changes.

Since we did not receive a CI status on the greenkeeper/initial branch, we assume that you still need to configure it.

If you have already set up a CI for this repository, you might need to check your configuration. Make sure it will run on all new branches. If you don’t want it to run on every branch, you can whitelist branches starting with greenkeeper/.

We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.

Once you have installed CI on this repository, you’ll need to re-trigger Greenkeeper’s initial Pull Request. To do this, please delete the greenkeeper/initial branch in this repository, and then remove and re-add this repository to the Greenkeeper integration’s white list on Github. You'll find this list on your repo or organization’s settings page, under Installed GitHub Apps.

User/password

After install from docker, i can access the web UI, but user and password i cannot get to work.
Have tried admin:admin, admin:passw0rd and a few other options that was top of my mind...

issue with your instructions

I wasn't able to get the docker-compose -d up command to work. I had to switch it around to docker-compose up -d

Action required: Greenkeeper could not be activated 🚨

🚨 You need to enable Continuous Integration on all branches of this repository. 🚨

To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because we are using your CI build statuses to figure out when to notify you about breaking changes.

Since we did not receive a CI status on the greenkeeper/initial branch, we assume that you still need to configure it.

If you have already set up a CI for this repository, you might need to check your configuration. Make sure it will run on all new branches. If you don’t want it to run on every branch, you can whitelist branches starting with greenkeeper/.

We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.

Once you have installed CI on this repository, you’ll need to re-trigger Greenkeeper’s initial Pull Request. To do this, please delete the greenkeeper/initial branch in this repository, and then remove and re-add this repository to the Greenkeeper integration’s white list on Github. You'll find this list on your repo or organization’s settings page, under Installed GitHub Apps.

The `speedy` container does not stay running

When using the speedy container, it doesn't stay running, and therefore the scheduled speedtests never run. See the output from my logs:

speedy       | yarn run v0.21.3
speedy       | $ node ./src/index.js
speedy       | speedy settings: { SPEEDY_DB_HOST: 'influxdb',
speedy       |   SPEEDY_DB_NAME: 'speedy',
speedy       |   SPEEDY_DB_PORT: 8086,
speedy       |   SPEEDY_INTERVAL: '"* * * * *"',
speedy       |   SPEEDY_MAX_TIME: 5000 }
speedy       | Done in 0.23s.

docker-compose up -d failing..

Successfully tagged speedy_influxdb:latest
WARNING: Image for service influxdb was built because it did not already exist. To rebuild this image you must use docker-compose build or docker-compose up --build.
Building grafana
Step 1/9 : FROM grafana/grafana:latest
latest: Pulling from grafana/grafana
9621f1afde84: Pull complete
5754dc33531e: Pull complete
75f4a274130b: Pull complete
ba47017ee971: Pull complete
17f844606bf9: Pull complete
321130b17972: Pull complete
f1b823eb9de1: Pull complete
c0b24abe3b30: Pull complete
8200e0f87cb3: Pull complete
Digest: sha256:8c65b333a3d369a095d752da2e784b484d4246659e9a4ac6a09b74353f95d1c9
Status: Downloaded newer image for grafana/grafana:latest
---> 179ad45e2c74
Step 2/9 : MAINTAINER Stefan Walther [email protected]
---> Running in 7df6b2b8fd47
Removing intermediate container 7df6b2b8fd47
---> 42540d632780
Step 3/9 : RUN apt-get update && apt-get install -y curl gettext-base && rm -rf /var/lib/apt/lists/*
---> Running in a4fecd5f94f9
/bin/sh: apt-get: not found
ERROR: Service 'grafana' failed to build: The command '/bin/sh -c apt-get update && apt-get install -y curl gettext-base && rm -rf /var/lib/apt/lists/*' returned a non-zero code: 127

Seems the grafana image no longer has apt in it? I tried with the version in the git docker compose file, but that failed in the same way so thought I'd try latest to see if that worked. It didn't.

[Change request] Docker-compose without InfluxDB and Grafana

It would be nice if you can provide a docker-compose file with only speedy service, for already installation of InfluxDB and Grafana.
you could provide a configuration file to specify host and port of existing InfluxDV and Grafana installations
Thank you
Piero

INFLUX and Speedy not communicating

After docker finished building the images I verified that Grafana and Influx started up fine. They appeared to be running(I could access their web interfaces). I noticed that Speedy was not feeding data into influxdb. Both grafana was complaining that there was no data in the db and Influx didn't show the database when I queried it from the web interface.

I checked the docker log for speedy and saw the following error.

Error: Cannot find module 'influx'
Require stack:
- /home/src/index.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:976:15)
at Function.Module._load (internal/modules/cjs/loader.js:859:27)
at Module.require (internal/modules/cjs/loader.js:1036:19)
at require (internal/modules/cjs/helpers.js:72:18)
at Object. (/home/src/index.js:1:16)
at Module._compile (internal/modules/cjs/loader.js:1147:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1167:10)
at Module.load (internal/modules/cjs/loader.js:996:32)
at Function.Module._load (internal/modules/cjs/loader.js:896:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/home/src/index.js' ]
}

I am using a fresh pull of the repo as of this morning.

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.