Gerrit Code Review Analytics

Post on 15-Apr-2017

471 views 2 download

Transcript of Gerrit Code Review Analytics

#GerritUserSummit

Gerrit AnalyticsUncover the hidden value of your Gerrit Code Review

Luca Milanesioluca@gerritforge.com

@gitenterprise @gerritreview #GerritUserSummit

• Founded in the UK• HQ in London, Offices in the UK and Italy• Committed to OpenSource

About GerritForge

@gitenterprise @gerritreview #GerritUserSummit

• Co-founder and Director of GerritForge • over 20 years in Agile

Development and ALM• Contributor to many

OpenSource projects• Mind and hands of

@gitenterprise and @gerritreview Twitter feeds

About Luca Milanesio

@gitenterprise @gerritreview #GerritUserSummit

NOT a lecture on Continuous Delivery

NOT a lecture on Code ReviewNOT a lecture on BigData

What NOT to expect?

@gitenterprise @gerritreview #GerritUserSummit

SHOW a Continuous Delivery scenario

@gitenterprise @gerritreview #GerritUserSummit

LEARNtogether from its problems

@gitenterprise @gerritreview #GerritUserSummit

EXPERIMENTa new approach using BigData

@gitenterprise @gerritreview #GerritUserSummit

DISCUSSresults together and iterate

@gitenterprise @gerritreview #GerritUserSummit

Continuous Delivery Pipeline

Push Build

Unit Tests

Push Build

Unit Tests

Automated

Tests

Push Build

Unit Tests

Automated

Tests

Beta Users

Tests

User's feedback Publish to all Users

Failed

Failed

@gitenterprise @gerritreview #GerritUserSummit

Code Review & CD Validation

A1

refs/for/master

master

C2 C2*

A1 C2 (local)master

C2*

push

Verified: -1(build failed)

push

Verified: +1(build OK)

Reviewed: +2

CI Build: OK

C2*

CI Build: OK

amend

@gitenterprise @gerritreview #GerritUserSummit

Git/Gerrit (Code Review)

Components

Jenkins (Continuous Integration & Delivery)

@gitenterprise @gerritreview #GerritUserSummit

We use micro-services–100+ Components–200+ Repositories–300+ People and 100,000+ of review comments

–Cross-components [implicit] dependencies–Lots of build chains–10,000+ of builds

Now feel the pain :-(

@gitenterprise @gerritreview #GerritUserSummit

Problem #1 : Tons of logs slows us down

"Build was so fast a week ago … why is it getting so slow now?"

100Ks of logs are tough for Jenkins

@gitenterprise @gerritreview #GerritUserSummit

"It was working until 5 mins ago … then someone changed something"

Rings any bell?

Problem #2 : Ripple effect

@gitenterprise @gerritreview #GerritUserSummit

• Collect all review events• Collect all logs• Channel them to a central store• Crunch and Crunch continuously•Never delete• Process, inspect and learn

BigData to the rescue

@gitenterprise @gerritreview #GerritUserSummit

Continuous Delivery – Analytics Pipeline

Data Aggregatio

n Jobs

@gitenterprise @gerritreview #GerritUserSummit

Gerrit plugins to extract analytics datahttps://gerrit.googlesource.com/plugins/analytics/

@gitenterprise @gerritreview #GerritUserSummit

Gerrit plugins to generate real-time events on Kafkahttps://gerrit.googlesource.com/plugins/kafka/

@gitenterprise @gerritreview #GerritUserSummit

Continuous Delivery – Analytics Dimensions

Projects Commits

People Reviews

System Metrics

@gitenterprise @gerritreview #GerritUserSummit

Continuous Delivery – Tools Dimensions

SCM / Code Review

CI / CD

@gitenterprise @gerritreview #GerritUserSummit

DEMO

Continuous Delivery Analytics

@gitenterprise @gerritreview #GerritUserSummit

•Collect more data (System, JVM, Review scores)•Real-time statistics•Events correlation•Feedback loop to Code-Review•Production data harvest•Collect Issue-Tracker logs for End-2-End cycle time

Future directions

@gitenterprise @gerritreview #GerritUserSummit

Wants to know more?

www.gerritforge.com/contact