Delen via


Problemen met Azure-toepassing Insights in een Java-webproject oplossen

Dit artikel biedt oplossingen voor veelvoorkomende problemen in een Q&A-indeling voor Application Insights Java 2.x.

Voorzichtigheid

Dit document is van toepassing op Application Insights Java 2.x, wat niet meer wordt aanbevolen.

Documentatie voor de nieuwste versie vindt u op Application Insights Java 3.x.

Vragen of problemen met Azure-toepassing Insights in Java? Hier volgen enkele tips.

Buildfouten

Wanneer ik in Eclipse of Intellij Idea de Application Insights SDK toevoeg via Maven of Gradle, krijg ik build- of controlesomvalidatiefouten

Als het afhankelijkheidsversie-element<> een patroon gebruikt dat jokertekens bevat (bijvoorbeeld <version>[2.0,)</version> in Maven of version:'2.+' in Gradle), kunt u in plaats daarvan een specifieke versie opgeven, zoals 2.6.4.

Geen gegevens

Ik heb Application Insights toegevoegd en mijn app uitgevoerd, maar ik heb nog nooit gegevens in de portal gezien

  • Wacht ongeveer een minuut en selecteer vervolgens Vernieuwen. De grafieken worden regelmatig vernieuwd, maar u kunt ook handmatig vernieuwen. Het vernieuwingsinterval is afhankelijk van het tijdsbereik van de grafiek.

  • Zorg ervoor dat u een instrumentatiesleutel hebt gedefinieerd in het ApplicationInsights.xml-bestand (in de map resources in uw project) of een sleutel hebt geconfigureerd als een omgevingsvariabele.

  • Controleer of het XML-bestand geen <DisableTelemetry>true</DisableTelemetry> knooppunt bevat.

  • Open indien nodig TCP-poorten 80 en 443 in uw firewall voor uitgaand verkeer naar dc.services.visualstudio.com. Zie de volledige lijst met firewalluitzondering.

  • Bekijk in het Microsoft Azure-startbord het servicestatusoverzicht. Als er enkele waarschuwingsindicaties zijn, wacht u totdat ze zijn teruggekeerd naar OK en sluit u de application insights-blade en opent u deze opnieuw.

  • Schakel logboekregistratie in door een <SDKLogger-element> toe te voegen onder het hoofdknooppunt in het ApplicationInsights.xml-bestand (in de map resources in uw project). Controleer vervolgens of er vermeldingen zijn voorafgegaan door AI: INFO/WARN/ERROR op verdachte logboeken.

  • Zorg ervoor dat het juiste ApplicationInsights.xml bestand is geladen door de Java SDK. Controleer de uitvoerberichten van de console op de instructie 'Configuratiebestand is gevonden'.

  • Als het configuratiebestand niet wordt gevonden, controleert u de uitvoerberichten om te zien waar het configuratiebestand wordt gezocht. Zorg ervoor dat de ApplicationInsights.xml zich op een van deze zoeklocaties bevindt. Als vuistregel kunt u het configuratiebestand in de buurt van de APPLICATION Insights SDK-JAR's plaatsen. In Tomcat is de map bijvoorbeeld WEB-INF/classes. Tijdens de ontwikkeling kunt u ApplicationInsights.xml in de map resources van uw webproject plaatsen.

  • Controleer de pagina GitHub-problemen op bekende problemen met de SDK.

  • Zorg ervoor dat u dezelfde versie van Application Insights core, web, agent en toevoegprogramma's voor logboekregistratie gebruikt om problemen met versieconflicten te voorkomen.

Opmerking

Dit artikel is onlangs bijgewerkt met de term Azure Monitor-logboeken in plaats van Log Analytics. Logboekgegevens worden nog steeds opgeslagen in een Log Analytics-werkruimte en worden nog steeds verzameld en geanalyseerd door dezelfde Log Analytics-service. De terminologie wordt bijgewerkt om de rol van logboeken in Azure Monitor beter weer te geven. Zie Azure Monitor-terminologiewijzigingen voor meer informatie.

