Java web projesinde Azure Uygulaması İçgörüleri sorunlarını giderme

Bu makalede, Application Insights Java 2.x için Q&A biçimindeki yaygın sorunlara yönelik sorun giderme çözümleri sağlanır.

Dikkat

Bu belge, artık önerilen Application Insights Java 2.x için geçerlidir.

En son sürümle ilgili belgeler Application Insights Java 3.x'te bulunabilir.

Java'da Azure Uygulaması Insights ile ilgili sorularınız veya sorunlarınız mı var? İşte bazı ipuçları.

Derleme hataları

Eclipse veya Intellij Idea'da Application Insights SDK'sını Maven veya Gradle aracılığıyla eklediğimde derleme veya sağlama toplamı doğrulama hataları alıyorum

Bağımlılık <sürümü> öğesi joker karakter içeren bir desen kullanıyorsa (örneğin, <version>[2.0,)</version> Maven'da veya version:'2.+' Gradle'da), bunun yerine gibi 2.6.4belirli bir sürüm belirtmeyi deneyin.

Veri yok

Application Insights'ı başarıyla ekledim ve uygulamamı çalıştırdım, ancak portalda hiç veri görmedim

  • Bir dakika bekleyin ve yenile'yi seçin. Grafikler düzenli aralıklarla yenilenir, ancak el ile de yenileyebilirsiniz. Yenileme aralığı grafiğin zaman aralığına bağlıdır.

  • ApplicationInsights.xml dosyasında (projenizdeki kaynaklar klasöründe) bir izleme anahtarı tanımladığınızdan veya ortam değişkeni olarak yapılandırdığınızdan emin olun.

  • XML dosyasında düğüm olmadığını <DisableTelemetry>true</DisableTelemetry> doğrulayın.

  • Gerekirse, giden trafik dc.services.visualstudio.comiçin güvenlik duvarınızda 80 ve 443 numaralı TCP bağlantı noktalarını açın. Güvenlik duvarı özel durumlarının tam listesine bakın.

  • Microsoft Azure başlangıç panosunda hizmet durumu haritasına bakın. Bazı uyarı göstergeleri varsa, Tamam'a dönene kadar bekleyin ve ardından Application Insights uygulama dikey pencerenizi kapatıp yeniden açın.

  • ApplicationInsights.xml dosyasındaki kök düğümün altına (projenizdeki kaynaklar klasöründe) bir <SDKLogger> öğesi ekleyerek günlüğü açın. Ardından, şüpheli günlükler için ile AI: INFO/WARN/ERROR önceden oluşturulmuş girdileri denetleyin.

  • Java SDK'sı tarafından doğru ApplicationInsights.xml dosyasının başarıyla yüklendiğinden emin olun. Konsolun çıkış iletilerini "Yapılandırma dosyası başarıyla bulundu" deyimi için denetleyin.

  • Yapılandırma dosyası bulunamazsa, yapılandırma dosyasının nerede arandığını görmek için çıkış iletilerini denetleyin. ApplicationInsights.xml bu arama konumlarından birinde bulunduğundan emin olun. Kural olarak, yapılandırma dosyasını Application Insights SDK JAR'lerinin yakınına yerleştirebilirsiniz. Örneğin, Tomcat'te klasör WEB-INF/sınıflar olabilir. Geliştirme sırasında ApplicationInsights.xml web projenizin resources klasörüne yerleştirebilirsiniz.

  • SDK ile ilgili bilinen sorunlar için GitHub sorunları sayfasına bakın.

  • Sürüm çakışması sorunlarını önlemek için Application Insights çekirdek, web, aracı ve günlük ekleyicilerinin aynı sürümünü kullandığınızdan emin olun.

Not

Bu makale kısa süre önce Log Analytics yerine Azure İzleyici günlükleri terimini kullanacak şekilde güncelleştirildi. Günlük verileri hala bir Log Analytics çalışma alanında depolanır ve yine de aynı Log Analytics hizmeti tarafından toplanır ve analiz edilir. Azure İzleyici'deki günlüklerin rolünü daha iyi yansıtacak şekilde terminolojiyi güncelleştiriyoruz. Ayrıntılar için bkz. Azure İzleyici terminolojisi değişiklikleri .

Eskiden verileri görürdum ama durduruldu

  • Aylık veri noktası kotanıza mı bastınız? Öğrenmek için Ayarlar>Kotası ve Fiyatlandırma'yı açın. Bu durumda planınızı yükseltebilir veya daha fazla kapasite için ödeme yapabilirsiniz. Daha fazla bilgi için bkz. fiyatlandırma şeması.

  • KıSA süre önce SDK'nızı yükselttiniz mi? Proje dizininde yalnızca Benzersiz SDK jar'larının bulunduğundan emin olun. SDK'nın iki farklı sürümü olmamalıdır.

  • Doğru yapay zeka kaynağına mı bakıyorsunuz? Uygulamanızın iKey değerini telemetri beklediğiniz kaynakla eşleştirdiğinizden emin olun. Aynı olmalı.

