# Мониторинг ошибок с целью быстрого понимания какой сервис и где накосячил.
Парни, думаю всем стало понятно что проблема встала ребром как на беке, так и на фронте. Тк текущее решение никто не использует(papertail), и как оказалось туда уже и логи не валятся а алер даже не знал про его сущевствование - предлагаю вам выбрать альтернативу, которая вам подойдет. Вероятно вы не будете пьянствовать всю неделю - поэтому кмк это подходящая задача приятное совместить с полезным, а именно занятся поиском подходящего сервиса или тулзовины для упрощения вашего рабочего процесса.
Кмк важно выбрать решение, которое устроит как **фронт, бек так и срм(devops).** Это вопрос интимный - тк пользоватся им будете часто - так что выбор за вами. Решений на рынке дохера - от опенсорс до энтерпрайз, ценник тоже разный.
По хорошему решение должно перейти с нами в продакшн - тк там исправление ошибок будет критичная ко времени задача. Я не хотел раньше времени вас грузить этой херней - тк тема оч обширная и можно в нее залипнуть надолго - так что посторайтесь не залипать - наша цель - быстрая отладка, профилирование и затем безопасность - все в порядке значимости на данный момент:)
```go
const txInput = 1
const txOutput = 2
const xpubCacheSize = 512
const xpubCacheExpirationSeconds = 7200
var cachedXpubs = make(map[string]xpubData)
var cachedXpubsMux sync.Mutex
type xpubTxid struct {
txid string
height uint32
inputOutput byte
}
```
### про этерпрайз
> В великом и кровавом остро стоит вопрос наблюдения за софтом и выяснением что за хуйня произошла - там горы легаси софта, в который никто не хочет лезть. Есть целый класс систем которыми накрывают такой софт - они мониторят, фильтруют и профилируют этот софт не вмешиваясь в сам софт - благо обычно это джава, а jvm раздрючили все кому не лень. К чему я это - а ктому что самый богатый функционал у этих пациков, естественно они нам не особо по корману. Но факт в том что эти приблуды работают и их покупают. Просто гляньте для составления своего шортлиста хотелок. Рынок активный у него куча неплохих конкурентов - я особо не успел исследовать, тк думал этот вопрос встанет через месяц - если найдете что-то неплохое с норм ценой - может есть смысл взять.
> Ну и чисто теоретически недавно в ядро линукса вкорячили новый тип утилит, для отладки и профилирования llvm кода - теперь в принципе вся та магия что раньше была доступна для джавы доступна для любого языка на llvm. Возможно до когото это уже доперло и уже есть подобные утилиты в составе этих сервисов.
> appdynamycs and etc
На что кмк стоит обратить внимание:
1. Клиентские либы должны быть открыты
2. API не сильно ебнутое(сервис в дальнейшем локализируем)
3. Поддержка JS/TS(фронт-бек), Go, Rust, C/CPP. Если чегото нет - оцените трудоемкость имплементации на своем стеке(web JS/TS должен быть обязателен - там куча ньюансов). **Алер** - мы все знаем про консоль в браузере - но никто кроме тебя пока не умеет толком пользоватся веб-терминалом - поэтому логи из консоли должны переехать во что-то где их все увидят и поймут что и где не так. В будущем это поможет понять что не так у сторонних юзеров.
4. Если есть интеграция с IOS/Android - кирил будет вам благодарен. Но может там есть что-то свое - я хз.
5. Оцените интерфейс - у нас нет цели смотреть на красивые графики - нам нужно понимать все-ли функционирует если нет, то быстро понять что сломалось(как на беке, так и на фронте) - **упор именно на скорость локализации проблемы.**
6. Сервис должен быть один на всех. Ну оч не хочу зоопарка.
7. Интеграция из коробки в cloudflare/azure/aws - очень было-бы в тему.
8. Идеально бы уложится в $1000-2000 в год(каждый проебанный день на вопросе отлова ошибок при интеграции стоит уже дохера, а дальше будет еще дороже - про продакшн думать страшно), идеально с возможностью помесячной оплаты.
9. Если есть опция профилирования (brfplus, ebpf ... etc) - это профилирование на уровне llvm/ядра linux без большого оверхеда по производительности(в пределах едениц %) - **оч жирный плюс для бека**. Ну и то говно что творится в браузере помоему никак кроме профилирование не взять под контроль, хоть там и есть что-то в хроме - было-бы круто иметь сервис который делает тоже самое но для всех юзеров. Хотя я может чего не знаю.
10. Если есть какойто стек связанный с **безопасностью** - тоже огонь, но надо понять насколько он нам релевантен. Ну и вообще пора бы начинать думать в эту сторону. Но не сильно:)
11. [@Paladayne](https://t.me/Paladayne) - чекни возможность интеграции в наш мессенджер "из коробки" того решения или списка решений к которому вы прийдете - если будет такая интеграция это нам очень поможет.
**Из чего выбираем:**
1. https://www.splunk.com/ - фаворит рынка, стоит как чугунный мост - но зато интегрируется хоть в умный замок, хоть в трейдинг энжину nasdaq, кроме логов собирает метрики и фактически может выступать профайлером. Есть какойто AI - хз нахер он там. У меня нет практики его использования, можно запросить тестдрайв - изучите - сможете ли вы с ним работать? Если не зацепит, то может и не надо.
2. https://www.getsentry.com/ - [судя по всему](https://stackoverflow.com/questions/11257330/error-logging-for-javascript-on-client-side) парни собаку съели на отлове логов с веб браузера. И судя по всему это не тривиальная задача. Ну и лендос у них клевый:)
4. https://logdna.com/ - хз просто мне их часто гугл показывает
5. https://www.loggly.com - тоже распиареные пидоры - я не смотрел.
Есть еще куча альтернатив - гуглится по ключам "название из пп.1-4 + alternative/vs"
таже тут неплохой списочек : https://blog.overops.com/production-tools-guide/alerting-tools/ (там много частей, внизу переключалка)
**Главное** - не выбирайте решение по причине его раскрученности - оцените в первую очередь его функциональность, его пригодность для нашего проекта.
Прошу подойдите к вопросу со всей серьезностью и умом - вероятно нам придется какоето время жить на этом решении, в том числе и в продакшене. Если есть какойто опыт использования чегото подобного - обязательно поделитесь в чате - у всех разный опыт и возможно ваш более релевантен. Индор имплементация сейчас не наш приоритет. ELK итп не просите - у нас и так уже монстр бек, заливать еще кластер для анализа логов, а затем его поддерживать - не наш вариант, и точно не вариант для клиента. Есть что-то минимальное у графаны(локи или логи както так) - если оно может жить компактно и автономно - вэлком. Прикиньте время хранения логов - пока нет регламента - кмк неделя-две вполне ок. У банкиров что-то типа 12-36мес по закону.
По результатом этой работы у нас должны исчезнуть вопросы из серии: игорь у тебя ордербук отвалился, алер у тебя оредер не в той форме.
Общий воркфлоу который мне видется, который максимально формализирует отлов и исправление багов во всех компонентах системы:
1. Логтулза ->
2. Открытие инцедента ->
3. Уведомление в мессенджер ->
4. Уведомление в мессенджер ответственной стороне ->
5. Решение проблемы ответственной стороной ->
6. Закрытие инцедента ответственной стороной ->
7. Уведомление в мессенджер заинтересованных сторон ->
8. Акцепт решения/В случае дизакцепта -> **п.п.2**
вангую что вот так у нас появится хелпдеск от атласина:)
**PS.** А если вы блядь такие уникальные что вам ничего не подходит - то пишите что-то свое. Но одно и до конца отпуска(недели). Проблему надо решить полюбому - иначе при добавлении людей дерьма будет столько что не разгребем.
Плодотворного вам отпуска. :smiley: