Learning about software development with Kibana dashboards

Similar documents
Python Project Example Documentation

Estimating Development Effort in FOSS. Source Software Projects by MSR

Aircrack-ng python bindings Documentation

Python simple arp table reader Documentation

TPS Documentation. Release Thomas Roten

Roman Numeral Converter Documentation

chatterbot-weather Documentation

A comparison between MediaWiki, TWiki and XWiki communities Feb 1st, / 20

I2C LCD Documentation

django-idioticon Documentation

Python wrapper for Viscosity.app Documentation

sainsmart Documentation

Release Nicholas A. Del Grosso

DNS Zone Test Documentation

Poulpe Documentation. Release Edouard Klein

google-search Documentation

PyCRC Documentation. Release 1.0

Redis Timeseries Documentation

Simple libtorrent streaming module Documentation

Game Server Manager Documentation

django-reinhardt Documentation

Using GitHub and SourceTree to work with DITA TC repositories

pyldavis Documentation

Pulp Python Support Documentation

Signals Documentation

Release Fulfil.IO Inc.

Django MFA Documentation

Getting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master...

git-pr Release dev2+ng5b0396a

Mantis STIX Importer Documentation

Google Domain Shared Contacts Client Documentation

OpenUpgrade Library Documentation

nacelle Documentation

Distributed CI: Scaling Jenkins on Mesos and Marathon. Roger Ignazio Puppet Labs, Inc. MesosCon 2015 Seattle, WA

MOOSE-Based Application Development on GitLab

withenv Documentation

dj-libcloud Documentation

django-cas Documentation

Python State Machine Documentation

Lab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU

doconv Documentation Release Jacob Mourelos

Aldryn Installer Documentation

Software Development I

gunny Documentation Release David Blewett

Release Ralph Offinger

GIT. A free and open source distributed version control system. User Guide. January, Department of Computer Science and Engineering

Python AutoTask Web Services Documentation

Github/Git Primer. Tyler Hague

flask-dynamo Documentation

smartfilesorter Documentation

django-telegram-bot Documentation

Simple Binary Search Tree Documentation

Git Basi, workflow e concetti avanzati (pt2)

Tizen/Artik IoT Practice Part 4 Open Source Development

Using Git and GitLab: Your first steps. Maurício

Comparison between SLOCs and number of files as size metrics for software evolution analysis 1

django simple pagination Documentation