Beklediğim tüm verileri görmüyorum

  • Kullanım ve tahmini maliyet sayfasını açın ve örneklemenin çalışıp çalışmadığını denetleyin. (%100 iletim, örneklemenin çalışmadığını gösterir.) Application Insights hizmeti, uygulamanızdan gelen telemetri verilerinin yalnızca bir bölümünü kabul etmek üzere ayarlanabilir. Bu ayar, aylık telemetri kotanızda kalmanıza yardımcı olur.

  • SDK Örneklemesi açık mı? Evet ise, veriler tüm geçerli türler için belirtilen hızda örneklenebilir.

  • Java SDK'sının eski bir sürümünü mü çalıştırıyorsunuz? Sürüm 2.0.1'den başlayarak, aralıklı ağ ve arka uç hatalarının yanı sıra yerel sürücülerde veri kalıcılığını işlemek için bir hataya dayanıklılık mekanizması kullanıma sunulmuştur.

  • Aşırı telemetrinin azaltmaya neden olup olmadığını denetleyin. BİlGİ günlüğünü açarsanız bir "Uygulama kısıtlandı" günlük iletisi görürsünüz. Geçerli sınırımız saniyede yaklaşık 32.000 telemetri öğesidir.

Java Aracısı bağımlılık verilerini yakalayamıyor

  • Java aracısını yapılandırdınız mı?

  • Hem Java aracısı jar dosyasının hem de AI-Agent.xml dosyasının aynı klasöre yerleştirildiğinden emin olun.

  • Otomatik toplamaya çalıştığınız bağımlılığın otomatik toplama için desteklendiğinden emin olun. Şu anda yalnızca MySQL, Microsoft SQL Server, Oracle DB ve Redis için Azure Cache bağımlılık koleksiyonunu destekliyoruz.

Kullanım verileri yok

İstekler ve yanıt süreleri hakkında veri görüyorum ancak sayfa görünümü, tarayıcı veya kullanıcı verileri yok

Uygulamanızı sunucudan telemetri gönderecek şekilde başarıyla ayarladınız. Şimdi bir sonraki adımınız , web sayfalarınızı web tarayıcısından telemetri gönderecek şekilde ayarlamaktır.

Alternatif olarak, istemciniz bir telefon veya başka bir cihazdaki bir uygulamaysa, buradan telemetri gönderebilirsiniz.

İstemcinizi ve sunucu telemetrinizi ayarlamak için aynı izleme anahtarını kullanın. Veriler aynı Application Insights kaynağında görünür ve istemciden ve sunucudan gelen olayları ilişkilendirebilirsiniz.

Telemetriyi devre dışı bırakma

Telemetri koleksiyonunu nasıl devre dışı bırakabilirim?

Şu çözümlerden birini izleyin:

  • Kodda koleksiyonu devre dışı bırakma:

    TelemetryConfiguration config = TelemetryConfiguration.getActive();
    config.setTrackingIsDisabled(true);
    
  • ApplicationInsights.xml güncelleştirin (projenizdeki kaynaklar klasöründe). Kök düğümün altına aşağıdaki XML öğesini ekleyin:

    <DisableTelemetry>true</DisableTelemetry>
    

    XML yöntemini kullanırsanız, değeri değiştirdiğinizde uygulamayı yeniden başlatmanız gerekir.

Hedefi değiştirme

Projemin hangi Azure kaynağına veri gönderdiğini nasıl değiştirebilirim?

  • Yeni kaynağın izleme anahtarını alın.

  • Azure Toolkit for Eclipse kullanarak projenize Application Insights eklediyseniz web projenize sağ tıklayın, Azure>Application Insights'ı Yapılandır'ı seçin ve anahtarı değiştirin.

  • İzleme anahtarını bir ortam değişkeni olarak yapılandırdıysanız ortam değişkeninin değerini yeni iKey ile güncelleştirdiğinizden emin olun.

  • Aksi takdirde, projenizin resources klasöründeki ApplicationInsights.xml anahtarını güncelleştirin.

SDK'dan veri hatalarını ayıklama

SDK'nın ne yaptığını nasıl öğrenebilirim?

API'de neler olduğu hakkında daha fazla bilgi edinmek için ApplicationInsights.xmlyapılandırma dosyasının kök düğümüne SDKLogger> öğesini ekleyin<.

ApplicationInsights.xml

