Java web projesinde Azure Uygulaması lication Insights sorunlarını giderme
Bu makalede, Application Insights Java 2.x için Soru-Cevap biçimindeki yaygın sorunların sorunlarını giderme çözümleri sağlanır.
Dikkat
Bu belge, artık önerilmemiş olan Application Insights Java 2.x için geçerlidir.
En son sürümün belgeleri Application Insights Java 3.x'te bulunabilir.
Java'da Azure Uygulaması lication Insights ile ilgili sorularınız veya sorunlarınız mı var? Aşağıda birkaç ipucu verilmiştir.
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), 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
Yaklaşık bir dakika bekleyin ve yenile'yi seçin. Grafikler kendilerini düzenli aralıklarla yeniler, 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 (projenizdeki kaynaklar klasöründe) kök düğümün altına bir< SDKLogger> öğesi ekleyerek günlüğü açın. Ardından, şüpheli günlükler için ile önceden oluşturulmuş
AI: INFO/WARN/ERROR
girdileri denetleyin.Java SDK'sı tarafından doğru ApplicationInsights.xml dosyasının başarıyla yüklendiğinden emin olun. "Yapılandırma dosyası başarıyla bulundu" deyimi için konsolun çıkış iletilerini 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 yanına yerleştirebilirsiniz. Örneğin, Tomcat'te klasör WEB-INF/classes olabilir. Geliştirme sırasında ApplicationInsights.xml web projenizin kaynaklar 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 yine 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 ulaşmanız mı gerekiyor? Öğ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 düzeni.
Yakın zamanda 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ü mevcut 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. Bunların aynı olması gerekir.
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 Örnekleme 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ındaki verileri 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.
İstemci 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 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 veri gönderdiği Azure kaynağını 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 kaynaklar 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.xml yapı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 aşağıdaki komutu çalıştırarak standart hata akışına yazdırın:
java -Dapplicationinsights.logger.console.level=trace -jar MyApp.jar
Azure başlangıç ekranı
Azure portalına 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'a Gözat'ı>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 genel İnternet üzerinden Application Insights portalına telemetri gönderebilirse.
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
kodun farklı sürümlerinin tek bir kod tabanında bulunduğu senaryoları işlemesini sağlar.
Not
Uygulamadaki tüm ad alanları için -level günlüğünü etkinleştirirsenizDEBUG
, yürütülen tüm modüller (olarak com.microsoft.applicationinsights.core.dependencies.http
yeniden adlandırılır dahil) org.apache.http
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'ın kurulumunu yaptı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.