Azure bulut hizmetleri için Application Insights

Application Insights, Application Insights SDK'larından alınan verileri bulut hizmetlerinizdeki Azure Tanılama verileriyle birleştirerek Azure bulut hizmeti uygulamalarını kullanılabilirlik, performans, hata ve kullanım açısından izleyebilir. Uygulamanızın gerçek hayattaki performansı ve etkinliğine ilişkin aldığınız geri bildirimlerden yararlanarak her geliştirme yaşam döngüsünde tasarımın yönü konusunda bilinçli kararlar alabilirsiniz.

Genel bakış panosu

Not

31 Mart 2025’te izleme anahtarı alımı desteği sona erecektir. İzleme anahtarı alımı çalışmaya devam edecek, ancak artık özellik için güncelleştirmeler veya destek sağlamayacağız. Yeni özelliklerden yararlanmak için bağlantı dizelerine geçiş.

Ön koşullar

Başlamadan önce şunları yapmanız gerekir:

  • Bir Azure aboneliği.

    Windows, Xbox Live veya diğer Microsoft bulut hizmetleri için Microsoft hesabınızla oturum açın.

  • Microsoft Azure araçları 2.9 veya üzeri.

  • Developer Analytics Tools 7.10 veya üzeri.

Hızlı bir başlangıç

Bulut hizmetinizi Application Insights ile izlemenin en hızlı ve kolay yolu, uygulamanızı Azure’da yayımlarken bu seçeneği belirlemektir.

Örnek Tanılama Ayarları sayfası

Bu seçenek çalışma zamanında uygulamanızı izler ve web rolünüzdeki istekleri, özel durumları ve bağımlılıkları izlemek için ihtiyacınız olan tüm telemetri verilerini verir. Ayrıca çalışan rollerinizin performans sayaçlarını da izler. Uygulamanız tarafından oluşturulan tüm tanılama izlemeleri de Application Insights'a gönderilir.

Tek ihtiyacınız olan bu seçenekse, işiniz bitti demektir.

Sonraki adımlarınız uygulamanızdaki ölçümleri görüntülemek ve Analytics ile verilerinizi sorgulamaktır.

Tarayıcıda performansı izlemek için kullanılabilirlik testleri ayarlamak ve web sayfalarınıza kod eklemek de isteyebilirsiniz.

Sonraki bölümlerde aşağıdaki ek seçenekler açıklanmıştır:

  • Farklı bileşenlerden veri gönderin ve kaynakları ayırmak için yapılandırmalar oluşturun.
  • Uygulamanızdan özel telemetri ekleyin.

Application Insights ile izlenen örnek uygulama

Bu örnek uygulamada Application Insights, Azure'da barındırılan iki çalışan rolüne sahip bir bulut hizmetine eklenir.

Sonraki bölümde, kendi bulut hizmeti projenizi aynı şekilde uyarlamayı öğreneceksiniz.

Kaynakları ve kaynak gruplarını planlama

Uygulamanızdan alınan telemetri Application Insights türünde bir Azure kaynağında depolanır, analiz edilir ve görüntülenir.

Her kaynak bir kaynak grubuna aittir. Kaynak grupları maliyetleri yönetmek, ekip üyelerine erişim vermek ve güncelleştirmeleri tek bir eşgüdümlü işlemde dağıtmak için kullanılır. Örneğin, bir Azure bulut hizmetini ve Application Insights izleme kaynaklarını tek bir işlemde dağıtmak için bir betik yazabilirsiniz .

Bileşenler için kaynaklar

Kaynak rolünü tanımlayan her telemetri öğesine bir boyut özelliği eklemenizi öneririz. Bu yaklaşımda, özel durumlar gibi ölçüm grafikleri normalde çeşitli rollerdeki sayıların bir toplamasını gösterir, ancak gerektiğinde grafiği rol tanımlayıcıya göre segmentlere ayırabilirsiniz. Aramaları aynı boyuta göre de filtreleyebilirsiniz. Bu alternatif, her şeyi aynı anda görüntülemeyi biraz daha kolaylaştırır, ancak roller arasında bazı karışıklıklara da yol açabilir.

Tarayıcı telemetrisi genellikle ait olduğu sunucu tarafı web rolüyle aynı kaynağa dahil edilir.

Çeşitli bileşenler için Application Insights kaynaklarını tek bir kaynak grubuna yerleştirin. Bu yaklaşım, bunları birlikte yönetmeyi kolaylaştırır.

Geliştirme, test ve üretimi ayırma

