@djeerУважаемые IT товарищи, подскажите, как вы собираете логи/метрики из клиентских приложений? У нас есть десткоп приложение, в котором иногда у кого-то из юзеров ломаются звонки или пинги активности, и команда разделилась во мнениях. А фронтендеры у нас больше по вебу, приложение изначально последним приоритетом было в планах, но клиентам оно оказалось нужно.
Фронтендеры: "мы включили Sentry,
будет ошибка - придет в сентри" (или оно не приходит, или по ней понятно, что какая-то ошибка произошла, а почему произошла - нет)
Бэкендеры: "а давайте собирать все логи приложения в один файлик, а вебсокет лог во второй файлик, и выгружать их нам, чтобы в случае ошибки точно знать, что там происходило". Что-то сильно топорно выглядит идея грузить файлики в бакет в гугл клауде )) Но де-факто observability улучшится.
Какие еще есть варианты улучшить вот это вот observability на стороне клиента, чтобы видеть, что там происходило? Что пинги сломались после того, как ноутбук в спящий режим переводили, что пермишенов на микрофон не дали и поэтому звонок не дошел и вроде того )
Фронтендеры: "мы включили Sentry,
будет ошибка - придет в сентри" (или оно не приходит, или по ней понятно, что какая-то ошибка произошла, а почему произошла - нет)
Бэкендеры: "а давайте собирать все логи приложения в один файлик, а вебсокет лог во второй файлик, и выгружать их нам, чтобы в случае ошибки точно знать, что там происходило". Что-то сильно топорно выглядит идея грузить файлики в бакет в гугл клауде )) Но де-факто observability улучшится.
Какие еще есть варианты улучшить вот это вот observability на стороне клиента, чтобы видеть, что там происходило? Что пинги сломались после того, как ноутбук в спящий режим переводили, что пермишенов на микрофон не дали и поэтому звонок не дошел и вроде того )
2022-10-21 19:38:49
@fyl_chс мобилы у нас собирают в firebase, там можно настроить, за чем следить - краши и прочее
2022-10-21 13:39:51
@djeerFirebase Crashlytics? Это же как сентри, а хочется, чтобы прям как на бэкенде "вот Лариса Петровна открыла приложение, вот она сменила статус"
2022-10-21 13:41:06
@gfofgА вы пробовали отправлять стату в бд, а потом либо через lighthouse, либо через superset получать ее
2022-10-21 14:07:30
@djeerТак это же фронтендеры будут отправлять, а мы хотим исключить эту проблему из уравнения 😁
2022-10-21 14:27:59
@bodomicмне кажется, если событие "не всегда долетает в сентри", то оно так же не всегда долетит и в амплитуд, и в бд
2022-10-21 14:28:49
@djeerКак пример - онлайн статус отправлялся каждые 60 секунд вместо каждых 20 секунд, нет события в сентри, этим вызванного. Это непросто было раскопать (мы ж как ответственные люди сначала проблему у себя в бэкенде стали искать). А если бы были логи "отправляю статус", это было бы сразу видно.
2022-10-21 14:40:01
@lalex_cyПо описанию похоже на телеметрию/трейсинг. Есть опенсорсный проект OpenTelemetry и куча проприетарных APM, типа NewRelic, Datadog и т.д. У AWS это вроде называется X-ray.
2022-10-21 15:20:55
@fyl_chдля веба у AWS есть тулзы, видно все обращения-ответы время и тп, тоже настраиваемая фигня - лишнее убрать, нужно оставить, хранить в облаке
2022-10-21 13:41:25
@djeerУ нас апп MacOS на electronjs, react native
2022-10-21 13:41:57
@fyl_chтут не подскажу, нет опыта практического. но я на стороне бэкендеров тут, в целом логи не так много места жрут, можно их периодически удалять, а писать подробно и красиво, может, какое-то типовое поведение отловите
2022-10-21 14:21:26
@eefimova3004Amplitude для клиентских логов с мобилок и веба
2022-10-21 13:45:03
@alexeysetevoiтак если сентри прилепить фронту - будут приходить только ошибки фронта) лепите и бекенду его и самой прилохуже
2022-10-21 15:31:32
@djeerНа бэкенде есть все. Задача - понять, что на фронте происходит, когда ошибок как бы нет, но что-то не так пошло )
2022-10-21 15:38:24
@neantonУ нас для этого каждый клик, каждое открытие и закрытие попапа со всем юзер стейтом в приложении обвешивается трекером и все события реквестов/респонсов. Все собирается в кастомный приемник по хттп (тут можно выбрать более удобный транспорт) и пишется в биг квери. Оттуда уже tableau показывает дашборды. Каждая фича в разработку идет с полным описанием тех трекеров которые нужны плюс с описанием кастомных полей для каждого трекера. Но у нас игра
2022-10-21 17:49:29
@sergeyshevchdevSentry
Или opentelemetry и трейсы прям отправлять
2022-10-21 19:04:42
@uburroУ бразеров есть перфоманс апи, можешь собирать и сохранть куда тебе нужно, например в кликхаус
Вот например
https://blog.logrocket.com/how-to-practically-use-performance-api-to-measure-performance/
Вот например
https://blog.logrocket.com/how-to-practically-use-performance-api-to-measure-performance/
2022-10-21 19:04:58
@ixaxmeсообщение удалено
2022-10-21 17:54:13
@bodomicСентри есть в описании 😁
2022-10-21 19:36:25
@ell198805Ну центри это не совсем не про метрики. И логи в целом это не про метрики)
Если нужна отладочная инфа то центри, яггер и подобное, если нужны логи в целом то елка. Если нужны именно метрики и Алерты с мониторингом то например сколько раз рвался коннект, какая скорость отдачи и т.д. То на приложении делается эндпонт на который ходит промитей и забирает
Поидее должно быть примерно все это) в той или иной вариации.
Метрики и Алерты на них что бы узнать о проблеме а логи и трейсы что бы ее найти и зарешать
Узнавать о проблеме чисто из логов это немного бед практикс хоть так и делают. Поидее именно приложение должно где то давать именно метрики своего состояния насколько оно стабильно работает.
2022-10-21 19:28:58
