Dynatrace на самом деле не полагается на информацию от бобов. Как вы правильно сказали в своих вопросах, мы используем инструменты байт-кода, такие как другие инструменты на рынке. Мы инструментируем ключевые методы определенных фреймворков, например: Servlet, Axis, JMS, JDBC,... В сценарии, когда вы делаете вызов с одной JVM на другую, используя, например, связь на основе Запрос, а также принимающая сторона на другой JVM. На стороне отправки мы прикрепляем дополнительный HTTP-заголовок с идентификатором текущего PurePath. PurePath — наша запатентованная технология. Таким образом, каждый PurePath (= каждая отдельная транзакция) получает уникальный идентификатор. Этот идентификатор «путешествует» с запросом, например: мы помещаем его в HTTP-запрос в качестве HTTP-заголовка. НА принимающей стороне — вашей второй JVM — мы проверяем этот HTTP-заголовок и, следовательно, знаем, что все данные, которые мы собираем, принадлежат этому PurePath. Это позволяет нам выполнять настоящую сквозную трассировку, не полагаясь на такие вещи, как Beans, или без корреляции этих данных на основе, например, временных меток.
Имеет смысл? Если у вас есть дополнительные вопросы, дайте мне знать. Я также записал несколько видеороликов и разместил их на YouTube, чтобы объяснить технологию и сам продукт: http://bit.ly/dttutorials а>
person
Andreas Grabner
schedule
11.02.2015