Хотите расти как разработчик и найти крутую работу? Не протирайте штаны — займитесь Open Source проектами. Так легче всего попасть в лучшие команды разработчиков и положить себе в резюме настоящий проект, вместо нелепых «примеров кода». Но найти подходящий проект для участия сложно. Начинаются лень и отговорки, а за ними — отсутствие профессионального роста, критики по-настоящему крутых программистов, уныние и застой.
На Cult of Martians мы собираем интересные задачи для современных веб-программистов. Можно выбрать подходящую по сложности, продолжительности и специализации. Задачи не выдуманы «из воздуха» — каждая решает насущную проблему, и решить ее можно через создание нового Open Source проекта или улучшение существующего. Решайте задачи, прокачивайтесь, присылайте решение на оценку. Лучших могут пригласить к себе на работу компании, программистам которых понравится ваше решен ие.
Для новичков, задача на два-три дня
Фреймворк yabeda позволяет легко объявлять и собирать метрики о работе Ruby-приложения — и с помощью адаптеров экспортировать их в системы мониторинга. Сейчас есть адаптеры для Prometheus (yabeda-prometheus) и NewRelic (yabeda-newrelic), но это далеко не полный список систем, которых мы хотели бы поддерживать.
Необходимо написать адаптер (Ruby gem) для yabeda, который позволит отправлять кастомные метрики в DataDog.
Польза: познакомиться с работой систем мониторинга изнутри, получить опыт в Ruby open source, принести пользу сообществу.
Решение: победителем признана реализация Дмитрия Швецова на основе Dogstatsd сделанная в соавторстве с Николаем Малининым. Николай начинал решать задачу отдельно, но решил объединить усилия с Дмитрием.
Это простое задание в плане кодирования — необходимо унаследоваться от базового адаптера и «всего лишь» реализовать шесть хуков: три на регистрацию разных типов метрик и три на непосредственное измерение их значений.
Трудность состоит в том, чтобы понять, как именно их реализовать: придется изучить, как работают Ruby-клиенты к DataDog, выбрать, какой использовать, разобраться, как устроена yabeda.
Если вы никогда не работали с системами мониторинга, то вам поможет немного освоиться наша статья о Yabeda, слайды и видео с выступления автора на Ruby Russia 2018.
Вопросы, на которые нужно будет найти ответы:
collect
-блоков, которые не привязаны к каким-либо событиям.Релевантные материалы:
Для справки можно использовать два уже написанных адаптера — yabeda-prometheus и yabeda-newrelic. Они разные, так как Prometheus работает по pull-модели, а NewRelic — по push-модели (а по какой работает DataDog?).
Инструкции по выполнению
yabeda-datadog
на GitHub — gem, который будет адаптером для yabeda.