Профилирование многоуровневого распределенного веб-приложения (на стороне сервера)

я бы хотелпрофиль сложное веб-приложение с сервера PoV.

Согласно приведенной выше ссылке на Википедию и переполнению стекаprofiling Описание тега, профилирование (в одной из его форм) означает получение списка (или графического представления) API / компонентов приложения, каждый из которых содержит количество вызовов и время, проведенное в нем во время выполнения.

Обратите внимание, что в отличие от традиционного однопрограммного / одноязычного приложения веб-сервера могут быть:

Распределено по нескольким машинамРазличные компоненты могут быть написаны на разных языкахРазличные компоненты могут работать поверх разных ОС и т. Д.

Поэтому традиционный ответ «Просто используйте профилировщик» не легко применим к этой проблеме.

яне находясь в поиске:

Грубая статистика производительности, как те, которые предоставляются различнымиинструменты анализа журнала (например, аналог) ни дляна стороне клиента, на страницу статистика производительности, подобная представленной такими инструментами, как Google PageSed или Yahoo! Y! Slow, диаграммы водопада и время загрузки компонентов браузера)

Вместо этого я ищу классический отчет в стиле профилировщика:

количество звонковдлительность звонка

по функции / API / имени компонента, нана стороне сервера веб-приложения.

Итог, вопрос:

Как можно профилировать многоуровневое, мультиплатформенное, распределенное веб-приложение?

Решение на основе свободного программного обеспечения является гораздо более предпочтительным.

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

Я публикую свое собственное решениетак как эта практика поощряется на SO

Это решение далеко от совершенства, например, оно находится на очень высоком уровне (отдельные URL-адреса), что может не подходить для всех вариантов использования. Тем не менее, это очень помогло мне в попытке понять, где мое веб-приложение тратит свое время.

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

Ответы на вопрос(2)

Ваш ответ на вопрос