Top Banner
Сбор и обработка клиентских метрик
24

Gathering of client side metrics

Jan 08, 2017

Download

Internet

Gleb Vinnikov
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Gathering of client side metrics

Сбор и обработка клиентских метрик

Page 2: Gathering of client side metrics

I am● Many years in IT :)

● FullStack Developer

● JavaScript, NodeJS, AngularJS, etc …● Independent contractor/IT Expert/CTO

● Pet projects: IoT, Arduino, Hardware, etc …

Page 3: Gathering of client side metrics

Why?

Page 4: Gathering of client side metrics

What?● DomainLookup

● TTFB

● DOMContentLoaded

● Load

● ….

● Custom metrics

Page 5: Gathering of client side metrics
Page 6: Gathering of client side metrics

Dev tools

Page 7: Gathering of client side metrics

Your Client Matters ● Browser

● Locations

● CDN

● Server loading

● etc

Page 9: Gathering of client side metrics

PerformanceTiming

Page 10: Gathering of client side metrics

timing.js● helpers

● Normalizes firstPaint, etc ..

● https://github.com/addyosmani/timing.js/

Page 11: Gathering of client side metrics

Custom metrics● performance.mark(markName)

● performance.measure(name, startMark, endMark);

● getEntries(); getEntriesByName(); getEntriesByType();

<body>

<script>performance.mark(‘startNavigation’);</script>

<div class=”navigationBlock”> … </div>

<script>performance.mark(‘endNavigation’); performance.measure(‘navigationTime’, ‘startNavigation’, ‘endNavigation’);</script>

</body>

Page 12: Gathering of client side metrics

Sending ...● to server

● ajax, web sockets, …● is there a standard?

Page 13: Gathering of client side metrics

etsy/statsd● node.js

● http/udp

● Third-party backends

Page 14: Gathering of client side metrics

etsy/statsd● node.js

● http/udp

● Third-party backends

● <metricname>:<value>|<type>

Page 15: Gathering of client side metrics

etsy/statsd● node.js

● http/udp

● Third-party backends

● <metricname>:<value>|<type>

● Counting - gorets:1|c

Page 16: Gathering of client side metrics

etsy/statsd● node.js

● http/udp

● Third-party backends

● <metricname>:<value>|<type>

● Counting - gorets:1|c

● Sampling - gorets:1|c|@0.1

Page 17: Gathering of client side metrics

etsy/statsd● node.js

● http/udp

● Third-party backends

● <metricname>:<value>|<type>

● Counting - gorets:1|c

● Sampling - gorets:1|c|@0.1

● Timing - glork:320|ms|@0.1

Page 18: Gathering of client side metrics

etsy/statsd● node.js

● http/udp

● Third-party backends

● <metricname>:<value>|<type>

● Counting - gorets:1|c

● Sampling - gorets:1|c|@0.1

● Timing - glork:320|ms|@0.1

● Gauges - gaugor:333|g gaugor:-10|g

Page 19: Gathering of client side metrics

etsy/statsd● node.js

● http/udp

● Third-party backends

● <metricname>:<value>|<type>

● Counting - gorets:1|c

● Sampling - gorets:1|c|@0.1

● Timing - glork:320|ms|@0.1

● Gauges - gaugor:333|g gaugor:-10|g

● https://github.com/etsy/statsd

Page 20: Gathering of client side metrics

Graphite

● https://graphite.readthedocs.io/en/latest/

● Store numeric time-series data

● Render graphs of this data on demand

Page 21: Gathering of client side metrics

Graphite

Page 22: Gathering of client side metrics

Grafana

● Beautiful metric & analytic dashboards

● http://grafana.org/

Page 23: Gathering of client side metrics

Finally

Page 24: Gathering of client side metrics

Questions?● e-mail: [email protected]

● blog: http://vinnikov.net

● https://www.facebook.com/gleb.vinnikov