Давайте инструментируем
что-нибудь
Александр Чистяков
vdsina.ru, евангелист
Очень краткое содержание
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 2 / 31
• Давайте инструментируем
Очень краткое содержание
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 3 / 31
• Давайте инструментируем
• Что-нибудь
Приложение на JavaScript?
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 4 / 31
• Используем пакет prom-client
Выглядит не очень сложно!
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 5 / 31
• Давайте лучше инструментируем
MongoDB
MongoDB
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 6 / 31
• Написана на языке C++
MongoDB
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 7 / 31
• Написана на языке C++
• Собирается при помощи SCons
Нам нужен план
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 8 / 31
• Встроить дэшборд в MongoDB
Нам нужен план
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 9 / 31
• Встроить дэшборд в MongoDB
• Видимо, написать дэшборд на C++?
Преимущества C++
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 10 / 31
• Есть сегфолты
Преимущества C++
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 11 / 31
• Есть сегфолты
• Можно прибавить к адресу в памяти
число
Преимущества C++
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 12 / 31
• Есть сегфолты
• Можно прибавить к адресу в памяти
число
• Язык не слишком DevOps-friendly
Не будем брать C++
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 13 / 31
• Встроим какой-нибудь другой язык
Не будем брать C++
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 14 / 31
• Встроим какой-нибудь другой язык
• Lua?
Не будем брать C++
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 15 / 31
• Встроим какой-нибудь другой язык
• Lua?
• GNU Guile?
Не будем брать C++
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 16 / 31
• Встроим какой-нибудь другой язык
• Lua?
• GNU Guile?
• Nim
Преимущества Nim
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 17 / 31
• Нет сегфолтов
Преимущества Nim
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 18 / 31
• Нет сегфолтов
• Очень похож на Python
Преимущества Nim
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 19 / 31
• Нет сегфолтов
• Очень похож на Python
• Строго и статически типизирован
Преимущества Nim
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 20 / 31
• Нет сегфолтов
• Очень похож на Python
• Строго и статически типизирован
• Компилируется в код на C
Нам опять нужен план
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 21 / 31
• Используем Nim для дэшборда и сбора
метрик
Нам опять нужен план
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 22 / 31
• Используем Nim для дэшборда и сбора
метрик
• Компилируем Nim в C (.h + .a)
Нам опять нужен план
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 23 / 31
• Используем Nim для дэшборда и сбора
метрик
• Компилируем Nim в C (.h + .a)
• Собираем mongod при помощи SCons,
используя полученные файлы
Реализация бриджа из C в Nim
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 24 / 31
• startJesterP запускается в отдельном
потоке
Как ускорить сборку
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 25 / 31
• scons –disable-warnings-as-errors -j80
Это, вообще, законно?
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 26 / 31
• Выглядит потокобезопасно
Это, вообще, законно?
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 27 / 31
• Выглядит потокобезопасно
Это, вообще, работает?
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 28 / 31
• Виден запуск Jester среди логгинга
mongod
Как все это выглядит?
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 29 / 31
• Обычный дэшборд, только внутри
mongod
Выводы
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 30 / 31
• Можно инструментировать что угодно
• Даже JavaScript
That’s all, folks!
Александр Чистяков, vdsina.ru Давайте инструментируем что-нибудь 31 / 31
• alexclear@gmail.com
• https://telegram.me/lhommequipleure
• https://telegram.me/demeliorator_pod

My slides from BMM №4 Nov 2019