Megosztás a következőn keresztül:


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:

  1. 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.

  2. 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ás StartOperation<RequestTelemetry> nem támogatott. Ehelyett használhatja StartOperation<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.

Következő lépések

Az Application Insights Profiler hibaelhárítása.