Ik zag vroeger gegevens, maar deze zijn gestopt

  • Hebt u uw maandelijkse quotum aan gegevenspunten bereikt? Open Instellingen>Quotum en prijzen om erachter te komen. Als dat het zo is, kunt u uw abonnement upgraden of betalen voor meer capaciteit. Zie het prijsschema voor meer informatie.

  • Hebt u onlangs een upgrade van uw SDK uitgevoerd? Zorg ervoor dat alleen unieke SDK-jar's aanwezig zijn in de projectmap. Er mogen geen twee verschillende versies van de SDK aanwezig zijn.

  • Kijkt u naar de juiste AI-resource? Zorg ervoor dat u de iKey van uw toepassing koppelt aan de resource waar u telemetrie verwacht. Ze moeten hetzelfde zijn.

Ik zie niet alle gegevens die ik verwacht

  • Open de pagina Gebruik en geschatte kosten en controleer of er steekproeven worden uitgevoerd. (100% overdracht betekent dat er geen steekproeven worden uitgevoerd.) De Application Insights-service kan worden ingesteld op het accepteren van slechts een fractie van de telemetrie die afkomstig is van uw app. Met deze instelling blijft u binnen uw maandelijkse quotum voor telemetrie.

  • Hebt u SDK-steekproeven ingeschakeld? Zo ja, dan worden de gegevens genomen met de snelheid die is opgegeven voor alle toepasselijke typen.

  • Gebruikt u een oudere versie van Java SDK? Vanaf versie 2.0.1 hebben we een mechanisme voor fouttolerantie geïntroduceerd om onregelmatige netwerk- en back-endfouten en gegevenspersistentie op lokale stations af te handelen.

  • Controleer of overmatige telemetrie beperking heeft veroorzaakt. Als u INFO-logboekregistratie inschakelt, ziet u het logboekbericht 'App is beperkt'. Onze huidige limiet is ongeveer 32.000 telemetrie-items per seconde.

Java-agent kan geen afhankelijkheidsgegevens vastleggen

  • Hebt u de Java-agent geconfigureerd?

  • Zorg ervoor dat zowel het JAR-bestand van de Java-agent als het AI-Agent.xml-bestand in dezelfde map zijn geplaatst.

  • Zorg ervoor dat de afhankelijkheid die u automatisch probeert te verzamelen, wordt ondersteund voor automatisch verzamelen. Momenteel ondersteunen we alleen MySQL, Microsoft SQL Server, Oracle DB en Azure Cache voor Redis afhankelijkheidsverzameling.

Geen gebruiksgegevens

Ik zie gegevens over aanvragen en reactietijden, maar geen paginaweergave, browser of gebruikersgegevens

U hebt uw app ingesteld voor het verzenden van telemetrie vanaf de server. De volgende stap is nu het instellen van uw webpagina's voor het verzenden van telemetrie vanuit de webbrowser.

Als uw client een app op een telefoon of ander apparaat is, kunt u van daaruit telemetrie verzenden.

Gebruik dezelfde instrumentatiesleutel om zowel uw client- als servertelemetrie in te stellen. De gegevens worden weergegeven in dezelfde Application Insights-resource en u kunt gebeurtenissen van de client en server correleren.

Telemetrie uitschakelen

Hoe kan ik telemetrieverzameling uitschakelen?

Volg een van deze oplossingen:

  • Verzameling in code uitschakelen:

    TelemetryConfiguration config = TelemetryConfiguration.getActive();
    config.setTrackingIsDisabled(true);
    
  • Werk ApplicationInsights.xml bij (in de map resources in uw project). Voeg het volgende XML-element toe onder het hoofdknooppunt:

    <DisableTelemetry>true</DisableTelemetry>
    

    Als u de XML-methode gebruikt, moet u de toepassing opnieuw starten wanneer u de waarde wijzigt.

Het doel wijzigen

