Информация о приложении сквозная транзакция не показывает всю последовательность телеметрии - PullRequest
0 голосов
/ 28 июня 2018

У нас есть несколько микросервисов, и на всех из них активированы аналитические сведения о приложениях. Когда я вижу сквозные детали транзакций для сценария, такого как пользовательский интерфейс, вызывает службу A, которая выполняет некоторые операции с БД, а затем вызывает службу B, которая inturn выполняет некоторые операции с БД. Операции и сервисы вызовов C. В этом сценарии моя сквозная транзакция показывает мне только первый уровень вызовов (т. е. Сервис A, операции дб и вызов сервису B), а после этого просто говорит: «Более подробная информация для этого вызова недоступна. из-за отбора проб ".

Я даже пытался удалить «AdaptiveSamplingTelemetryProcessor» из конфигурации аналитики приложения, но все равно это тоже самое. Ниже скриншот.

enter image description here

1 Ответ

0 голосов
/ 05 июля 2018

Хотя в сообщении на экране упоминается только выборка, в более общем смысле это означает, что в рамках телеметрии следующего микросервиса ничего не было найдено с таким же идентификатором операции, но есть основания полагать, что должна быть телеметрия.

Исправление для этого состоит в том, чтобы гарантировать, что идентификатор операции (и идентификатор родителя) распространяется на все микросервисы и используется в телеметрии, записанной каждым микросервисом.

Как правило, при использовании последних SDK Application Insights вызовы между сервисами через HTTP должны совместно использовать идентификатор операции через корреляционные заголовки . Эти заголовки существуют по запросу к инструментированному микросервису и ответу этой службы. Наличие этих заголовков устанавливает эту «причину ожидать, что должна быть телеметрия».

Поскольку портал обнаружил, что эти заголовки существовали, но не нашли телеметрию от следующей службы (и выборка отключена), похоже, что телеметрия была записана с другим идентификатором операции в следующей службе , Используемая вами дополнительная библиотека (owinextensions) , по-видимому, перезаписывает идентификатор операции собственным поколением , а дает указание удалить встроенные инициализаторы, которые SDK использует для обеспечения корреляции .

Чтобы реализовать исправление, выделенное выше в этой ситуации, я бы либо:

...