Bir önceki sürümünüz yayındayken yen özelliğiniz için özel olaylar geliştiriyorsanız, geliştirme telemetrisini ayrı bir Application Insights kaynağına göndermeniz mantıklı olur. Aksi takdirde, canlı siteden gelen tüm trafik arasında test telemetrinizi bulmak zor olabilir.

Bu durumu önlemek için sisteminizin her derleme yapılandırması veya "damga" (geliştirme, test, üretim vb.) için ayrı kaynaklar oluşturun. Her derleme yapılandırmasına ait kaynakları ayrı bir kaynak grubuna ekleyin.

Telemetriyi uygun kaynaklara göndermek için, derleme yapılandırmasına bağlı olarak farklı bir izleme anahtarı alması için Application Insights SDK'sını ayarlayabilirsiniz.

Farklı aşamalar için izleme anahtarını dinamik olarak ayarlamayı öğrenin.

Her rol için bir Application Insights kaynağı oluşturma

Her rol için ayrı bir kaynak ve belki de her derleme yapılandırması için ayrı bir küme oluşturmaya karar verdiyseniz, bunların tümünü Application Insights portalında oluşturmak en kolayıdır. Çok fazla kaynak oluşturuyorsanız işlemi otomatikleştirebilirsiniz.

  1. Azure portal YeniGeliştirici Hizmetleri>ApplicationInsights'ı> seçin.

    Application Insights bölmesi

  2. Uygulama Türü açılan listesinde web uygulaması ASP.NET seçin.

Her kaynak bir izleme anahtarıyla tanımlanır. SDK'nın yapılandırmasını el ile yapılandırmak veya doğrulamak istiyorsanız bu anahtara daha sonra ihtiyacınız olabilir.

Her rol için Azure Tanılama ayarlama

Uygulamanızı Application Insights ile izlemek için bu seçeneği ayarlayın. Web rolleri için bu seçenek performans izleme, uyarılar, tanılamalar ve kullanım analizi sağlar. Diğer roller için yeniden başlatma, performans sayaçları ve System.Diagnostics.Trace çağrıları gibi Azure Tanılama arayabilir ve izleyebilirsiniz.

  1. Visual Studio Çözüm Gezgini,YourCloudService>Roles altında< her rolün özelliklerini açın.>

  2. Yapılandırma'da Tanılama verilerini Application Insights'a gönder onay kutusunu seçin ve ardından daha önce oluşturduğunuz Application Insights kaynağını seçin.

Her derleme yapılandırması için ayrı bir Application Insights kaynağı kullanmaya karar verdiyseniz önce yapılandırmayı seçin.

Application Insights'ı Yapılandırma

Bu, Application Insights izleme anahtarlarınızı ServiceConfiguration.*.cscfg adlı dosyalara ekleme etkisine sahiptir. Örnek kod aşağıda verilmiştir.

Application Insights'a gönderilen tanılama bilgilerinin düzeyini değiştirmek istiyorsanız, .cscfg dosyalarını doğrudan düzenleyerek bunu yapabilirsiniz.

Her projede SDK’yı yükleyin

Bu seçenekle, herhangi bir role özel iş telemetrisi ekleyebilirsiniz. bu seçenek, uygulamanızın nasıl kullanıldığına ve nasıl performans sergilesine ilişkin daha yakın bir analiz sağlar.

Visual Studio’da her bulut uygulaması projesi için Application Insights SDK’sını yapılandırın.

  1. Web rollerini yapılandırmak için projeye sağ tıklayın ve application insights'ı yapılandır veya Application Insights telemetrisi ekle'yi >seçin.

  2. Çalışan rollerini yapılandırmak için:

    a. Projeye sağ tıklayın ve NuGet Paketlerini Yönet'i seçin.

    b. Windows Sunucuları için Application Insights’ı ekleyin.

  3. SDK'yi Application Insights kaynağına veri gönderecek şekilde yapılandırmak için:

    a. Uygun bir başlangıç işlevinde , .cscfg dosyasındaki yapılandırma ayarından izleme anahtarını ayarlayın:

        TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
        configuration.InstrumentationKey = RoleEnvironment.GetConfigurationSettingValue("APPINSIGHTS_INSTRUMENTATIONKEY");
        var telemetryClient = new TelemetryClient(configuration);
    

    b. Uygulamanızdaki her rol için "a adımı" işlemini yineleyin. Örneklere bakın:

  4. ApplicationInsights.config dosyasını her zaman çıkış dizinine kopyalanacak şekilde ayarlayın.

    .config dosyasındaki bir ileti, izleme anahtarını buraya yerleştirmenizi ister. Ancak bulut uygulamaları için .cscfg dosyasından ayarlamak daha iyidir. Bu yaklaşım, rolün portalda doğru şekilde tanımlanmasını sağlar.

