{"id":7297,"title":"\u0417\u0430\u043a\u0430\u0442\u0438\u043b\u0438 \u0432\u0435\u0447\u0435\u0440\u0438\u043d\u043a\u0443 vc.ru. \u0420\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u043e","url":"\/redirect?component=advertising&id=7297&url=https:\/\/vc.ru\/promo\/300923-proveli-vecherinku-vc-ru-i-sdelali-ofis-uyutney-s-pomoshchyu-novogo-servisa-ot-ozon&placeBit=1&hash=1786c9dcf11a3b054c8e53004e27074664313ed4055e24064ede059ebc186db8","isPaidAndBannersEnabled":false}

getNotifiedBot — Telegram-бот для получения оповещений о коммерчески важных событиях и ошибках в вашем приложении

Проблематика

Говорят, есть программисты, которых однажды начинает волновать не только формальное выполнение задачи, но и то, как будет работать написанный ими код в широком диапазоне боевых юскейсов:

  • Почему пользователь уйдет в одном шаге от покупки.
  • Какие и в каких ситуациях возникают ошибки.
  • Где пользователь ведет себя не так, как ожидается.
  • Выполнение какого кода должно сигнализировать об атаке.
  • Что произойдет если упадет один из необходимых API или рестартнется сервер.

Забавно, но эта проблематика становится тем насущней, чем дальше человек от работы с кодом: тим-лиды, QA, PM, CTO, CEO, собственники, инвесторы — всех их эти вопросы волнуют гораздо больше, чем программиста, непосредственно пишущего код. Самого программиста эти вопросы начинают волновать только тогда, когда он начинает пилить собственный продукт, от которого зависит его завтрашний хлеб.

Причины этого положения вещей стары как мир, и их раскрытие потребует отдельной статьи. В этой статье я хочу рассказать, как, затратив пять минут, с помощью нашего бота вы можете настроить мгновенное информирование о том, что в вашем приложении что-то пошло не так и в каких количествах — или, наоборот, что произошло что-то хорошее, о чем вам важно будет узнать сразу.

Начнем с коммерчески важных событий

Этот бот появился как сайд-проект нашего основного сервиса ActualizeBot, и вот какие коммерчески важные оповещения мы получаем в нем уже сегодня:

  • Регистрация нового пользователя с указанием реферала.
  • Возвращение старых пользователей.
  • Начало и успешное завершение различных критически важных флоу.
  • Важные достижения пользователя в приложении, например мэтч.

Эта информация в прямом эфире, во-первых, добавляет позитивного настроя и понимания того, что в продукте что-то происходит и мы тут все работаем не просто так. Что называется, эффект присутствия.

Во-вторых, вы, скорее всего, увидите, что одних событий происходит больше и чаще, чем вы ожидали, а других, наоборот, меньше. Вы увидите поведение вашего массового пользователя — и деловые инсайты не заставят себя ждать.

Ошибки

В программировании есть аксиома, которую можно сформулировать так: «У вас будут ошибки». Некоторые из этих ошибок не будут вам стоить ничего, а некоторые будут стоить нескольких месяцев простоя или светлого будущего вообще.

Хорошей иллюстрацией такой ошибки был баг на форуме Searchengines, не позволявший зарегистрироваться, — новому пользователю просто не приходили письма с подтверждением. Другая иллюстрация — то, сколько денег сейчас теряет Facebook из-за некорректной и ужасающе неинтуитивной рекламной панели.

В поиске таких слабых мест нам отчасти помогают:

  • Тестировщики, глаз которых рано или поздно замыливается.
  • Автотесты (мифические сущности из объявлений о вакансиях), которых надо написать очень много и регулярно вдумчиво переписывать.
  • Пользователи, столкнувшиеся с ними и не поленившиеся сообщить.

На мой взгляд, гораздо лучше узнавать обо всех исключениях от компьютера, а не от пользователя или сотрудника, ибо слаб человек — и узнавать сразу после их происшествия, а не тогда когда программист найдет в себе силы нырнуть в мегабайты логов.

Минусы существующих систем мониторинга

Вкратце о том, почему большинство тех, кто заморачивается, пишет собственные решения и тратит на это тысячи долларов:

  • Во-первых, их (решений по мониторингу) очень мало.
  • Во-вторых, они монструозны и избыточны для 98% стартапов и бизнеса.
  • В-третьих, они рассчитаны на использование с рабочего места.
  • В-четвертых, их API надо изучать и пользование ими тоже надо изучать.
  • В-пятых, их где-то надо разворачивать и поддерживать, чтобы они сами не упали.

