RETIRED, Fuel anonymous statistics collector
Go to file
Alexander Kislitsky ea6263af70 Cleaning test DB without Alembic migrations
On the Fuel CI we have no rights to drop and create DB.
In the tests we are downgrading and upgrading DB schema by Alembic
migrations. In case of adding migrations in one review we had
all other reviews broken due to Alembic failures on attempt to
downgrade DB schema.
As fix we are fallback to the cleaning DB without migrations
in case of Alembic error on the schema downgrade.

Change-Id: I65faf43c28427594495c67696ca190e7fe29f083
Closes-Bug: #1556876
2016-03-29 14:23:13 +00:00
analytics Merge "Fuel version from cluster used in OSWL reports" 2016-03-10 14:57:40 +00:00
collector Cleaning test DB without Alembic migrations 2016-03-29 14:23:13 +00:00
migration Fuel-stats prepared for OpenStack CI 2015-10-21 14:40:44 +03:00
tools Cluster attributes added to CSV report 2016-03-09 18:23:50 +03:00
.gitignore Filtered stats excluded from CSV reports 2015-06-30 17:19:36 +03:00
.gitreview Update .gitreview for new namespace 2015-10-17 22:27:16 +00:00
LICENSE Wrong license file fixed 2015-07-02 17:34:02 +03:00
MAINTAINERS Maintaners file added to fuel-stas 2015-10-12 13:05:56 +03:00
MANIFEST.in Fuel-stats prepared for OpenStack CI 2015-10-21 14:40:44 +03:00
README.md Merge "Refactoring with gulp and bower" 2014-12-01 12:38:29 +00:00
requirements.txt Fuel-stats prepared for OpenStack CI 2015-10-21 14:40:44 +03:00
setup.py Fuel-stats prepared for OpenStack CI 2015-10-21 14:40:44 +03:00
test-requirements.txt Fuel-stats prepared for OpenStack CI 2015-10-21 14:40:44 +03:00
tox.ini Cluster attributes added to CSV report 2016-03-09 18:23:50 +03:00

README.md

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