blob: 1eb971c780c6f2487e1c5b3a516179c1da55f4dc [file] [log] [blame] [view]
# Analytics Wizard plugin
Wizard to locally setup an Analytics Dashboard like the [Gerrit's one](https://gerrit-analytics.gerritforge.com).
This will allow you to explore the potentials of **DevOps Analytics** on your own repositories.
## What it DOES
* Setup a ready to use Analytics Dashboard with some defaults charts
* Populate the Dashboard with data coming from the repos you would like to analyse
## What it DOES NOT
* Schedule recurring import of the data, but just the first one
* Create a production ready environment. It is meant to build a *playground* to explore the potential of **DevOps
analytics**
* Create multiple dashboards
# Setup
## Prerequisites
* Gerrit v2.16
* [Analytics plugin](https://gerrit.googlesource.com/plugins/analytics/)
##Installation
Copy the [latest available jar](https://gerrit-ci.gerritforge.com/job/plugin-analytics-wizard-sbt-master-master/) into the Gerrit plugins directory and restart it.
Assuming `/usr/local/gerrit ` is the location of your Gerrit installation simply execute the following:
```bash
curl -o /tmp/analytics-wizard.jar https://gerrit-ci.gerritforge.com/job/plugin-analytics-wizard-sbt-master-master/analytics-wizard.jar &&\
cp /tmp/analytics-wizard.jar /usr/local/gerrit/plugins
```
# How to use it
Once you are logged in Gerrit you can access the dashboard configuration via the top menu (`Analytics Wizard > Configure Dashboard`).
You will land on this screen:
![alt text](./resources/wizard.png "Wizard screen")
Different parameters can be configured:
* **Dashboard name** (required): name of the dashboard you are about to create
* **Projects prefix** (optional): prefix of the projects you want to import, i.e.: to import all the projects under the Gerrit namespace, you can specify `gerrit/`. *Note: It is not a regular expression.*
* **Aggregation type** (required): the data can be aggregated by `email only`, by `email per hour`, by `email per day`, by `email per month` or by `email per year`.
* **Date time-frame** (optional): time window you want to collect data about
* **Username/Password** (optional): credentials for Gerrit API, if basic auth is needed
Once you set the parameters pressing the "Create Dashboard" button will trigger the Dashboard creation and the data import.
*Beware this operation will take a while since it requires to download several Docker images and run an ETL job to collect and aggregate the data.*
At the end of this operation you will be presented with a dashbaord similar to this one:
![alt text](./resources/dashboard.png "Wizard screen")
You can now navigate among the different charts and uncover the potentials of DevOps analytics!
# Components interaction
![alt text](./resources/sequence.png "Components interactions")
# Development
* [Project Git repo](https://gerrit.googlesource.com/plugins/analytics-wizard/)
* The project relies on:
* an [ETL data extractor](https://gerrit.googlesource.com/apps/analytics-etl)
* an [Analytics plugin](https://gerrit.googlesource.com/plugins/analytics/) to expose Gerrit metrics
* [CI/CD](https://gerrit-ci.gerritforge.com/job/plugin-analytics-wizard-sbt-master-master/)
To build the plugin, [JDK 1.8](https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) and [sbt](https://www.scala-sbt.org/) are required.
Once installed use *sbt* to build:
```bash
cd ./analytics-wizard
sbt assembly
```
This will compile, test and package the plugin artifact, which can be found in `./target/scala-2.11/analytics-wizard.jar`.