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.4
belirli 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.com
iç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
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?
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.http
yeniden 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.http
yeniden 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.