Tam SQL Sorgularını toplamak için Durum İzleyicisi'ni ayarlama (isteğe bağlı)

Bu adım yalnızca .NET Framework tam SQL sorgularını yakalamak istiyorsanız gereklidir.

  1. Dosyada \*.csdef Şuna benzer her rol için başlangıç görevi ekle

    <Startup>
      <Task commandLine="AppInsightsAgent\InstallAgent.bat" executionContext="elevated" taskType="simple">
        <Environment>
          <Variable name="ApplicationInsightsAgent.DownloadLink" value="http://go.microsoft.com/fwlink/?LinkID=522371" />
          <Variable name="RoleEnvironment.IsEmulated">
            <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" />
          </Variable>
        </Environment>
      </Task>
    </Startup>
    
  2. InstallAgent.bat indirin ve InstallAgent.ps1, bunları her rol projesindeki AppInsightsAgent klasöre yerleştirin. Bunları Visual Studio dosya özellikleri veya derleme betikleri aracılığıyla çıkış dizinine kopyaladığınızdan emin olun.

  3. Tüm Çalışan Rollerine ortam değişkenleri ekleyin:

      <Environment>
        <Variable name="COR_ENABLE_PROFILING" value="1" />
        <Variable name="COR_PROFILER" value="{324F817A-7420-4E6D-B3C1-143FBED6D855}" />
        <Variable name="MicrosoftInstrumentationEngine_Host" value="{CA487940-57D2-10BF-11B2-A3AD5A13CBC0}" />
      </Environment>
    

Uygulamayı çalıştırma ve yayımlama

  1. Uygulamanızı çalıştırın ve Azure'da oturum açın.

  2. Oluşturduğunuz Application Insights kaynaklarını açın.

    Tek tek veri noktaları Arama'da, toplanan veriler ise Ölçüm Gezgini'nde görüntülenir.

  3. Daha fazla telemetri ekleyin (sonraki bölümlere bakın) ve ardından canlı tanılama ve kullanım geri bildirimi almak için uygulamanızı yayımlayın.

Veri yoksa aşağıdakileri yapın:

  1. Tek tek olayları görüntülemek için Ara kutucuğunu açın.
  2. Uygulamada, bazı telemetri verileri oluşturabilmesi için çeşitli sayfalar açın.
  3. Birkaç saniye bekleyin ve yenile'ye tıklayın.

Azure Tanılama olaylarını görüntüleme

Application Insights'ta Azure Tanılama bilgilerini aşağıdaki konumlarda bulabilirsiniz:

  • Performans sayaçları özel ölçümler olarak görüntülenir.
  • Windows olay günlükleri izlemeler ve özel olaylar olarak gösterilir.
  • Uygulama günlükleri, ETW günlükleri ve varsa tanılama altyapısı günlükleri izlemeler olarak görünür.

Performans sayaçlarını ve olay sayısını görüntülemek için Ölçüm Gezgini'ni açın ve aşağıdaki grafiği ekleyin:

verileri Azure Tanılama

Azure Tanılama tarafından gönderilen çeşitli izleme günlüklerinde arama yapmak için Arama veya Analiz sorgusu kullanın. Örneğin, bir rolün kilitlenmesine ve geri dönüştürülmesine neden olan işlenmemiş bir özel durumunuz olduğunu varsayalım. Bu bilgi, Windows Olay Günlüğü’nün Uygulama kanalında görünür. Arama özelliğini kullanarak Windows Olay Günlüğü hatasını görüntüleyebilir ve özel durum için tam yığın izlemesini alabilirsiniz. Bunu yapmak sorunun kök nedenini bulmanıza yardımcı olur.

arama Azure Tanılama

Daha fazla telemetri

Sonraki bölümlerde, uygulamanızın çeşitli yönlerinden nasıl ek telemetri alınılacağı açıklanır.

Çalışan rollerinden gelen istekleri izleme

Web rollerinde, istek modülü otomatik olarak HTTP istekleriyle ilgili verileri toplar. Varsayılan toplama davranışını nasıl geçersiz kılabileceğinize ilişkin örnekler için bkz. örnek MVCWebRole.