getNotifiedBot

Наши плюсы:

  • Простота и элегантность. Наш интерфейс состоит из четырех команд, которыми вы, скорее, никогда даже не воспользуетесь: /pause (пауза в оповещениях), /unpause (отмена паузы), /show_token (узнать свой токен) и /regen_token (создать новый токен)
  • Не надо думать о поддержке, покупать отдельный сервер для мониторинга, забывать его продлить.
  • Настройка занимает пять минут и полностью описана ниже.

При входе в бот вам будет предложено выполнить команду /help, чтобы узнать ваш токен и уже описанные выше специфические команды.

В этот момент вы получаете персональный секретный токен и адрес вида https://getnotifiedbot.com/notify/<TOKEN> для отправки оповещений. На этот адрес вы можете слать GET- или POST-запросы с текстом сообщения, записанным в параметр message. Мы рекомендуем использовать POST, чтобы не зависеть от URL-кодировки сообщения в случае с GET.

Все что нужно сделать, чтобы бот заработал, — поставить в глобальный перехватчик ошибок вызов нашего API.

Пример интеграции для оповещения обо всех исключениях на Node.JS:

function getNotified(event) { axios.post('https://getnotifiedbot.com/notify/<TOKEN>', { message: JSON.stringify(event) }); } process.on('rejectionHandled', getNotified); process.on('unhandledRejection', getNotified); process.on('uncaughtException', getNotified);

Дальнейшее использование функции getNotified — на ваше усмотрение

Итак, если вы хотите быть в курсе того, что происходит в вашем приложении, welcome: getNotifiedBot!

{ "author_name": "Андрей Селин", "author_type": "self", "tags": [], "comments": 36, "likes": 19, "favorites": 62, "is_advertisement": false, "subsite_label": "tribuna", "id": 117168, "is_wide": true, "is_ugc": true, "date": "Thu, 02 Apr 2020 15:12:59 +0300", "is_special": false }
0
36 комментариев
Популярные
По порядку
Написать комментарий...

1) Отправлять возможно важную инфу через стороннего бота?
2) Чем разработчику sentry не угодил?
3) Зачем использовать стороннего бота, если можно сделать своего? Для начала бот-прокси, который просто пересылает инфу подписавшимся. Есть 1001 решения для написания ботов.

Я бы, как разработчик, не доверился такому боту. Слишком прост для стороннего решения.

8

3. Сделайте, почему нет. Просто средний разработчик потратит на эту разработку пару-тройку часов и должен будет поддерживать отдельный сервер на отдельном хостинге, на котором должен лежать такой продукт. Это время, деньги и риски.
Хочу обратить ваше внимание, что сделать боевой публичный API as a Service это не то же самое что запустить Express с одним методом.

Мы будем постепенно допиливать наш продукт и делать его более многофункциональным и стоящим заметно меньше, чем трудозатраты программиста.

Если хотите взглянуть на не слишком простой сервис, советую глянуть наш ActualizeBot

2

эм.. А бэка нет что-ли у приложения? У вас пример на node.js, а это уже бэк. Зачем нужен ещё один сервер для бота? А если запросов становится очень много, то у всяких сентри и т.п. нет конкурентов. 

2

Функционал отвечающий за мониторинг на мой взгляд должен лежать на отдельном сервере или инстансе, чтобы гарантировать информирование в случае отключения самого ядра. У нас бывали ситуации что наш амазоновский ДЦ был недоступен по полчаса несколько раз в месяц - и мы об этом узнавали сразу (а могли вообще не узнать).
Дело в том что мы хотим в дальнейшем нагрузить этот бот функционалом пингования того или иного адреса чтобы понять вовремя, например, не упал ли сервер и тд.

2

1. Отправляйте через нашего бота ту информацию, которую считаете нужной. Мы в приветственном сообщении ответственно заявляем что не храним текстов сообщений.
Не надо отправлять через него ключи от квартиры где деньги лежат — мы сами хотели бы быть подальше от этой информации. А вот отправить сообщение, что не отвечает АПИ курсов валют — это вряд ли является такой чувствительной информацией. Плюс, нелогично заявлять со стороны программиста что getNotifiedBot-у информацию доверять нельзя, а sentry и телеграму, бэка которых никто никогда не видел — можно.

3