Hoe kan ik wijzigen naar welke Azure-resource mijn project gegevens verzendt?

  • Haal de instrumentatiesleutel van de nieuwe resource op.

  • Als u Application Insights aan uw project hebt toegevoegd met behulp van de Azure Toolkit voor Eclipse, klikt u met de rechtermuisknop op uw webproject, selecteert u Azure>Application Insights configureren en wijzigt u de sleutel.

  • Als u de instrumentatiesleutel hebt geconfigureerd als een omgevingsvariabele, moet u de waarde van de omgevingsvariabele bijwerken met de nieuwe iKey.

  • Anders werkt u de sleutel in ApplicationInsights.xml in de map resources voor uw project bij.

Fouten opsporen in gegevens van de SDK

Hoe kom ik erachter wat de SDK doet?

Voor meer informatie over wat er in de API gebeurt, voegt u het <ELEMENT SDKLogger> toe in het hoofdknooppunt van het ApplicationInsights.xml configuratiebestand.

ApplicationInsights.xml

In het <element SDKLogger> kunt u de logboekregistratie ook instrueren om naar een bestand uit te voeren:

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

Spring Boot starter

Als u SDK-logboekregistratie wilt inschakelen met spring boot-apps met behulp van de Spring Boot-starter van Application Insights, voegt u de volgende regels toe aan het bestand application.properties :

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

U kunt ook afdrukken naar de standaardfoutstroom:

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

Java-agent

Als u logboekregistratie van JVM-agent wilt inschakelen, werkt u het AI-Agent.xml-bestand bij:

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

Java-opdrachtregeleigenschappen

Sinds versie 2.4.0

Voer de volgende opdracht uit om logboekregistratie in te schakelen met behulp van opdrachtregelopties in plaats van configuratiebestanden te wijzigen:

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

Of voer de volgende opdracht uit om af te drukken naar de standaardfoutstroom:

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

Het startscherm van Azure

Ik kijk naar de Azure Portal. Geeft de kaart iets over mijn app?

Nee, het toont de status van Azure-servers over de hele wereld.

Hoe kan ik gegevens over mijn app vinden op het Azure-startbord (startscherm)?

Ervan uitgaande dat u uw app hebt ingesteld voor Application Insights, selecteert u Bladeren in>Application Insights en selecteert u vervolgens de app-resource die u voor uw app hebt gemaakt. Als u in de toekomst sneller wilt komen, kunt u uw app vastmaken aan het startbord.

Intranetservers

Kan ik een server op mijn intranet bewaken?

Ja, mits uw server telemetrie kan verzenden naar de Application Insights-portal via het openbare internet.

Mogelijk moet u enkele uitgaande poorten openen in de firewall van uw server om de SDK toe te staan gegevens naar de portal te verzenden.

Gegevensretentie

Hoe lang worden gegevens bewaard in de portal? Is het veilig?

Zie Gegevensretentie en privacy.

Logboekregistratie voor foutopsporing

Application Insights maakt gebruik van org.apache.http. Deze naamruimte wordt verplaatst binnen application insights-kern-jars onder de naamruimte com.microsoft.applicationinsights.core.dependencies.http. Met deze verplaatsing kan Application Insights scenario's afhandelen waarin verschillende versies van hetzelfde org.apache.http in één codebasis bestaan.

Opmerking

Als u logboekregistratie op -niveau inschakelt DEBUGvoor alle naamruimten in de app, wordt dit uitgevoerd door alle uitgevoerde modules (inclusief org.apache.http de naam gewijzigd in com.microsoft.applicationinsights.core.dependencies.http). Application Insights kan geen filtering toepassen op deze aanroepen omdat de logboekoproep wordt uitgevoerd door de Apache-bibliotheek. DEBUG-level logging produceert een aanzienlijke hoeveelheid logboekgegevens en wordt niet aanbevolen voor live productie-exemplaren.

Volgende stappen

Ik heb Application Insights ingesteld voor mijn Java-server-app. Wat kan ik nog meer doen?

Help opvragen

Disclaimerinformatie van derden

De producten van derden die in dit artikel worden vermeld, worden vervaardigd door bedrijven die onafhankelijk zijn van Microsoft. Microsoft verleent dan ook geen enkele garantie, impliciet noch anderszins, omtrent de prestaties of de betrouwbaarheid van deze producten.

Contacteer ons voor hulp

Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Feedback-community van Azure.