#GerritUserSummit
Gerrit Analytics
Uncover the hidden value of your Gerrit Code Review
Luca Milanesio
luca@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 Review
NOT a lecture on BigData
What NOT to expect?
@gitenterprise @gerritreview #GerritUserSummit
SHOW
a Continuous Delivery scenario
@gitenterprise @gerritreview #GerritUserSummit
LEARN
together from its problems
@gitenterprise @gerritreview #GerritUserSummit
EXPERIMENT
a new approach using BigData
@gitenterprise @gerritreview #GerritUserSummit
DISCUSS
results 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
Aggregation
Jobs
@gitenterprise @gerritreview #GerritUserSummit
Gerrit plugins to extract analytics data
https://gerrit.googlesource.com/plugins/analytics/
@gitenterprise @gerritreview #GerritUserSummit
Gerrit plugins to generate real-time events on Kafka
https://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

Gerrit Code Review Analytics