Djer@djeer
Уважаемые IT товарищи, подскажите, как вы собираете логи/метрики из клиентских приложений? У нас есть десткоп приложение, в котором иногда у кого-то из юзеров ломаются звонки или пинги активности, и команда разделилась во мнениях. А фронтендеры у нас больше по вебу, приложение изначально последним приоритетом было в планах, но клиентам оно оказалось нужно.
Фронтендеры: "мы включили Sentry,
будет ошибка - придет в сентри" (или оно не приходит, или по ней понятно, что какая-то ошибка произошла, а почему произошла - нет)
Бэкендеры: "а давайте собирать все логи приложения в один файлик, а вебсокет лог во второй файлик, и выгружать их нам, чтобы в случае ошибки точно знать, что там происходило". Что-то сильно топорно выглядит идея грузить файлики в бакет в гугл клауде )) Но де-факто observability улучшится.
Какие еще есть варианты улучшить вот это вот observability на стороне клиента, чтобы видеть, что там происходило? Что пинги сломались после того, как ноутбук в спящий режим переводили, что пермишенов на микрофон не дали и поэтому звонок не дошел и вроде того )
Фронтендеры: "мы включили Sentry,
будет ошибка - придет в сентри" (или оно не приходит, или по ней понятно, что какая-то ошибка произошла, а почему произошла - нет)
Бэкендеры: "а давайте собирать все логи приложения в один файлик, а вебсокет лог во второй файлик, и выгружать их нам, чтобы в случае ошибки точно знать, что там происходило". Что-то сильно топорно выглядит идея грузить файлики в бакет в гугл клауде )) Но де-факто observability улучшится.
Какие еще есть варианты улучшить вот это вот observability на стороне клиента, чтобы видеть, что там происходило? Что пинги сломались после того, как ноутбук в спящий режим переводили, что пермишенов на микрофон не дали и поэтому звонок не дошел и вроде того )
2022-10-21 19:38:49
Yulia Averianova@fyl_ch
с мобилы у нас собирают в firebase, там можно настроить, за чем следить - краши и прочее
2022-10-21 13:39:51
Djer@djeer
Firebase Crashlytics? Это же как сентри, а хочется, чтобы прям как на бэкенде "вот Лариса Петровна открыла приложение, вот она сменила статус"
2022-10-21 13:41:06
Ivan@gfofg
А вы пробовали отправлять стату в бд, а потом либо через lighthouse, либо через superset получать ее
2022-10-21 14:07:30
Djer@djeer
Так это же фронтендеры будут отправлять, а мы хотим исключить эту проблему из уравнения 😁
2022-10-21 14:27:59
Alexey@bodomic
мне кажется, если событие "не всегда долетает в сентри", то оно так же не всегда долетит и в амплитуд, и в бд
2022-10-21 14:28:49
Djer@djeer
Как пример - онлайн статус отправлялся каждые 60 секунд вместо каждых 20 секунд, нет события в сентри, этим вызванного. Это непросто было раскопать (мы ж как ответственные люди сначала проблему у себя в бэкенде стали искать). А если бы были логи "отправляю статус", это было бы сразу видно.
2022-10-21 14:40:01
lalex@lalex_cy
По описанию похоже на телеметрию/трейсинг. Есть опенсорсный проект OpenTelemetry и куча проприетарных APM, типа NewRelic, Datadog и т.д. У AWS это вроде называется X-ray.
2022-10-21 15:20:55
Yulia Averianova@fyl_ch
для веба у AWS есть тулзы, видно все обращения-ответы время и тп, тоже настраиваемая фигня - лишнее убрать, нужно оставить, хранить в облаке
2022-10-21 13:41:25
Djer@djeer
У нас апп MacOS на electronjs, react native
2022-10-21 13:41:57
Yulia Averianova@fyl_ch
тут не подскажу, нет опыта практического. но я на стороне бэкендеров тут, в целом логи не так много места жрут, можно их периодически удалять, а писать подробно и красиво, может, какое-то типовое поведение отловите
2022-10-21 14:21:26
Elena E@eefimova3004
Amplitude для клиентских логов с мобилок и веба
2022-10-21 13:45:03
Mentat@alexeysetevoi
так если сентри прилепить фронту - будут приходить только ошибки фронта) лепите и бекенду его и самой прилохуже
2022-10-21 15:31:32
Djer@djeer
На бэкенде есть все. Задача - понять, что на фронте происходит, когда ошибок как бы нет, но что-то не так пошло )
2022-10-21 15:38:24
Anton Neznaienko@neanton
У нас для этого каждый клик, каждое открытие и закрытие попапа со всем юзер стейтом в приложении обвешивается трекером и все события реквестов/респонсов. Все собирается в кастомный приемник по хттп (тут можно выбрать более удобный транспорт) и пишется в биг квери. Оттуда уже tableau показывает дашборды. Каждая фича в разработку идет с полным описанием тех трекеров которые нужны плюс с описанием кастомных полей для каждого трекера. Но у нас игра
2022-10-21 17:49:29
Sergey Shevchenko@sergeyshevchdev
Sentry
Или opentelemetry и трейсы прям отправлять
2022-10-21 19:04:42
Grigory@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
Alexey@bodomic
Сентри есть в описании 😁
2022-10-21 19:36:25
Dima@ell198805
Ну центри это не совсем не про метрики. И логи в целом это не про метрики)
Если нужна отладочная инфа то центри, яггер и подобное, если нужны логи в целом то елка. Если нужны именно метрики и Алерты с мониторингом то например сколько раз рвался коннект, какая скорость отдачи и т.д. То на приложении делается эндпонт на который ходит промитей и забирает
Поидее должно быть примерно все это) в той или иной вариации.
Метрики и Алерты на них что бы узнать о проблеме а логи и трейсы что бы ее найти и зарешать
Узнавать о проблеме чисто из логов это немного бед практикс хоть так и делают. Поидее именно приложение должно где то давать именно метрики своего состояния насколько оно стабильно работает.
2022-10-21 19:28:58
