+ All Categories
Home > Technology > Реалтайм статистика скорости работы нативных и...

Реалтайм статистика скорости работы нативных и...

Date post: 14-Aug-2015
Category:
Upload: badoo-development
View: 6,170 times
Download: 9 times
Share this document with a friend
47
Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей Pavel Dovbush @
Transcript
Page 1: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Реалтайм статистика скорости работы нативных и веб-приложений у

реальных пользователей

Pavel Dovbush@

Page 2: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

RUMReal User Monitoring

Реальный UX

Page 3: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

● DOMContentLoaded, onLoad

● W3C Navigation Timing● W3C Resource Timing● W3C User Timing

● Нативные приложения

Что

Page 4: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

W3C Navigation Timing

Page 5: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

W3C Resource Timing

Page 6: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Load time - 32s

Page 8: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Что такое UX?

VS.

Page 9: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

● performance.mark(name)

● performance.measure(name, mark1, mark2)

W3C User Timing

Page 10: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

WebSite hit

Page 11: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

WebApp hit

Page 12: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Android hit

Page 13: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Как собрать данные?

Специализированные

Всё-в-одном

Page 14: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Собираем сами

WEB cluster

Хранилище

Графики

Приложение

Page 15: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

github.com/dpp-name/jinba

tiny.cc/jinba

Jinba

Page 16: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

● Микро-библиотека○ JavaScript○ Android○ iOS○ Windows phone

● Набор соглашений

● Инфраструктура○ Сбор○ Визуализация○ Аналитика

Jinba

Page 17: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

npm install jinba-js-client

var Jinba = require('jinba-js-client');

var r = new Jinba.Request(location.pathname, { app_label: 'example' });

r.startMeasurement('some-id', 'init');doInit(function callback() { r.stopMeasurement('some-id');});

r.end();

Пример

Page 18: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

[ { name: '/', value: 321, tags: { app_label: 'example', errorStatus: 0 }, measurements: [ { name: 'init', value: 275 }, …. { name: 'foo-1', value: 0 }, { name: 'bar-2', value: 17 }, ….

Данные

Page 19: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

● Отфильтровать мусор

● Защитить от паразитного трафика

● Записать в хранилище

● Как можно быстрее!

Прием данных

Page 20: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

● Быстрая вставка

● Разные “срезы”

● Возможность считать перцентили

● Хранить данные годами

Требования к хранилищу

Page 21: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

● MySQL

● Syslog

● Hadoop

● InfluxDB

● StatsD

Хранилище

Page 22: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

● MySQL engine

● Данные в памяти (за N минут)

● UDP вставка

● Отчеты по тэгам

● Реалтайм!

pinba.org

Page 23: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

● tagN_info - отчеты по многим тэгам

● Перцентили

● Гистограммы

● Фильтрация по тегам реквеста

Pinba для Jinba

Page 24: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Pinba

1.4M

25K

RPS

TPS

Page 25: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

CREATE TABLE v2_jinba_country ( ...) ENGINE=PINBA COMMENT='tagN_info:timer,mode,country::75,95';

pinbaSchema.createReport({ mysqlClient: mysqlClient, tablePrefix: 'v2_jinba', name: 'country', tags: ['timer', 'mode', 'country']});

Создание отчета

Page 26: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

mysql> desc v2_jinba_country;+--------------+--------------+| Field | Type |+--------------+--------------+| timer | varchar(64) || mode | varchar(64) || country | varchar(64) || req_count | int(11) || req_per_sec | float || hit_count | int(11) || hit_per_sec | float || timer_value | float || timer_median | float || index_value | varchar(256) || p75 | float || p95 | float |+--------------+--------------+

Создание отчета

Page 27: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

mysql> select timer, mode, hit_per_sec, timer_value/hit_count as timer_avg, timer_median, p75, p95from v2_jinba where mode='webapp-badoo' and timer='usable' \G*************************** 1. row ***************************

timer: usable mode: webapp-badoo hit_per_sec: 739.025 timer_avg: 0.898577200534488timer_median: 0.589789 p75: 0.854372 p95: 2.18598

Создание отчета

Page 28: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Гистограмма

% of hits

time

Page 29: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

● Pinba - последние 5 - 10 - 15 минут

● История - RRD (в перспективе InfluxDB)

Хранение истории

Page 30: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

pinba2influxdb

createDB(influxClient, dbName)

selectData(mysqlClient, dbName, tags)

insertData(influxClient, dbName, result)

InfluxDB

Page 31: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Как рисовать?

Page 32: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

grafanaUtils

createReportDashboard(url, grafanaKey, schema, name)

"domain_country": { "rows_by": "timer", "tags": [ "mode", "timer", "domain", "country" ] }

Grafana

Page 33: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Как рисовать?

Page 34: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Что получилось

➔ JinbaClient

➔ JinbaServer

➔ Pinba

➔ JinbaScripts

➔ InfluxDB

➔ Grafana

Page 35: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

● Тип запроса

● Таймер

● Страница / Экран

● Страна

● Браузер / Устройство

Аналитика

Page 36: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

● Тип запроса

● Таймер

● Страница / Экран

● Страна

● Браузер / Устройство

Аналитика

9

31

40

50

10

5.5 M

Page 37: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

WebSite

Page 38: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

WebApp

Page 39: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Android

Page 40: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Среднее и перцентили

Page 41: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Результаты оптимизации

Page 42: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Последствия редизайна

Page 43: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Сравнение стран

Page 44: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Сравнение браузеров

Page 45: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Сравнение страниц

Page 46: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

● Только вы можете определить `usable`

● Юзабилити важнее технических метрик

● Не смешивайте типы запросов

● Выделяйте общие группы

● Перцентили, а не среднее

Итого

Page 47: Реалтайм статистика скорости работы нативных и веб-приложений у реальных пользователей. Доклад Павла

Павел Довбуш<[email protected]>

Jinbagithub.com/dpp-name/jinba

Pinbahttp://pinba.org/

Вопросы?


Recommended