Çalışan rollerine yapılan çağrıları HTTP istekleriyle aynı yöntemle izleyerek bunların performansını yakalayabilirsiniz. Application Insights’ta İstek telemetri türü, zamanlanabilen ve bağımsız olarak başarılı ya da başarısız olabilen adlandırılmış sunucu tarafı işin bir birimini ölçer. HTTP istekleri SDK tarafından otomatik olarak yakalansa da, çalışan rollerine yönelik istekleri izlemek için kendi kodunuzu ekleyebilirsiniz.

İstekleri bildirmek için izlenen iki örnek çalışan rolüne bakın:

Özel durumlar

Çeşitli web uygulaması türlerinden işlenmeyen özel durumları toplama hakkında bilgi için bkz. Application Insights'ta özel durumları izleme.

Örnek web rolü, MVC5 ve Web API 2 denetleyicilerine sahiptir. Bu ikisinden toplanan işlenmemiş özel durumlar aşağıdaki işleyicilerle yakalanır:

Çalışan rolleri için özel durumları iki şekilde izleyebilirsiniz:

  • TrackException(örn.) kullanın.
  • Application Insights izleme dinleyicisi NuGet paketini eklediyseniz, bu örnekte gösterildiği gibi özel durumları günlüğe kaydetmek için System.Diagnostics.Trace kullanabilirsiniz.

Performans sayaçları

Aşağıdaki sayaçlar varsayılan olarak toplanır:

  • \İşlem(?? APP_WIN32_PROC??) İşlemci Süresi Yüzdesi
  • \Memory\Available Bytes
  • .NET CLR Özel Durumları(?? APP_CLR_PROC??) # of Exceps Thrown / sec
  • \Process(??APP_WIN32_PROC??)\Private Bytes
  • \Process(??APP_WIN32_PROC??)\IO Data Bytes/sec
  • \processor(_Total)% İşlemci Süresi

Web rolleri için aşağıdaki sayaçlar da toplanır:

  • \ASP.NET Applications(??APP_W3SVC_PROC??)\Requests/Sec
  • \ASP.NET Applications(??APP_W3SVC_PROC??)\Request Execution Time
  • \ASP.NET Applications(??APP_W3SVC_PROC??)\Requests In Application Queue

Bu örnekte gösterildiği gibiApplicationInsights.config düzenleyerek ek özel veya diğer Windows performans sayaçlarını belirtebilirsiniz.

Performans sayaçları

Çalışan rolleri için bağıntılı telemetri

Zengin bir tanılama deneyimi için başarısız veya yüksek gecikme isteğine neyin yol açtığını görüntüleyebilirsiniz. Web rolleri sayesinde SDK, ilgili telemetri arasında otomatik olarak bir bağıntı kurar.

Çalışan rollerinde bu görünümü elde etmek için, tüm telemetri için ortak bir Operation.Id bağlam özniteliği ayarlamak üzere özel bir telemetri başlatıcısı kullanabilirsiniz. Bunu yaptığınızda gecikme veya hata sorununun bir bağımlılıktan mı yoksa kodunuzdan mı kaynaklandığını bir bakışta görebilirsiniz.

Aşağıdaki adımları uygulayın:

İstemci telemetrisi

Sayfa görünümü sayıları, sayfa yükleme süreleri veya betik özel durumları gibi tarayıcı tabanlı telemetri verilerini almak ve sayfa betiklerinize özel telemetri yazmak için bkz. JavaScript SDK'sını web sayfalarınıza ekleme.

Kullanılabilirlik testleri

Uygulamanızın canlı ve yanıt vermeye devam etmediğinden emin olmak için Web testleri ayarlayın.

Her şeyi birlikte görüntüleme

Sisteminizin genel bir resmi için, temel izleme grafiklerini tek bir panoda birlikte görüntüleyebilirsiniz. Örneğin, her rolün istek ve hata sayılarını sabitleyebilirsiniz.

Sisteminiz Stream Analytics gibi diğer Azure hizmetlerini kullanıyorsa izleme grafiklerini de ekleyin.

İstemci mobil uygulamanız varsa, App Center kullanın. Analiz’de olay sayılarını görüntüleyecek sorgular oluşturun ve bunları panoya sabitleyin.

Örnek

Örnek, bir web rolü ve iki çalışan rolüne sahip bir hizmeti izler.

Azure bulut hizmetlerinde çalışırken "yöntem bulunamadı" özel durumu

.NET LTS için derleme yaptınız mı? Önceki sürümler Azure bulut hizmetleri rollerinde otomatik olarak desteklenmez. Uygulamanızı çalıştırmadan önce her role .NET LTS yükleyin.

Sonraki adımlar