Summary The Python History Dashboard The Mozilla Rust Language Dashboard GrimoireLab Environment Perceval GrimoireELK: Retrieval and Enrichment Experimental Arch Based on ElasticSearch (ES) Arthur and Merlin: Paving the complete platform Kibana: Analytics Dashboards based on ES «GOAL: Create new backends by the community»
with Analytics in Open Source projects The Python Language Repository: https://github.com/python/cpython (mirror from official Mercurial) Uploaded git information with Perceval and p2o to ES: https://codemotion2016.biterg.io/data Enriched with p2o in the same ES Created a basic dashboard with Kibana at: https://codemotion2016.biterg.io/app/kibana#/dashboard/GitPython Time to play and to MOTIVATE Ready to DIY?
you have installed GrimoireLab Perceval git clone https://github.com/grimoirelab/perceval.git cd perceval && sudo python3 setup.py install GrimoireELK git clone https://github.com/grimoirelab/GrimoireELK.git You can also use your own ElasticSearch and Kibana if you want. In the workshop we will use (HTTPS): ElasticSearch: https://codemotion2016.biterg.io/data Kibana: https://codemotion2016.biterg.io/edit → While you do it let’s create some context about Analytics ←
“Just” get the data and generate JSON items with it >20 data sources supported and growing: git, gerrit, bugzilla, github, stackoverflow, meetup … GPLv3, github based, pull request development model, unit testing with Travis and a life of 1 year Development doc at http://perceval.readthedocs.io perceval <backend> <repository> perceval git https://github.com/grimoirelab/perceval.git
(API) fetch from_date and offset category fetch_from_cache from perceval.backends.git import Git git = Git('https://github.com/grimoirelab/perceval.git','/tmp/perceval') for commit in git.fetch(): print(commit)
Prototype to be dropped (reusing valuable code) Data retrieval using perceval Publishing in Elastic Search The Enrichment Process Sorting Hat Projects Mapping Copying, renaming and real enrichment Enrichment refreshing
Tool to manage identities deduplication and affiliations. Identity: Name, Username and Email A Unique Identity could have several Identities Open source: https://github.com/MetricsGrimoire/sortinghat In Bitergia we manage around 1.5 millions identities now
2 Ocean (p2o) Ocean is the ElasticSearch with “all” the raw JSON items p2o is Basic tool to read options from command line and use gelk libraries for: Feed data to ES from Perceval: JSON items to ES, easy! Enrich data from ES to use it in Kibana
p2o with git GrimoireELK/utils $ ./p2o.py g –enrich e https://bitergia:[email protected]/data git https://github.com/grimoirelab/perceval Upload and enrich the commits from https://github.com/grimoirelab/perceval
and Merlin* Arthur: A service for scheduling data retrieval tasks based in Python RQ https://github.com/grimoirelab/arthur (Going to production now) Merlin*: The enrichment platform based on Dask Working on the first release (Planned for next FOSDEM 2017) (*) Merlin name could change
(and Bitergia’s fork Kibiter ) Create an index pattern to access the enriched items Use Discover to review the data and do searches Create widgets for doing analytics with specific metrics, reports and so on Create dashboards integrating the widgets and doing filtering to all the widgets at the same time for a integrated view Date filtering Terms filtering