Slide 1

Slide 1 text

GDE Monitoring distributed systems with Google Big Query and R Dale Humby CTO, Nomanini Google Developer Expert for Cloud Platform

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

micro-transactions in emerging markets

Slide 4

Slide 4 text

GDE

Slide 5

Slide 5 text

GDE

Slide 6

Slide 6 text

GDE

Slide 7

Slide 7 text

GDE

Slide 8

Slide 8 text

GDE

Slide 9

Slide 9 text

GDE Continuous Delivery

Slide 10

Slide 10 text

GDE

Slide 11

Slide 11 text

JSON GDE Event counters { "counts": { "ERROR": 7, "WARNING": 1475, "DEBUG": 362754, "[E].EventsManager.423": 2, "[E].GPSManager.259": 1, "[E].SlaveCommsDispatcher.158": 4 }, "firmwareVersion": "4264-548923b591c6", "startTime": "2014-09-22 00:00:01.152", "endTime": "2014-09-23 00:00:06.574" }

Slide 12

Slide 12 text

JSON GDE Event counters { "counts": { "SignalStrength.Percent.20-40": 18, "SignalStrength.Percent.40-60": 12, "SignalStrength.Percent.60-80": 15, "SignalStrength.Percent.80-100": 1, ... "GPRS.TimeToConnect.Seconds.0-20": 2 }, ... Histogram and timing

Slide 13

Slide 13 text

GDE Upload and stream to Big Query

Slide 14

Slide 14 text

GDE Diagnostics saved in Big Query

Slide 15

Slide 15 text

JSON GDE Event counters { "counts": { "ERROR": 7, "WARNING": 1475, "DEBUG": 362754, "[E].EventsManager.423": 2, "[E].GPSManager.259": 1, "[E].SlaveCommsDispatcher.158": 4 }, "firmwareVersion": "4264-548923b591c6", "startTime": "2014-09-22 00:00:01.152", "endTime": "2014-09-23 00:00:06.574" }

Slide 16

Slide 16 text

SQL GDE Create View SELECT JSON_EXTRACT_SCALAR(event_data, '$.firmwareVersion') AS firmware_version, device_id, SUM(INTEGER(JSON_EXTRACT_SCALAR(event_data, '$.counts.ERROR'))) AS errors, SUM(INTEGER(JSON_EXTRACT_SCALAR(event_data, '$.counts.DEBUG'))) AS debugs, 1e6 * SUM(INTEGER(JSON_EXTRACT_SCALAR(event_data,'$.counts.ERROR'))) / SUM(INTEGER(JSON_EXTRACT_SCALAR(event_data, '$.counts.DEBUG'))) AS error_rate FROM [nomanini.event_log] WHERE event = 'Counters' GROUP BY firmware_version, device_id ORDER BY firmware_version DESC, device_id DESC;

Slide 17

Slide 17 text

GDE SELECT * FROM [nomanini.firmware_error_rates] LIMIT 10; Query View

Slide 18

Slide 18 text

GDE Stats with R

Slide 19

Slide 19 text

GDE Good Beta release

Slide 20

Slide 20 text

GDE Log transform data to make more ‘Normal’

Slide 21

Slide 21 text

GDE Broken Beta release

Slide 22

Slide 22 text

R GDE Broken Beta release > t.test(log10(error_rate.beta), log10(error_rate.stable), paired=TRUE) Paired t-test data: log10(error_rate.beta) and log10(error_rate.stable) t = 2.8624, df = 28, p-value = 0.007872 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: 0.1131325 0.6825117 sample estimates: mean of the differences 0.3978221 Geometric mean of the differences (base 10): 2.499321

Slide 23

Slide 23 text

R GDE Broken Beta release > wilcox.test(error_rate.beta, error_rate.stable, paired=TRUE, conf.int=TRUE) Wilcoxon signed rank test data: error_rate.beta and error_rate.stable V = 318, p-value = 0.02906 alternative hypothesis: true location shift is not equal to 0 95 percent confidence interval: 7.075123 14546.761849 sample estimates: (pseudo)median 183.0312

Slide 24

Slide 24 text

GDE Broken Beta release

Slide 25

Slide 25 text

JSON GDE Event counters on broken Beta { "counts": { "ERROR": 1937, "WARNING": 1427, "DEBUG": 26319, "[E].SlaveUpdateManager.442": 1912, "[E].HTTPSManager.319": 3, "[E].DOTAManager.511": 1, ... }, "masterVersion": "3976-aff309f9d073", "startTime": "2014-07-09 09:33:57.923", "endTime": "2014-07-09 15:02:37.032" }

Slide 26

Slide 26 text

GDE Fixed Beta release

Slide 27

Slide 27 text

GDE The Future

Slide 28

Slide 28 text

GDE

Slide 29

Slide 29 text

GDE Thank You [email protected] google.com/+DaleHumby @dalehumby http://goo.gl/Cwai02

Slide 30

Slide 30 text

Experts Developer cloud.google.com $500 promo code: gde-in