2. Зачем сразу не угодил?
Я работал на проектах, использовавших, sentry — приходили такие же оповещения. Но sentry:
а) Заточен на ловлю багов и не заточен на работу с событиями другого порядка
б) Комплексный сервис и требует дополнительного погружения и внедрения — вы не начнете работать с sentry за 1 минуту.
в) Не приспособлен для гибкости, раскрытой в нашем боте — вызывай нотификации оттуда, откуда хочешь и с той целью, с которой хочешь.

0

Sentry на минималках?

3

Sentry здорового человека )

0

Почему только на английском ? 

1

Основная причина - все программисты на земле знают английский + проникновение телеграма в их аудиторию высоко глобально. Им уже знакома работа с командной строкой, где никто ничего не переводит на тысячи языков.
Также, нам видится, что в этом есть глобальный тренд и надо уже поменьше заморачиваться на мультиязычность там, где это возможно.

4

В таких ботах надо ошибки разработчику слать, а не факт регистрации. Это как раз бесполезная информация.

Ну и пишется за 1 день + напрямую нельзя слать в бот, эту нужно делать через очередь, иначе при нагрузке все ляжет.

Поэтому ценность сервиса на минимуме для более-менее рабочего проекта.

1

Вы пишете общими словами, которые доказывают вам самому некие ваши мысли о неких событиях, которые известны только вам.
Что ляжет... При какой нагрузке... По-вашему, очередь работает по сильно другому принципу? Очередь делает то же самое, только еще тратит дополнительный ресурс на хранение сообщений в памяти. А еще для скорости она должна лежать на том же сервере, который ляжет и вы не узнаете что он лег. А если она будет находиться на другом сервере, то вам еще и кросс-серверный запрос надо будет подождать.
—-
У 99,99% приложений нет такой нагрузки, о которой вы говорите.
Отправить что-то напрямую в бот невозможно. Отправка идет http api.
Пишется аналогичный бот действительно быстро — ну так вы можете пойти и отдать кому-нибудь 100 долларов за то, чтобы вам его написали вместо того чтобы использовать наш бесплатно или за смешные деньги когда мы допишем функционал.

1

у 99.99% проектов нет необходимости следить за ошибками в реалтайме

1

Если у вас кончатся деньги на 2fa сервисе, вы точно не придадите этому особого значения? )

1

Ну сразу виден ваш уровень. Одно дело по http отправлять прямой запрос который длится 1-2 секунды, другое дело закинуть в БД и отправить асинхронно.

По этому в вашем случае будут проблемы даже у самый простых приложений. Это проверено не раз.

Но дело ваше.

У нас есть такой же бот если что.

0

Очевидно, уровень комментирования у вас высок. Тогда расскажите мне, сколько займет amqp-запрос на выделенный сервер с очередью и чем он будет принципиально отличаться от http-запроса?

0

Не хочу ничего доказывать, сами потом все поймете )

0

Эм.. Автор ничего не знает о всяких там Kibana и Seq?

0

У Kibana огромный технический долг. Про Seq ничего не знаю. Но и к тому и к другому оповещения нужно прикручивать. Оповещения в телеграм получать удобнее, чем на почту, поэтому алгоритм "ошибка – уведомление в ТГ" для меня выглядит оправданным.

1

Конечно. У нас ошибка в коде. Заходит 1000 пользователей и приходит 1000 сообщений в телеграм. Удобно же.

0

Работал с Кибана. Это сервис логгирования. Наш продукт — про оповещения

0

Смысл разгребать неструктурированные оповещения в ТГ, если все это можно наблюдать хоть в реальном времени в системе мониторинга, строя графики, срезы, что угодно вообще?

0

Их не надо разгребать, о них надо узнавать. Как уже писали выше — у вас кончились деньги на одном из внешних сервисов или он отвалился и из-за этого ряд методов не отрабатывает должным образом — вам надо узнать об этом как можно быстрей.

1

Другими словами это фича для супер-мелкого проекта, где работает полтора разработчика.

0

Или для критических оповещений даже в большом проекте, которые не сыпятся сотнями. Или для того чтобы сказать директору, например: посетитель задал вопрос и ему не ответили в течение 20 секунд

0

Представляю что будет, если тимлиду большого проекта в телегу будут сыпаться оповещения, что посетитель задал вопрос и ему не ответили в течение 20 секунд...

0

Не тимлиду, а директору. Это очень важно. Директор же только и делает, что следит в реалтайме за такими оповещениями.

0

А я, в свою очередь, представляю что будет если этот поток будет валиться главному по продажам — это будет документированное подтверждение неэффективности работы подчиненных, с которым можно будет работать и его задачей будет сократить этот поток.

