Собираем будильник правильно
TRANSCRIPT
StatsD + Graphite + Seyren…или
Cобираем будильникправильно
11 МАРТА 2016
- Татьяна Боровкова
- Java-разработчик
- EPAM
-
Модель «Будильник»
StatsD
Graphite
Seyren
Эволюция идеи
О чем я расскажу?
Всегда разрабатывайте продукт так, как будто ваш заказчик – склонный к насилию психопат, который знает, где вы живете.
,,
Винни Пух
I. Часовой механизм
− Сбор статистики
I. Часовой механизм
− Сбор статистики
II. Корпус и циферблат
− Отображение и хранение статистики
I. Часовой механизм
− Сбор статистики
III. Звонок
− Система оповещения
II. Корпус и циферблат
− Отображение и хранение статистики
I. Часовой механизм
III. Звонок
II. Корпус и циферблат
STATSD
SEYREN
GRAPHITE
STATSD
T
- Числовые данные, меняющиеся с течением времени
- Время ответа ресурса, количество запросов и т.п.
- Нужен идентификатор данных (ключ)
T
T
T
- Демон, запускаемый на node.js
- Использует TCP или UDP
- Агрегирует статистику с определенной частотой
- Отправляет результаты в подключенные backend-сервисы
STATSD https://github.com/etsy/statsd
Измерение
Виды StatsD статистики
Счетчик МножествоТаймерCounter Timer Set Gauge
Как установить?
Как установить?
1. Установить
Как установить?
1. Установить
2. Склонировать проект с
3. Создать конфигурационный файлс помощью exampleConfig.js
Как установить?
1. Установить
2. Склонировать проект с
3. Создать конфигурационный файлс помощью exampleConfig.js
4. Запустить демона:node stats.js /путь/к/конфигурации
Как установить?
1. Установить
2. Склонировать проект с
> echo "Пример отправки сообщения в StatsD">
> echo "Пример отправки сообщения в StatsD"> echo "test.counter:1|c" | nc -u -w0 127.0.0.1 8125>
> echo "Пример отправки сообщения в StatsD"> echo "test.counter:1|c" | nc -u -w0 127.0.0.1 8125>
ключ.с.поддоменами : числовое_значение | тип_статистики
GRAPHITE
T
Главная задача Graphite – хранение и визуализация статистических данных
CARBON WHISPER
WEBAPP
Принимает пакеты со StatsD База данных, хранящая пары «метка времени-значение»
Отображает полученные данные в виде временных графиков
Как установить?
UNIX-подобная OCPython 2.6+
PycairoDjango 1.4+
django-tagging 0.3.1+
WSGI serverweb server
database
Как установить?
SEYREN
Главная задача Seyren – вовремя «разбудить»
T
> java -version> mongo -version>
Как установить?
> java -version> mongo -version> wget https://github.com/.../seyren-1.3.0.jar>
Как установить?
> java -version> mongo -version> wget https://github.com/.../seyren-1.3.0.jar> export GRAPHITE_URL=http://graphite.foohost.com:80>
Как установить?
> java -version> mongo -version> wget https://github.com/.../seyren-1.3.0.jar> export GRAPHITE_URL=http://graphite.foohost.com:80> java -jar seyren-1.3.0.jar>
Как установить?
> java -version> mongo -version> wget https://github.com/.../seyren-1.3.0.jar> export GRAPHITE_URL=http://graphite.foohost.com:80> java -jar seyren-1.3.0.jar> open http://localhost:8080>
Как установить?
I. Часовой механизм
III. Звонок
II. Корпус и циферблат
STATSD
SEYREN
GRAPHITESTATSD GRAPHITE
SEYREN
I. Часовой механизм
III. Звонок
II. Корпус и циферблат
STATSD
SEYREN
GRAPHITESTATSD GRAPHITE
SEYREN
- CollectD
- Jmx2graphite
- Logster
I. Часовой механизм
III. Звонок
II. Корпус и циферблат
STATSD
SEYREN
GRAPHITESTATSD GRAPHITE
SEYREN
- CollectD
- Jmx2graphite
- Logster
- Giraffe
- Grafana
- Dusk
I. Часовой механизм
III. Звонок
II. Корпус и циферблат
STATSD
SEYREN
GRAPHITESTATSD GRAPHITE
SEYREN
- CollectD
- Jmx2graphite
- Logster
- Cabot
- Moira
- Giraffe
- Grafana
- Dusk
Приятного пробуждения!