Çözümün tamamını izleme

Tamamlandı

Bu ünitede çözümün tamamını izlemeye bakacağız.

Giriş

Günümüzün karmaşık bilgi işlem ortamlarında izlemeyi etkinleştirmek için dağıtılmış bir sistemin her katmanından ve bileşeninden işletimsel verilerin toplanması gerekir. Kuruluşunuzdaki çok sayıda paydaşı desteklemek için bu veriler hakkında ayrıntılı içgörülere ve bunları farklı bakış açılarıyla birleştirmeye ihtiyacınız vardır.

Azure İzleyici, analiz, görselleştirme ve uyarı için kullanabileceğiniz farklı türlerdeki kaynaklardan veri toplar. Tüm izlenen kaynaklarınız ve hatta verilerini Azure İzleyici'de depolayan diğer hizmetlerden alınan verilerle ilgili ayrıntılı içgörüler sağlar.

Log Analytics

Günlükler, sistem içinde gerçekleşen olaylardır. Günlükler farklı türde veriler içerebilir ve zaman damgasıyla yapılandırılmış veya serbest biçimli metinler olabilir. Günlükler, ortamdaki olaylar günlük girdileri oluşturduğundan zaman içinde oluşturulabilir. Ağır yük altındaki bir sistem genellikle daha fazla günlük birimi oluşturur.

Azure İzleyici'deki günlükler, sorunların kök nedenlerini belirlemek için değerlidir. Azure İzleyici Günlüklerinin topladığı veriler bir veya daha fazla Log Analytics çalışma alanında depolanır. Veriler, verileri işlemek ve sonuçları döndürmek için salt okunur bir istek olan günlük sorgusu kullanılarak Log Analytics çalışma alanından alınır. Günlük sorguları, Azure Veri Gezgini tarafından kullanılan sorgu diliyle aynı olan Kusto Sorgu Dili (KQL) ile yazılır.

Not

Azure Spring Apps örnek uygulamanız zaten bir Log Analytics çalışma alanıyla ayarlanmıştır. KQL söz dizimi hakkında daha fazla bilgi için bu eğitimin sonundaki Özet birimine bakın.

Log Analytics kullanma

Uygulamanızın günlüklerine erişmenin üç yolu vardır: Azure Depolama, Azure Olay Merkezi ve Log Analytics. Burada Log Analytics'e odaklanacağız çünkü en yaygın olanıdır ve ölçüm izleme için Azure Spring Apps ile tümleşiktir.

Önemli

Azure İzleyici'de Günlük verilerini alma süresi 15 dakikaya kadar sürebilir. Log Analytics'te veri bulunamazsa Azure Spring Apps günlük verilerinin alınması ek zaman alabilir.

  1. Azure portalı açın.

  2. Azure hizmetleri listesinden Azure Spring Apps'i seçin.

  3. Azure Spring Apps örneğinizi seçin.

  4. Ardından İzleme bölümünün altında Günlükler'i seçin.

  5. Sorgu arama kutusunda:

    Azure Spring Apps günlükleri için sorguyu gösteren ekran görüntüsü.

    • Günlükleri görüntülemek için aşağıdaki gibi bir sorgu çalıştırın:

      AppPlatformLogsforSpring
      | limit 50
      
    • Ölçümleri görüntülemek için şunun gibi bir sorgu girin:

      AzureMetrics
      | limit 50
      
    • Bir filtre koşulu ayarlayarak belirli bir uygulamanın veya örneğin günlüklerini arayabilirsiniz:

      AppPlatformLogsforSpring
      | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName"
      | limit 50
      

Uygulama günlüklerini analiz etme

Uygulama günlükleri, uygulamanızın durumu, performansı ve daha fazlası hakkında kritik bilgiler ve ayrıntılı günlükler sağlar. Sonraki bölümde, uygulamanızın geçerli ve geçmiş durumlarını anlamanıza yardımcı olacak sorgular sağlayacağız.

Azure Spring Apps'ten uygulama günlüklerini gösterme

  1. Azure portalı açın.

  2. Azure hizmetleri listesinden Azure Spring Apps'i seçin.

  3. Azure Spring Apps örneğinizi seçin.

  4. Ardından İzleme bölümünün altında Günlükler'i seçin.

  5. Sorgu arama kutusunda:

    • Azure Spring Apps'ten uygulama günlüklerinin listesini gözden geçirmek için, önce gösterilen en son günlüklerle zamana göre sıralanmış olarak aşağıdaki sorguyu çalıştırın:

      AppPlatformLogsforSpring
      | project TimeGenerated , ServiceName , AppName , InstanceName , Log
      | sort by TimeGenerated desc
      
    • Hata veya özel durumdan bahseden sıralanmamış günlük girdilerini gözden geçirmek için aşağıdaki sorguyu çalıştırın:

      AppPlatformLogsforSpring
      | project TimeGenerated , ServiceName , AppName , InstanceName , Log
      | where Log contains "error" or Log contains "exception"
      
    • Uygulamanız tarafından günlüğe kaydedilen hata ve özel durum sayısını görüntüleyen bir pasta grafik oluşturmak için aşağıdaki sorguyu çalıştırın:

      AppPlatformLogsforSpring
      | where TimeGenerated > ago(1h)
      | where Log contains "error" or Log contains "exception"
      | summarize count_per_app = count() by AppName
      | sort by count_per_app desc
      | render piechart
      

