Kód írása a kérések nyomon követéséhez az Application Insights használatával
Az Application Insightsnak nyomon kell követnie az alkalmazásra vonatkozó kéréseket, hogy profilokat biztosítson az alkalmazáshoz a Azure Portal Teljesítmény lapján. A már kialakított keretrendszerekre (például ASP.NET és ASP.NET Core) épülő alkalmazások esetében az Application Insights képes automatikusan nyomon követni a kéréseket.
Más alkalmazások (például az Azure Cloud Services feldolgozói szerepkörök és az Azure Service Fabric állapot nélküli API-k) esetében a kéréseket olyan kóddal kell nyomon követnie, amely közli az Application Insightsszal, hogy hol kezdődnek és fejeződnek be a kérések. A rendszer ezután elküldi a kérések telemetriáját az Application Insightsnak, amelyet a Teljesítmény lapon tekinthet meg. A rendszer profilokat gyűjt ezekhez a kérésekhez.
A kérések manuális nyomon követése:
Az alkalmazás élettartamának korai szakaszában adja hozzá a következő kódot:
using Microsoft.ApplicationInsights.Extensibility; ... // Replace with your own Application Insights instrumentation key. TelemetryConfiguration.Active.InstrumentationKey = "00000000-0000-0000-0000-000000000000";
További információ erről a globális rendszerállapotkulcs-konfigurációról: A Service Fabric használata az Application Insightsszal.
A használni kívánt kódrészletekhez adjon hozzá egy
StartOperation<RequestTelemetry>
using utasítást, ahogyan az alábbi példában látható:using Microsoft.ApplicationInsights; using Microsoft.ApplicationInsights.DataContracts; ... var client = new TelemetryClient(); ... using (var operation = client.StartOperation<RequestTelemetry>("Insert_Your_Custom_Event_Unique_Name")) { // ... Code I want to profile. }
Egy másik
StartOperation<RequestTelemetry>
hatókörön belüli hívásStartOperation<RequestTelemetry>
nem támogatott. Ehelyett használhatjaStartOperation<DependencyTelemetry>
a beágyazott hatókört. Például:using (var getDetailsOperation = client.StartOperation<RequestTelemetry>("GetProductDetails")) { try { ProductDetail details = new ProductDetail() { Id = productId }; getDetailsOperation.Telemetry.Properties["ProductId"] = productId.ToString(); // By using DependencyTelemetry, 'GetProductPrice' is correctly linked as part of the 'GetProductDetails' request. using (var getPriceOperation = client.StartOperation<DependencyTelemetry>("GetProductPrice")) { double price = await _priceDataBase.GetAsync(productId); if (IsTooCheap(price)) { throw new PriceTooLowException(productId); } details.Price = price; } // Similarly, note how 'GetProductReviews' doesn't establish another RequestTelemetry. using (var getReviewsOperation = client.StartOperation<DependencyTelemetry>("GetProductReviews")) { details.Reviews = await _reviewDataBase.GetAsync(productId); } getDetailsOperation.Telemetry.Success = true; return details; } catch(Exception ex) { getDetailsOperation.Telemetry.Success = false; // This exception gets linked to the 'GetProductDetails' request telemetry. client.TrackException(ex); throw; } }
Megjegyzés
2025. március 31-én megszűnik az eszközkulcsalapú betöltés támogatása. A rendszerállapotkulcs-betöltés továbbra is működni fog, de a továbbiakban nem biztosítunk frissítéseket vagy támogatást a funkcióhoz. Váltsa át a kapcsolati sztringeket az új képességek kihasználásához.