Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/uberVU/elasticboard
Dashboard that aggregates relevant metrics for Open Source projects.
https://github.com/uberVU/elasticboard
Last synced: 4 months ago
JSON representation
Dashboard that aggregates relevant metrics for Open Source projects.
- Host: GitHub
- URL: https://github.com/uberVU/elasticboard
- Owner: uberVU
- License: mit
- Created: 2013-11-28T12:33:38.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2014-05-09T18:47:31.000Z (over 10 years ago)
- Last Synced: 2024-06-22T21:09:36.460Z (6 months ago)
- Language: JavaScript
- Homepage: http://elasticboard.mihneadb.net/landing.html
- Size: 7.38 MB
- Stars: 61
- Watchers: 13
- Forks: 7
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
elasticboard
============http://elasticboard.mihneadb.net/landing.html
Dashboard providing an easy way to track a GitHub repo's evolution. There's a timeline to quickly bring you up to
speed, graphs to view aggregated statistics and useful insights
so that you never miss an issue again.You can view an example dashboard
[here](http://elasticboard.mihneadb.net/#/gabrielfalcao/lettuce).##Setting it up
###Config file
First, you need to set up your config file:
cp example_config.json config.json
Add the repository(ies) that interest you. The syntax is the following:
```json
{
"owner": "facebook",
"repository": "react",
"interval": 3600,
"authentication": {
"username": "SOMEUSER",
"password": "SOMEPASS"
}
}
```Note that the authentication part is optional (helps with the API rate limit
and private repositories).###Deploy with docker
1. Download and run the docker image:
```sudo docker run -v `pwd`:/home/elasticboard -p 8080:80 -p 5000:5000 -i mihneadb/elasticboard /bin/start.sh```
2. There is no step 2. You now have elasticboard running at
[http://localhost:8080](http://localhost:8080).###Manual deploy
Make sure you have an [elasticsearch](http://www.elasticsearch.org/download)
instance accessible.You also have to install the necessary Python dependencies:
```bash
# probably in a virtualenv
pip install -r data_processor/requirements-pip
```Install the GitHub [river](https://github.com/uberVU/elasticsearch-river-github). (link has instructions, currently
you need a version `>= 1.6.3`)Run the `init_rivers.py` file to load the rivers inside elasticsearch (make sure you
installed the python dependencies):```bash
python init_rivers.py
```Fire up the API server:
gunicorn -k eventlet -w 4 -b 0.0.0.0:5000 data_processor.api:app
Serve the dashboard:
Start a webserver in `dashboard`:
cd dashboard; python -m SimpleHTTPServer
Point your browser to [http://localhost:8000](http://localhost:8000)
(or whatever URL you are using) and you are good to go!##Current status
Working prototype. We have the timeline and some graphs.
We are working on implementing
[queries](https://github.com/uberVU/elasticboard/issues?labels=query&page=1&state=open) and [insights](https://github.com/uberVU/elasticboard/wiki/Insights)
in order to provide relevant information.##How you can help
Help us implement
[queries](https://github.com/uberVU/elasticboard/issues?labels=query&page=1&state=open) and [insights](https://github.com/uberVU/elasticboard/wiki/Insights)!
We are using the friendly
[elasticutils](http://elasticutils.readthedocs.org/en/latest/) library for this.
The
[existing code](https://github.com/uberVU/elasticboard/blob/master/data_processor/queries.py)
and issue descriptions should help you get started. If you need more
info, please post a comment on the respective issue.If you have an idea of a metric that is not covered in that list,
please submit it on the [issue tracker](https://github.com/uberVU/elasticboard/issues).##Architecture
The **dashboard** takes care of the visualization aspect.
The **data_processor** is where all querying happens. It accesses data stored in
elasticsearch using [elasticutils](http://elasticutils.readthedocs.org/en/latest/)
and exposes the results through a simple API server that the dashboard calls.Data flows directly into elasticsearch through the
[GitHub river](https://github.com/uberVU/elasticsearch-river-github).