Veritabanı İzleme

Sunucularınız hakkındaki verileri izlemek, iş yükünüz için sorun gidermenize ve iyileştirmenize yardımcı olur. MySQL için Azure Veritabanı, sunucunuzun davranışı hakkında içgörü sağlayan çeşitli ölçümler sağlar.

MySQL için Azure Veritabanı yavaş sorgu günlüğü kullanıcılar tarafından kullanılabilir. İşlem günlüğüne erişim desteklenmez. Sorun gidermeye yönelik performans sorunlarını belirlemek için yavaş sorgu günlüğünü kullanabilirsiniz.

Örnek uygulamamızda, yavaş sorgu günlükleriniz Tanılama Günlükleri aracılığıyla Azure İzleyici Günlüklerine yöneltilecek şekilde ayarlanır ve yavaş sorgularınızın daha fazla analizini yapabilirsiniz. Başlamanıza yardımcı olacak örnek sorgular aşağıda verilmiştir/

Önemli

Azure İzleyici'de MySQL Günlük verilerini alma süresi 30 dakikaya kadar sürebilir. Log Analytics'te veri bulunmazsa MySQL günlük verilerinin alınması ek zaman alabilir.

  1. Azure Portal’ında oturum açın.

  2. Azure Spring Apps için kullandığınız MySQL için Azure Veritabanı sunucunuzu seçin.

  3. Ardından İzleme bölümünün altında Günlükler'i seçin.

    Bir saniyeden uzun sorgular için sorguyu gösteren ekran görüntüsü.

  4. Sorgu arama kutusunda:

    • Bir saniyeden uzun tüm Sorguları almak için aşağıdaki sorguyu çalıştırın:

      AzureDiagnostics
      | where Category == 'MySqlSlowLogs'
      | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
      
    • En uzun beş sorguyu listelemek için aşağıdaki sorguyu çalıştırın:

      AzureDiagnostics
      | where Category == 'MySqlSlowLogs'
      | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
      | order by query_time_d desc
      | take 5
      
    • Yavaş sorguları minimum, maksimum, ortalama ve standart sapma sorgu süresine göre özetlemek için aşağıdaki sorguyu çalıştırın:

      AzureDiagnostics
      | where Category == 'MySqlSlowLogs'
      | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
      | summarize count(), min(query_time_d), max(query_time_d), avg(query_time_d), stdev(query_time_d), percentile(query_time_d, 95) by LogicalServerName_s
      
    • Belirli bir sunucudaki yavaş sorgu dağılımının grafiğini oluşturmak için aşağıdaki sorguyu çalıştırın:

      AzureDiagnostics
      | where Category == 'MySqlSlowLogs'
      | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
      | summarize count() by LogicalServerName_s, bin(TimeGenerated, 5m)
      | render timechart
      
  5. Veritabanı düzeyinde etkinliği izlemek için denetim günlüğünü de kullanabilirsiniz. Uyumluluk için yaygın olarak kullanılır. Denetim günlükleri Azure İzleyici Tanılama Günlükleri ile tümleştirilir. Örneğinizde, denetlenen olaylarınızın daha fazla analizini gerçekleştirebilmeniz için MySQL sunucunuzda denetim günlüklerini etkinleştirdik.

    • Genel MySQL günlüğünü alan örnek bir sorgu aşağıda verilmiştir:

      AzureDiagnostics
      | where Category == 'MySqlAuditLogs' and event_class_s == "general_log"
      | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s 
      | order by TimeGenerated desc
      

Kullanıcı arabirimi izleme

Application Insights'ı sayfa betiğinize eklerseniz, sayfa yüklemelerinin zamanlamalarını ve AJAX çağrılarını, sayılarını ve tarayıcı özel durumlarının ve AJAX hatalarının ayrıntılarını, ayrıca kullanıcıları ve oturum sayısını alırsınız. Bu ölçümlerin tümünü sayfaya, istemci işletim sistemine ve tarayıcı sürümüne, coğrafi konuma ve diğer boyutlara göre segmentlere ayırmanız gerekir. Hata sayıları veya yavaş sayfa yüklemeyle ilgili uyarılar ayarlayabilir ve JavaScript kodunuza izleme çağrıları ekleyerek web sayfası uygulamanızın farklı özelliklerinin nasıl kullanıldığını izleyebilirsiniz.

Application Insights'i herhangi bir web sayfasıyla kullanabilirsiniz; JavaScript'in kısa bir parçasını eklersiniz. Web hizmetiniz Java ise, uygulamanızın performansını anlamak için istemci tarafı JavaScript SDK'sı ile sunucu tarafı SDK'larını kullanabilirsiniz.

Not

Kullanıcı arabirimi izleme hakkında daha fazla bilgi için bu eğitimin sonundaki Özet birimine bakın.