SDKLogger> öğesinde<, günlükçüye bir dosyaya çıkış oluşturmasını da belirtebilirsiniz:

<SDKLogger type="FILE"><!-- or "CONSOLE" to print to stderr -->
    <Level>TRACE</Level>
    <UniquePrefix>AI</UniquePrefix>
    <BaseFolderPath>C:/agent/AISDK</BaseFolderPath>
</SDKLogger>

Spring Boot starter

Application Insights Spring Boot başlatıcısını kullanarak spring boot uygulamalarıyla SDK günlüğünü etkinleştirmek için application.properties dosyasına aşağıdaki satırları ekleyin:

azure.application-insights.logger.type=file
azure.application-insights.logger.base-folder-path=C:/agent/AISDK
azure.application-insights.logger.level=trace

Alternatif olarak, standart hata akışına yazdırabilirsiniz:

azure.application-insights.logger.type=console
azure.application-insights.logger.level=trace

Java aracısı

JVM aracı günlüğünü etkinleştirmek için AI-Agent.xml dosyasını güncelleştirin:

<AgentLogger type="FILE"><!-- or "CONSOLE" to print to stderr -->
    <Level>TRACE</Level>
    <UniquePrefix>AI</UniquePrefix>
    <BaseFolderPath>C:/agent/AIAGENT</BaseFolderPath>
</AgentLogger>

Java komut satırı özellikleri

Sürüm 2.4.0'dan itibaren

Yapılandırma dosyalarını değiştirmek yerine komut satırı seçeneklerini kullanarak günlüğe kaydetmeyi etkinleştirmek için aşağıdaki komutu çalıştırın:

java -Dapplicationinsights.logger.file.level=trace \
    -Dapplicationinsights.logger.file.uniquePrefix=AI \
    -Dapplicationinsights.logger.baseFolderPath="C:/my/log/dir" \
    -jar MyApp.jar

Veya standart hata akışına yazdırmak için aşağıdaki komutu çalıştırın:

java -Dapplicationinsights.logger.console.level=trace -jar MyApp.jar

Azure başlangıç ekranı

Azure portal bakıyorum. Harita bana uygulamam hakkında bir şey söylüyor mu?

Hayır, dünyanın dört bir yanındaki Azure sunucularının durumunu gösterir.

Uygulamam hakkındaki verileri Azure başlangıç panosundan (giriş ekranı) Nasıl yaparım? bulabilirsiniz?

Uygulamanızı Application Insights için ayarladığınızı varsayarsak,Application Insights'aGözat'ı> seçin ve ardından uygulamanız için oluşturduğunuz uygulama kaynağını seçin. İleride oraya daha hızlı ulaşmak için uygulamanızı başlangıç panosuna sabitleyin.

İntranet sunucuları

İntranetimdeki bir sunucuyu izleyebilir miyim?

Evet, sunucunuz telemetri verilerini genel İnternet üzerinden Application Insights portalına gönderebiliyorsa.

SDK'nın portala veri göndermesine izin vermek için sunucunuzun güvenlik duvarında bazı giden bağlantı noktalarını açmanız gerekebilir.

Veri saklama

Veriler portalda ne kadar süreyle saklanır? Güvenli mi?

Bkz. Veri saklama ve gizlilik.

Hata ayıklama günlüğü

Application Insights kullanır org.apache.http. Bu ad alanı, ad alanı altındaki Application Insights çekirdek jar'ları içinde com.microsoft.applicationinsights.core.dependencies.httpyeniden konumlandırılır. Bu yeniden konumlandırma, Application Insights'ın aynı org.apache.http sürümün farklı sürümlerinin tek bir kod tabanında bulunduğu senaryoları işlemesini sağlar.

Not

Uygulamadaki tüm ad alanları için düzeyli günlüğe kaydetmeyi etkinleştirirseniz DEBUG, yürütülen tüm modüller ( org.apache.http olarak com.microsoft.applicationinsights.core.dependencies.httpyeniden adlandırılır) tarafından kabul edilir. Günlük çağrısı Apache kitaplığı tarafından yapıldığından Application Insights bu çağrılar için filtreleme uygulayamaz. DEBUG-level günlüğü önemli miktarda günlük verileri üretir ve canlı üretim örnekleri için önerilmez.

Sonraki adımlar

Java sunucu uygulamam için Application Insights'i ayarladım. Başka ne yapabilirim?

Yardım alın

Üçüncü taraf bilgileri hakkında yasal uyarı

Bu makalede adı geçen üçüncü taraf ürünleri Microsoft'tan bağımsız şirketler tarafından üretilmektedir. Microsoft, bu ürünlerin performansı veya güvenilirliği ile ilgili örtük veya başka türlü hiçbir garanti vermez.

Yardım için bize ulaşın

Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.