0

Имплементация авторизации на текстовых токенах в 2020 – это нонсенс. Используйте JWT.

0

Мы в этом плане шли самым простым путем и отталкивались от самого близкого к телу примера — телеграм. Надо почитать, мб за 5 лет что изменилось, но пока не совсем понимаю в чем разница. Токены у нас хранятся в памяти, поэтому по скорости мы даже быстрей — не надо ничего расшифровывать. ред.

0

Телеграм в плане безопасности далеко не лучший пример. Лучшие практики, которые на сегодня есть, разрабатываются в сфере применения цифровой подписи. За 5 лет ситуация поменялась кардинально. Проблема с текстовым токеном – он легко копируется и выносится за пределы периметра безопасности и никто об этом не узнает, пока что-то не случится.

Советую начать с сайта https://jwt.io и https://auth0.com/blog/, чтобы разобраться. ред.

1

Код на github планируете выложить?

0

Планируем, в упрощенном виде. Если интересно, подписывайтесь на наш корпоративный блок на хабре — мы там дадим знать: https://habr.com/ru/company/actualizebot/blog

0

Ваш сайт-сервис не работает (может он и не должен был работать), бот не реагирует на команды, "корпоративный блок" на хабре не активен.

0

Ужасный бот, нелепые отмазки о полезности в комментариях. Конструктивную критику не воспринимает. Автор Джуниор студент или школьник.
Проект фо фан загнётся за пару месяцев, ни в коем случае не пользоваться.

–1

Проще поднять бесплатный firebase и в базу слать данные, имхо

–1
Читать все 36 комментариев

Обучаюсь контекстной рекламе. Пока что Яндекс.Директ, в дальнейшем и Google.Adwords. Встала такая проблема, как практиковаться, как взять первые проекты для опыта чтобы начать работать на фрилансе?

Илон Маск заявил, что Starship будет готова к орбитальному запуску в ноябре Статьи редакции

Компания должна получить разрешение регулятора.

Cloud CDN: что это такое, как устроено и кому нужно. Разбираем на примере бургеров

Cloud CDN — это сеть быстрой доставки статического контента в формате услуги облачного провайдера. Объяснить, как работает технология, проще всего на примере — сравнить Cloud CDN с популярным продуктом, который выглядит плюс-минус одинаково вне зависимости от того, заказали вы его в Москве, Питере или Нью-Йорке. Знакомьтесь: классический бургер.…

Исследование: сотрудники хотели бы иметь комнату отдыха, бесплатный сок, а работодатели уже готовы покупать ЗОЖ-снеки

Онлайн-сервис доставки продуктов и товаров СберМаркет и исследовательское агентство Research Me спросили сотрудников, как они хотели бы питаться в офисе и что в нем видеть. В опросе приняли участие более 1500 работающих людей по всей России. Сервис также спросил работодателей – В2В-клиентов СберМаркета: что они покупают в офис, что точно никогда…

Как OTUS стал платформой для самореализации. История преподавателя

Наш преподаватель, специалист по Data Science, решил поделиться своей историей преподавания. Он рассказал, как пришел в эту сферу, с какими трудностями столкнулся на пути к преподаванию и что ему помогает. А еще поделился советами, как поддерживать внимание студентов и сделать занятия полезными и увлекательными.

ПСБ запустил личный кабинет для предпринимателей. Там можно следить онлайн за каждым своим терминалом

Сервис предоставляется бесплатно.

Как не попасть в карьерную ловушку тимлида: личный опыт

Кажется, что тимлиду просто некуда расти: дальше надо либо идти в менеджмент, либо наоборот, становиться узконаправленным разработчиком. По просьбе «Лаборатории Касперского» Евгений Мацюк, который прошел в компании неординарный путь, рассказал о своих карьерных развилках во время и после тимлидства, а также поделился опытом горизонтального роста.

Инвесторы подняли на 1000% стоимость акций компании Phunware — разработчика приложения для президентской кампании Трампа Статьи редакции

Бывший президент объявил о запуске собственной соцсети и её выходе на биржу.

Как AliExpress забрал у меня $300

24.08 - оплачиваю заказ.

Потратил 400 тысяч рублей на накрутку поведенческих в Гугле. Подвожу итог

Всем привет. Это уже моя пятая статья про накрутку ПФ в поисковых системах Яндекс и Гугл. Довольно много о проверенных гипотезах было изложено в первой статье про Гугл, в этой же, я подведу небольшой итог по экспериментам за последние 8 месяцев.

null