Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Figyelemfelhívás
Javasoljuk az Azure Monitor OpenTelemetry Distro használatát az új alkalmazások vagy ügyfelek számára az Azure Monitor Application Insights használatához. Az Azure Monitor OpenTelemetry Distro az Application Insights SDK-hoz hasonló funkciókat és élményt nyújt. Az Application Insights SDK-ból a .NET, a Node.js és a Python áttelepítési útmutatóival migrálható, de még dolgozunk néhány további funkció hozzáadásán a visszamenőleges kompatibilitás érdekében.
A függőség egy olyan összetevő, amelyet az alkalmazás hív meg. Ez általában http, adatbázis vagy fájlrendszer használatával hívott szolgáltatás. Az Application Insights a függőségi hívások időtartamát méri, és azt, hogy sikertelen-e vagy sem, valamint az olyan információkat, mint a függőség neve. Megvizsgálhat bizonyos függőségi hívásokat, és összevetheti őket a kérésekkel és kivételekkel.
Automatikusan nyomon követett függőségek
A .NET-hez és a .NET Core-hoz készült Application Insights SDK-k egy telemetriai modullal DependencyTrackingTelemetryModule
, amely automatikusan gyűjti a függőségeket. Ez a függőséggyűjtemény automatikusan engedélyezve van ASP.NET és ASP.NET Core-alkalmazásokhoz, ha a csatolt hivatalos dokumentumoknak megfelelően van konfigurálva. A modul DependencyTrackingTelemetryModule
a Microsoft.ApplicationInsights.DependencyCollector NuGet csomagként lesz szállítva, és automatikusan el lesz állítva, amikor a NuGet-csomagot vagy a Microsoft.ApplicationInsights.Web
Microsoft.ApplicationInsights.AspNetCore
NuGet-csomagot használja.
DependencyTrackingTelemetryModule
Jelenleg a következő függőségeket követi nyomon automatikusan:
Függőségek | Részletek |
---|---|
HTTP/HTTPS | Helyi vagy távoli HTTP/HTTPS-hívások. |
WCF-hívások | Csak HTTP-alapú kötések használata esetén lesz automatikusan nyomon követve. |
SQL | A SqlClient -val indított hívások. Az SQL-lekérdezések rögzítésére szolgáló teljes SQL-lekérdezés lekéréséhez tekintse meg a Speciális SQL-nyomkövetés című szakaszt. |
Azure Blob-tároló, Táblázat-tároló vagy Sor-tároló | Az Azure Storage-ügyféllel indított hívások. |
Azure Event Hubs ügyféloldali SDK | Használja a legújabb csomagot: https://nuget.org/packages/Azure.Messaging.EventHubs. |
Azure Service Bus-ügyfél SDK | Használja a legújabb csomagot: https://nuget.org/packages/Azure.Messaging.ServiceBus. |
Azure Cosmos DB | HTTP/HTTPS használata esetén a rendszer automatikusan nyomon követi. A TCP-vel történő közvetlen módban végzett műveletek nyomkövetése automatikusan rögzítésre kerül az előnézeti csomag >= 3.33.0-előnézet használatával. További részletekért tekintse meg a dokumentációt. |
Ha hiányzik egy függőség, vagy egy másik SDK-t használ, győződjön meg arról, hogy szerepel az automatikusan gyűjtött függőségek listájában. Ha a függőség nincs automatikusan összegyűjtve, manuálisan is nyomon követheti egy függőség nyomon követése hívással.
Automatikus függőségkövetés beállítása konzolalkalmazásokban
A .NET-konzolalkalmazásoktól származó függőségek automatikus nyomon követéséhez telepítse a NuGet-csomagot Microsoft.ApplicationInsights.DependencyCollector
, és inicializálja a következőt DependencyTrackingTelemetryModule
:
DependencyTrackingTelemetryModule depModule = new DependencyTrackingTelemetryModule();
depModule.Initialize(TelemetryConfiguration.Active);
A .NET Core-konzolalkalmazások TelemetryConfiguration.Active
elavultak. Tekintse meg a Worker szolgáltatás dokumentációjában és a ASP.NET Core monitorozási dokumentációjában található útmutatást.
Hogyan működik az automatikus függőségfigyelés?
A függőségek automatikusan összegyűjthetők az alábbi technikák egyikével:
- Bájtkód-rendszerezés használata a kiválasztott metódusok köré. Használja a
InstrumentationEngine
-t, akár aStatusMonitor
-ból, akár egy Azure App Service Web Apps bővítményt. -
EventSource
Visszahívások. -
DiagnosticSource
visszahívások a legújabb .NET- vagy .NET Core SDK-kban.
Függőségek manuális nyomon követése
A következő, nem automatikusan gyűjtött függőségekre vonatkozó példák manuális nyomkövetést igényelnek:
- Az Azure Cosmos DB csak HTTP/HTTPS használata esetén lesz automatikusan nyomon követve. A TCP-módot az Application Insights nem rögzíti automatikusan a korábbi
2.22.0-Beta1
SDK-verziókhoz. - Redis nevű adatbázis-kezelő rendszer
Az SDK által nem automatikusan gyűjtött függőségek esetében manuálisan is nyomon követheti őket a standard autocollection-modulok által használt TrackDependency API használatával.
Példa
Ha a kódját egy olyan szerelvénnyel állítja össze, amelyet nem Ön írt, az összes hívást időzítheti. Ez a forgatókönyv lehetővé teszi, hogy megtudja, milyen mértékben járul hozzá a válaszidőkhöz.
Ha meg szeretné jeleníteni ezeket az adatokat az Application Insights függőségi diagramjaiban, küldje el a következővel TrackDependency
:
var startTime = DateTime.UtcNow;
var timer = System.Diagnostics.Stopwatch.StartNew();
try
{
// making dependency call
success = dependency.Call();
}
finally
{
timer.Stop();
telemetryClient.TrackDependency("myDependencyType", "myDependencyCall", "myDependencyData", startTime, timer.Elapsed, success);
}
Alternatív megoldásként a TelemetryClient
kiterjesztési metódusokat, StartOperation
és StopOperation
, használhatjuk a függőségek manuális nyomon követésére, ahogyan azt a kimenő függőségek nyomon követése rész mutatja.
Ha ki szeretné kapcsolni a standard függőségkövetési modult, távolítsa el az DependencyTrackingTelemetryModule
ApplicationInsights.config hivatkozását ASP.NET alkalmazásokhoz. Az ASP.NET Core-alkalmazások esetében kövesse az Application Insights ASP.NET Core-alkalmazásokra vonatkozó utasításait.
AJAX-hívások nyomon követése weblapokról
Weblapok esetén az Application Insights JavaScript SDK automatikusan függőségként gyűjti az AJAX-hívásokat.
Speciális SQL-nyomkövetés a teljes SQL-lekérdezés lekéréséhez
Feljegyzés
Az Azure Functions külön beállításokat igényel az SQL-szöveggyűjtemény engedélyezéséhez. További információ: SQL-lekérdezésgyűjtemény engedélyezése.
SQL-hívások esetén a rendszer mindig a kiszolgáló és az adatbázis nevét gyűjti és tárolja az összegyűjtött DependencyTelemetry
névként. Egy másik mező, az úgynevezett adatok a teljes SQL-lekérdezésszöveget tartalmazhatják.
Az ASP.NET Core-alkalmazások esetében most a következő használatával kell csatlakoznia az SQL Text-gyűjteményhez:
services.ConfigureTelemetryModule<DependencyTrackingTelemetryModule>((module, o) => { module. EnableSqlCommandTextInstrumentation = true; });
ASP.NET alkalmazások esetén a rendszer a teljes SQL-lekérdezési szöveget bájtkód-rendszerezés segítségével gyűjti össze, amelyhez a rendszerállapot-kezelő motor vagy a System.Data.SqlClient-kódtár helyett a Microsoft.Data.SqlClient NuGet-csomag használata szükséges. A teljes SQL Query-gyűjtemény engedélyezésének platformspecifikus lépéseit az alábbi táblázat ismerteti.
Felület | A teljes SQL-lekérdezés lekéréséhez szükséges lépések |
---|---|
Web Apps a Azure-alkalmazás Szolgáltatásban | A webalkalmazás vezérlőpultján nyissa meg az Application Insights panelt, és engedélyezze az SQL-parancsokat a .NET alatt. |
IIS-kiszolgáló (Azure Virtual Machines, helyszíni stb.) | Használja a Microsoft.Data.SqlClient NuGet-csomagot, vagy használja az Application Insights Agent PowerShell-modult a rendszerállapot-kezelő motor telepítéséhez és az IIS újraindításához. |
Azure felhőalapú szolgáltatások | Adjon hozzá egy indítási feladatot a StatusMonitor telepítéséhez. Az alkalmazásnak a build során be kell kerülnie az ApplicationInsights SDK-ba, NuGet-csomagok telepítésével ASP.NET vagy ASP.NET Core alkalmazásokhoz. |
IIS Express | Használja a Microsoft.Data.SqlClient NuGet-csomagot. |
WebJobs a Azure-alkalmazás szolgáltatásban | Használja a Microsoft.Data.SqlClient NuGet-csomagot. |
Az előző platformspecifikus lépések mellett explicit módon engedélyeznie kell az SQL-parancsgyűjtést is a applicationInsights.config
fájl alábbi kóddal történő módosításával:
<TelemetryModules>
<Add Type="Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector">
<EnableSqlCommandTextInstrumentation>true</EnableSqlCommandTextInstrumentation>
</Add>
A korábbi esetekben az instrumentációs motor megfelelő telepítésének helyes módja az ellenőrzés, hogy az összegyűjtött DependencyTelemetry
SDK verziója rddp
. A rdddsd
vagy rddf
használata azt jelzi, hogy a függőségek a DiagnosticSource
vagy EventSource
visszahívásokkal vannak összegyűjtve, így a teljes SQL-lekérdezés nem kerül rögzítésre.
A függőségi adatok megkeresésének helye
- Az Alkalmazástérkép az alkalmazás és a szomszédos összetevők közötti függőségeket jeleníti meg.
- A tranzakciódiagnosztika egységes, korrelált kiszolgálóadatokat jelenít meg.
- A Böngészők lapon a felhasználók böngészőiből érkező AJAX-hívások láthatók.
- Válasszon a lassú vagy sikertelen kérelmek közül a függőségi hívások ellenőrzéséhez.
- Az elemzés a függőségi adatok lekérdezésére használható.
Lassú kérések diagnosztizálása
Minden kérésesemény a kérelem feldolgozása során nyomon követett függőségi hívásokhoz, kivételekhez és egyéb eseményekhez van társítva. Ha tehát egyes kérések rosszul teljesítenek, kiderítheti, hogy egy külső szolgáltatás lassú válaszai miatt van-e.
Nyomkövetés kérésektől függőségekhez
Válassza a bal oldali Teljesítmény lapot, és válassza felül a Függőségek lapot.
Válasszon ki egy függőségnevet az Általános csoportban. Miután kiválasztott egy függőséget, megjelenik a függőség időtartam-eloszlásának grafikonja.
Válassza a Minták gombot a jobb alsó sarokban. Ezután válasszon ki egy mintát a végpontok közötti tranzakció részleteinek megtekintéséhez.
Profilozd az élő webhelyet
A .NET Profiler http-hívásokat követ az élő webhelyre, és megjeleníti a kód azon funkcióit, amelyek a leghosszabb ideig tartottak.
Sikertelen kérelmek
A sikertelen kérések függőségek sikertelen hívásaival is társíthatók.
Válassza a bal oldali Hibák lapot, majd a felül található Függőségek lapot.
Itt láthatja a sikertelen függőségek számát. Ha további információt szeretne kapni egy sikertelen előfordulásról, válassza ki a függőség nevét az alsó táblázatban. A végpontok közötti tranzakció részleteinek megtekintéséhez kattintson a jobb alsó sarokban található Függőségek gombra.
Naplók (elemzések)
A függőségeket a Kusto lekérdezési nyelvén követheti nyomon. Íme néhány példa.
Sikertelen függőségi hívások keresése:
dependencies | where success != "True" | take 10
AJAX-hívások keresése:
dependencies | where client_Type == "Browser" | take 10
A kérésekhez társított függőségi hívások megkeresése:
dependencies | where timestamp > ago(1d) and client_Type != "Browser" | join (requests | where timestamp > ago(1d)) on operation_Id
Keresse meg a lapmegtekintésekkel társított AJAX-hívásokat:
dependencies | where timestamp > ago(1d) and client_Type == "Browser" | join (browserTimings | where timestamp > ago(1d)) on operation_Id
Nyílt forráskódú SDK
Mint minden Application Insights SDK, a függőséggyűjtési modul is nyílt forráskód. Olvassa el és járuljon hozzá a kód- vagy jelentésproblémákhoz a hivatalos GitHub-adattárban.
Függőségek automatikus gyűjtése
Az alábbiakban látható azoknak a függőségi hívásoknak a jelenleg támogatott listája, amelyeket a rendszer automatikusan függőségként észlel anélkül, hogy további módosítást kellene igényelnie az alkalmazás kódjához. Ezek a függőségek az Application Insights alkalmazástérképen és a Tranzakciódiagnosztikai nézetekben jelennek meg . Ha a függőség nem szerepel a listán, akkor is nyomon követheti manuálisan egy függőségi hívás segítségével.
.NET
Alkalmazás-keretrendszerek | Verziók |
---|---|
ASP.NET webűrek | 4.5+ |
ASP.NET MVC | 4+ éves kortól |
ASP.NET WebAPI | 4.5+ |
ASP.NET Core | 1.1+ |
Kommunikációs könyvtárak | |
HttpClient | 4.5+, .NET Core 1.1+ |
SqlClient | .NET Core 1.0+, NuGet 4.3.0 |
Microsoft.Data.SqlClient | 1.1.0 – legújabb stabil kiadás. (Lásd a következő megjegyzést.) |
Event Hubs ügyfél-SDK | 1.1.0 |
ServiceBus-ügyfél SDK | 7.0.0 |
Storage-ügyfelek | |
ADO.NET | 4.5+ |
Feljegyzés
A Microsoft.Data.SqlClient régebbi verzióival kapcsolatban ismert probléma merült fel. Javasoljuk, hogy a probléma megoldásához használja az 1.1.0-s vagy újabb verziót. Az Entity Framework Core nem feltétlenül tartalmazza a Microsoft.Data.SqlClient legújabb stabil kiadását, ezért javasoljuk, hogy a probléma elkerülése érdekében erősítse meg, hogy legalább 1.1.0-s verziót használ.
Jáva
Tekintse meg az Application Insights Java automatikusan gyűjtött függőségeinek listáját.
Node.js
A legújabb, jelenleg támogatott modulok listája itt található.
JavaScript
Kommunikációs könyvtárak | Verziók |
---|---|
XMLHttpRequest | Mind |
Következő lépések
- Gyakori kérdések áttekintése (GYIK): Függőségek nyomon követésével kapcsolatos gyakori kérdések
- Ellenőrizze, hogy az Application Insights SDK támogatott verzióját futtatja-e .
- Kivételek
- Felhasználói és oldaladatok
- Elérhetőség
- Egyéni függőségkövetés beállítása Java-hoz
- Egyéni függőség-nyomkövetés beállítása OpenCensus Pythonhoz
- Egyéni függőségi telemetria írása
- Az Application Insights típusokhoz és adatmodellekhez lásd az adatmodellt.
- Az Application Insights által támogatott platformok megtekintése