Как агент AppDynamics управляет внутренними приложениями .NET - PullRequest
0 голосов
/ 05 января 2019

Я изучаю AppDynamics и другие решения APM, чтобы выбрать подходящее для моей компании.

Я создал простое демонстрационное приложение .NET (сервис WCF и консольный клиент для его использования). Затем я установил агент AppDynamics на компьютер и настроил его как для клиента, так и для службы, как для автономных приложений:

<standalone-application executable="AppDynamicsDemo.exe">
    <tier name="Server tier" />
</standalone-application>
<standalone-application executable="AppDynamicsClient.exe">
    <tier name="Client tier" />
</standalone-application>

Когда я запускаю свой клиент и службу, я вижу, что агент AppD «внедрил» код в мои приложения и пишет «Запускающий не запутанный клиент» в консоль Console screenshot

Я хочу понять, какую технику или методы агент AppDynamics использует для инструментов приложений .NET без SDK и является отдельным процессом (службой)? Как он прослушивает входящие вызовы WCF моего сервиса без непосредственного использования сервисом (он не упоминается как сборка, даже не упоминается в app.config)?

1 Ответ

0 голосов
/ 08 января 2019

Спасибо за ответ на мой вопрос. Агент .NET в большинстве инструментов APM работает таким же образом, который использует API профилировщика в .NET SDK и позволяет собирать данные, а также осуществлять обратные вызовы и другой перехват. Большинство инструментов также используют данные счетчика производительности и другие источники помимо среды выполнения .NET. Это позволяет вам делать несколько вещей, похожих на Java, с точки зрения сбора данных.

ref: https://docs.microsoft.com/en-us/visualstudio/profiling/walkthrough-using-profiler-apis?view=vs-2017

http://www.blong.com/conferences/dcon2003/internals/profiling.htm

...