Size: a a a

2021 October 15

SP

Sergey Protko in symfony
условно, у тебя "сходить в сервис" - чем выполнить запрос в БД не "сходить в сервис"7
источник

SP

Sergey Protko in symfony
заворачиваешь отдельные этапы в свои спаны и видишь сколько времени чего занимает
источник

SP

Sergey Protko in symfony
как симфони профайлер если такая аналогия тебе больше нравится
источник

ЕР

Евгений Ромашкан... in symfony
Ну это просто сложнее чем просто профайлер пускать
источник

ЕР

Евгений Ромашкан... in symfony
Хотя и понятнее и инфы больше, да
источник

SP

Sergey Protko in symfony
не особо, есть готовые интеграции котоорые dbal заворачивают трэйсинги и прочие газлы
источник

SP

Sergey Protko in symfony
ты ж на проде хочешь что бы проблемы детектить
источник

ЕР

Евгений Ромашкан... in symfony
Ну профайлер же тоже даёт свой трейс, просто он в рамках только php кода существует?
источник

ЕР

Евгений Ромашкан... in symfony
Если профайлер не следит за стэком вызовов внутри сервиса, это уже просто какой-то лог скорости ответов получается
источник

SP

Sergey Protko in symfony
ну вот в elastic APM ты можешь трейсы с фронта трекать и линковать это все с трейсами php и трейсами любых других вещей
источник

SP

Sergey Protko in symfony
так "стэктрейсы" тут вообще не причем
источник

SP

Sergey Protko in symfony
короч самый простой вариант - подними локально какой jaeger или elastic stack в докере и попробуй подключить свое приложение и поиграться. Или любой клауд солюшен. потратишь часа 4 получишь кучу опыта и скорее всего ответы на свои вопросы
источник

ЕР

Евгений Ромашкан... in symfony
Ну тип, туда просто можно из кода кидать тайминги+контекст, и оно будет выводить флоу запроса с этими таймнгами?
источник

SP

Sergey Protko in symfony
Stopwatch компонент в симфони видел? вот та же штука только больше фич
источник

ЕР

Евгений Ромашкан... in symfony
Да
источник

SP

Sergey Protko in symfony
tracing.startSpan('App Initialization')
initializeApp()
tracing.endSpan('App Initialization')


иу тебя в туле будет сколько заняла app initialization и все запросы которые в рамках оного были. по хорошему любое "вышел из процесса наружу, в рэдисы или базу" это надо в спаны пихать
источник

SP

Sergey Protko in symfony
там потом можешь даже агрегации искать сколько каждый такой спан занимает времени, накладывать свои ожидания вроде "вот эта штука не должна работать больше 10-ти милисекунд" и потом плевать варнинги когда "оно больше 10-ти милисекунд больше 5-ти минут подряд"
источник

SP

Sergey Protko in symfony
если твоя цель именно мониторить производительность - то это твой вариант
источник

ЕР

Евгений Ромашкан... in symfony
Но если надо посмотреть, почему конкретный запрос тормозил, всё-равно профайлер?
источник

MG

Max Grom in symfony
Вроде ж и Sentry такое позволяет в контексте привязки фронта
источник