1. Which of these Git client commands creates a copy of the repository and a working directory in the client s workspace. (Choose one.

Python Project Documentation

Django Wordpress API Documentation

I hate money. Release 1.0

diceware Documentation

Python Schema Generator Documentation

Kivy Designer Documentation

Pykemon Documentation

Python State Machine Documentation

Lecture 6 Remotes. Sign in on the attendance sheet!

eventbrite-sdk-python Documentation

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control:

Git Workflows. Sylvain Bouveret, Grégory Mounié, Matthieu Moy

yardstick Documentation

Welcome! Virtual tutorial will start at 15:00 GMT. Please leave feedback afterwards at:

Python data pipelines similar to R Documentation

Continuous integration & continuous delivery. COSC345 Software Engineering

GETTING TO KNOW GIT: PART II JUSTIN ELLIOTT PENN STATE UNIVERSITY

Python AMT Tools Documentation

Improving Your Life With Git

Tips on how to set up a GitHub account:

Snakemine: Redmine API wrapper Documentation

PyWBEM Python WBEM Client: Overview #2

Job Submitter Documentation

Managing Network Configurations with Git and GitLab

Midterm Next Week. Last year s midterm (which didn t include remotes):

Introduction to Git and Github Repositories

Using GitHub for scientific research

PyCon APAC 2014 Documentation

Git for Subversion users

AppDynamics Integration Guide

VIP Documentation. Release Carlos Alberto Gomez Gonzalez, Olivier Wertz & VORTEX team

CS314 Software Engineering Configuration Management

django-users2 Documentation

Agenda. - Final Project Info. - All things Git. - Make sure to come to lab for Python next week

Version Control: Gitting Started

syslog-ng Apache Kafka destination

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2

TangeloHub Documentation

Perkit Benchmarker: A User Perspective. Feb 27th, Liqun (Legion) Cheng Staff Performance Engineer, Google Platforms

django CMS Export Objects Documentation

Lab 08. Command Line and Git

Transcription:

Learning about software development with Kibana dashboards Jesus M. Gonzalez-Barahona jgb@bitergia.com @jgbarah Bitergia / LibreSoft (URJC) Lightning Talks, FOSDEM Brussels (Belgium), January 31st 2016 Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 1 / 29

c 2016 Bitergia Some rights reserved. This presentation is distributed under the Attribution-ShareAlike 3.0 license, by Creative Commons, available at http://creativecommons.org/licenses/by-sa/3.0/ Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 2 / 29

Structure of the presentation 1 A bit of context 2 From the team who built MetricsGrimoire... 3 Your very own dashboard for your pet GitHub repo 4 Enjoy 5 Some details 6 Bonus track Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 3 / 29

A bit of context Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 4 / 29

Me and my circumstances Uni Rey Juan Carlos: LibreSoft research team Understanding free, open source software development Data analytics approach Bitergia: From research to the real world Understanding free, open source software development Data analytics approach http://gsyc.es/~jgb http://bitergia.com Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 5 / 29

The company The software development analytics company dashboards reports consultancy... http://bitergia.com Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 6 / 29

From the team who built MetricsGrimoire... Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 7 / 29

MetricsGrimoire: the current state of affairs Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 8 / 29

MetricsGrimoire: supported data sources Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 9 / 29

GrimoireLab: the next big thing Perceval: retrieving data ElasticSearch: storing data Python / Pandas scripts: enrich, analyze, customize the data Kibiter: Kibana fork to interact with the data http://grimoirelab.github.io http://blog.bitergia.com Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 10 / 29

Your very own dashboard for your pet GitHub repo Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 11 / 29

One of my pet repos: MetricsGrimoire/Bicho https://github.com/metricsgrimoire/bicho Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 12 / 29

Set up the environment Create and activate a new Python virtualenv: $ virtualenv -p /usr/bin/python3 gitlab $ gitlab/bin/activate Install dependencies (gitlab) $ pip install beautifulsoup4 (gitlab) $ pip install python-dateutil (gitlab) $ pip install requests (gitlab) $ pip install six Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 13 / 29

Install GrimoireLab tools Install Perceval from its GrimoireLab git repo: (gitlab) $ git clone \ https://github.com/grimoirelab/perceval.git (gitlab) $ cd perceval (gitlab) $ git checkout fosdem16 (gitlab) $ python3 setup.py install (gitlab) $ cd.. Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 14 / 29

Install GrimoireLab tools Clone GrimoireELK GrimoireLab git repo, checkout branch fosdem16 (gitlab) $ git clone \ https://github.com/grimoirelab/grimoireelk.git (gitlab) $ cd GrimoireELK (gitlab) $ git checkout fosdem16 (gitlab) $ cd.. Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 15 / 29

Prepare the repository to analyze We will use MetricsGrimoire/Bicho: (gitlab) $ git clone \ https://github.com/metricsgrimoire/bicho (gitlab) $ cd Bicho (gitlab) $ git log --raw --numstat \ --pretty=fuller --decorate=full --parents \ -M -C -c --remotes=origin --all \ > /tmp/bicho-gitlog.log Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 16 / 29

Upload info to ElasticSearch First, upload info in the git log: (gitlab) $ cd../grimoireelk/util (gitlab) $ python3./p2o.py -e http://localhost:9200 \ --no_inc --debug git /tmp/bicho-gitlog.log (gitlab) $ python3./p2o.py -e http://localhost:9200 \ --no_inc --debug --enrich_only git /tmp/bicho-gitlog.log... 2016-01-31 00:47:26,960 Deleted and created index http://localhost:9200/git tmp_bicho-gitlog.log_enrich Index name: git tmp_bicho-gitlog.log_enrich Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 17 / 29

Upload info to ElasticSearch Second, upload info from GitHub issues & pull requests (may take a while & requires a GitHub token) (gitlab) $ python3./p2o.py -e http://localhost:9200 \ --no_inc --debug github --owner metricsgrimoire \ --repository bicho --token XXXX (gitlab) $ python3./p2o.py -e http://localhost:9200 \ --no_inc --debug --enrich_only github \ --owner metricsgrimoire --repository bicho --token XXXX... 2016-01-31 00:45:37,269 Deleted and created index http://localhost:9200/github_https: github.com_metricsgrimo Index name: github_https: github.com_metricsgrimoire_bicho_enrich Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 18 / 29

Produce a Kibana dashboard We upload template dashboards to ElasticSearch, and build our dashboards with them (notice the index names) (gitlab) $ python3./kidash.py -e http://localhost:9200 \ -g --import../dashboards/git-activity.json (gitlab) $ python3./kidash.py -e http://localhost:9200 \ -g --import../dashboards/github-pr-bubbles-geomap.json (gitlab) $ python3./e2k.py -g -e http://localhost:9200 \ -d "Git-Activity" -i git tmp_bicho-gitlog.log_enrich (gitlab) $ python3./e2k.py -g -e http://localhost:9200 \ -d "PRBubblesGeoMap" -i \ github_https: github.com_metricsgrimoire_bicho_enrich Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 19 / 29

Enjoy Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 20 / 29

See the dashboards in your browser http://localhost:5601 Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 21 / 29

Select the produced dashboards Template dashboards: Git Activity and PRBubblesGeoMap Real dashboards: the other two Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 22 / 29

Watch the results of your work! Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 23 / 29

Watch the results of your work! Play with them! Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 24 / 29

Some details Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 25 / 29

Deploying ElasticSearch, Kibana Download and uncompress ElasticSearch, from their website $ cd elasticsearch-1.7.1/ # [Configure, if needed] $ bin/elasticsearch Download and uncompress Kibana, from their website $ cd kibana-4.1.1-linux-x64 # [Configure, if needed] $ bin/kibana Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 26 / 29

Get a GitHub token Your photo Settings Personal access tokens Generate new token Take note of it, or you won t see it again! Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 27 / 29

Bonus track Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 28 / 29

Preview: our new Kibana-based dashboards http://s.bitergia.com/db-fosdem16 Jesus Gonzalez-Barahona (Bitergia) GrimoireLab: What s Next? Jan 2016 29 / 29