135 lines
2.9 KiB
Markdown
135 lines
2.9 KiB
Markdown
collector
|
|
=========
|
|
|
|
Prototype of statistic collector
|
|
|
|
Requirements
|
|
----------
|
|
|
|
System requirements:
|
|
postgresql database server of version 9.3 or greater.
|
|
|
|
To install python requirements use command:
|
|
`pip install -r {corresponding_requirement_file}`
|
|
|
|
Operations
|
|
----------
|
|
|
|
By default manage_collector.py works with prod settings.
|
|
For working with test settings use `python manage_collector.py --mode` option.
|
|
|
|
For creating DB migration:
|
|
|
|
python manage_collector.py --mode test db migrate -m "Migration comment" \
|
|
-d collector/api/db/migrations/
|
|
|
|
Create DB user with password 'collector':
|
|
|
|
sudo -u postgres createuser -DES collector
|
|
|
|
or:
|
|
|
|
sudo -u postgres psql
|
|
CREATE ROLE collector WITH NOSUPERUSER NOCREATEDB NOCREATEROLE LOGIN ENCRYPTED PASSWORD 'collector';
|
|
|
|
Create DB and grant privileges to it:
|
|
|
|
sudo -u postgres psql
|
|
CREATE DATABASE collector;
|
|
GRANT ALL ON DATABASE collector TO collector;
|
|
|
|
For apply the latest migration:
|
|
|
|
python manage_collector.py --mode test db upgrade -d collector/api/db/migrations/
|
|
|
|
For revert all migrations:
|
|
|
|
python manage_collector.py --mode test db downgrade -d collector/api/db/migrations/
|
|
|
|
For starting test server:
|
|
|
|
python manage_collector.py --mode test runserver
|
|
|
|
Example config for uWSGI is located in collector/uwsgi/collector_test.yaml
|
|
|
|
|
|
Local setup
|
|
----------
|
|
|
|
To run statistics UI locally you need to do the following:
|
|
|
|
Install elasticsearch 1.3
|
|
|
|
pip install elasticsearch
|
|
|
|
Run test_report from NodesDistribution
|
|
|
|
prepare virtualenv:
|
|
|
|
cd fuel-stats
|
|
virtualenv .venv
|
|
source .venv/bin/activate
|
|
pip install -r collector/test-requirements.txt
|
|
cd migration
|
|
|
|
run tests:
|
|
|
|
nosetests migration.test.report.test_reports:Reports.test_libvirt_type_distribution
|
|
|
|
or
|
|
|
|
nosetests migration.test.report.test_os_distribution:OsDistribution
|
|
|
|
|
|
this will create demo data from elasticsearch
|
|
|
|
Install elasticsearch service
|
|
|
|
you can use this helpfull gist https://gist.github.com/wingdspur/2026107
|
|
|
|
And don't forget to start elasticsearch service
|
|
|
|
sudo service elasticsearch start
|
|
|
|
Nginx installation
|
|
|
|
sudo apt-get install nginx
|
|
|
|
fix Nginx config:
|
|
|
|
server {
|
|
listen 8888; // your free port
|
|
location / {
|
|
root /home/kpimenova/fuel/fuel-stats/analytics/static; // your path to fuel-stats/analytics/static
|
|
}
|
|
location ~ ^(/fuel)?(/[A-Za-z_0-9])?/(_count|_search) {
|
|
proxy_pass http://127.0.0.1:9200;
|
|
}
|
|
}
|
|
|
|
Then restart Nginx:
|
|
|
|
service nginx restart
|
|
|
|
After this your local server will be available at 0.0.0.0:8888 // or any other port you've set up :)
|
|
|
|
|
|
Also for correct UI work you need to setup a few things
|
|
|
|
Install nodejs packages
|
|
|
|
cd fuel-stats/analytics/static
|
|
npm install
|
|
|
|
Install bower packages
|
|
|
|
cd fuel-stats/analytics/static
|
|
gulp bower
|
|
|
|
That's all.
|
|
|
|
You can anytime lint your code by running
|
|
|
|
gulp lint
|
|
|