Несколько недель назад я выступал на JSConf Asia с докладом об использовании Performance API. Хотя мой доклад был в первую очередь об API, я также немного поговорил о трассировке. Людям понравилось объяснение по трассировке, поэтому я подумал, что сделаю глубокое погружение ✌️
Так! Отслеживание! Отслеживание - это форма ведения журнала. Вместо того, чтобы быть неструктурированным console.log()
, трассировка предоставляет дополнительную информацию о журнале. С помощью трассировки вы можете увидеть взаимосвязь между журналами.
След состоит из пролетов. Интервал - это журнал, в котором описывается отдельная работа. Обычно он имеет отметку времени для времени начала и окончания работы и, возможно, некоторые аннотации об измененном состоянии данного объекта. В нем также будет полезная информация, которую вы захотите увидеть при отладке.
Группа промежутков создает дерево узлов, сгруппированных по их отношениям друг к другу с течением времени.
Но как происходит группировка этой информации? Существует два основных метода сбора данных трассировки: внутриполосный и внеполосный. Внутриполосный сбор происходит, когда вы передаете данные вместе с заголовками вашего запроса. Например, заголовок server-time или пользовательский, из которого вы можете хранить и читать информацию. При внеполосном сборе вы пишете и считываете информацию из API по мере продвижения по дереву трассировки.
g o o d l i n k z .
Я узнал большую часть этой информации из шикарной бумаги Google. У него есть хорошие основы того, как они справились с реализацией трассировки.
Как и в случае с Dapper, я предлагаю вам оформить заказ в открывающемся формате.
Chrome недавно выпустил способ проверить тайминги сервера с помощью заголовка server-тайминга, о котором я упоминал выше. Я сам еще не использовал его, но мне кажется, что это интересный способ увидеть тайминги серверов в инструментах разработчика.
Спасибо за просмотр ✨ ✌️ Если вы хотите увидеть больше моих рисунков, подписывайтесь на меня в twitter. Также, если вам посчастливилось оказаться в Мельбурне в JSConf AU, приходите поздороваться! Я буду говорить о HTTP / 2 в Node.js 💻