Wie funktioniert NewRelic durch einfache Installation des .Net-Agenten?

7

Gestern habe ich beschlossen, NewRelic auszuprobieren. Ich habe mich für ein kostenloses Konto angemeldet, den .Net-Agenten installiert und IIS wie angewiesen neu gestartet. Sofort zeigte dieser Agent eine Fülle von Informationen im Dashboard an, wie zum Beispiel:

  • langsamste SQL-Anweisungen
  • Welche Methoden dauern am längsten?
  • Auf welche Seiten wird am häufigsten zugegriffen?

Wie kann das oben Genannte und vieles mehr einfach durch die Installation des .Net-Agenten erreicht werden? Ich bin besorgt über die tatsächliche Anwendungsleistung. Ich habe zuvor Profiling-Tools verwendet, die die Anwendung durch Ändern der kompilierten DLLs erheblich verlangsamen. Dieses Tool scheint jedoch nichts geändert zu haben.

Ich muss noch herausfinden, was all diese Informationen bedeuten und wie dies mir tatsächlich helfen könnte, aber es sieht für mich ziemlich "magisch" aus und ich bin besorgt, ob es Auswirkungen auf die Leistung gibt, wenn der Agent ausgeführt wird und Informationen in das Dashboard hochlädt.

Karl Cassar
quelle

Antworten:

8

New Relic sagt selbst, dass sie die .Net-Profiling-API verwenden.

https://docs.newrelic.com/docs/dotnet/new-relic-net-installation#trouble

Der .NET-Agent instrumentiert den Anwendungs- und Systemcode mithilfe von BCI (Byte Code Injection). Dies erfolgt durch Registrieren des New Relic-Agenten bei der CLR (Common Language Runtime) als "Profiler". Die CLR ruft den .NET-Agenten auf, wenn Code geladen wird, und der Agent instrumentiert den Code, wenn es sich um einen interessanten Methodenaufruf handelt.

Steve Cook
quelle
4

Der Hauptunterschied zwischen dem New Relic .NET Agent und herkömmlichen Profiling-Tools besteht darin, dass der New Relic .NET Agent nicht alles instrumentiert . Die Entwickler von New Relic haben wichtige Methoden in verschiedenen Frameworks (z. B. ASP.NET) und Bibliotheken (z. B. SQL Server) durchgesehen und ausgewählt, und der Agent fügt nur Code in diese Methoden ein. Ein herkömmlicher Profiler fügt Code in alles ein , weshalb er Ihre Anwendung im Allgemeinen verlangsamt. Durch selektives Einfügen von Code kann New Relic sicher sein, den Overhead gering zu halten und Ihnen dennoch Einblick in die interessanten Teile Ihrer Anwendung zu geben.

Micah Zoltu
quelle