Delen via


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

Dit artikel bevat oplossingen voor het oplossen van veelvoorkomende problemen in een Q&A-indeling voor Application Insights Java 2.x.

Let op

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

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

Vragen over 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 checksumvalidatiefouten

Als het element van de afhankelijkheidsversie <>een patroon gebruikt dat jokertekens bevat (bijvoorbeeld <version>[2.0,)</version> in Maven of version:'2.+' gradle), probeert u in plaats daarvan een specifieke versie op te geven, zoals .2.6.4

Geen gegevens

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

  • Wacht ongeveer een minuut en selecteer Vernieuwen. De grafieken worden periodiek 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 dat u er een 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. Bekijk de volledige lijst met firewall-uitzonderingen.

  • Bekijk op het startbord van Microsoft Azure de statuskaart van de service. Als er een aantal waarschuwingsindicaties zijn, wacht u totdat deze zijn teruggekomen naar OK en sluit u de Application Insights-toepassingsblade 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 op vermeldingen met AI: INFO/WARN/ERROR het voorvoegteken voor 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 naar 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 plaatsen in de map resources van uw webproject.

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

  • Zorg ervoor dat u dezelfde versie van Application Insights-kern-, web-, agent- en logboekregistratie toevoegers gebruikt om problemen met versieconflicten te voorkomen.

Notitie

Dit artikel is onlangs bijgewerkt om de term Azure Monitor-logboeken te gebruiken 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. We werken de terminologie bij om de rol van logboeken in Azure Monitor beter weer te geven. Zie Wijzigingen in Azure Monitor-terminologie voor meer informatie.

Ik zag vroeger gegevens, maar het is gestopt

  • Hebt u het maandelijkse quotum voor gegevenspunten bereikt? Open Instellingenquotum>en prijzen om erachter te komen. Zo ja, dan kunt u uw abonnement upgraden of betalen voor meer capaciteit. Zie het prijsschema voor meer informatie.

  • Hebt u onlangs uw SDK bijgewerkt? Zorg ervoor dat alleen unieke SDK-JAR's aanwezig zijn in de projectmap. Er mogen niet twee verschillende versies van de SDK aanwezig zijn.

  • Bekijkt u de juiste AI-resource? Zorg ervoor dat u de iKey van uw toepassing koppelt aan de resource waar u telemetrie verwacht. Deze moeten dezelfde zijn.

Ik zie niet alle gegevens die ik verwacht

  • Open de pagina Gebruik en geschatte kosten en controleer of steekproeven worden uitgevoerd. (100% transmissie betekent dat steekproeven niet in gebruik zijn.) De Application Insights-service kan worden ingesteld om slechts een fractie van de telemetrie te accepteren die afkomstig is van uw app. Met deze instelling blijft u binnen uw maandelijkse quotum voor telemetrie.

  • Is SDK-sampling ingeschakeld? Zo ja, dan worden gegevens gesampleerd met de snelheid die is opgegeven voor alle toepasselijke typen.

  • Voert u een oudere versie van Java SDK uit? Vanaf versie 2.0.1 hebben we een fouttolerantiemechanisme geïntroduceerd voor het afhandelen van onregelmatige netwerk- en back-endfouten, evenals gegevenspersistentie op lokale stations.

  • 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 worden geplaatst.

  • Zorg ervoor dat de afhankelijkheid die u probeert automatisch te verzamelen, wordt ondersteund voor automatische verzameling. 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 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 ook 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 uitschakelen in code:

    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 hebt toegevoegd aan uw project 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.

  • Werk anders de sleutel in ApplicationInsights.xml bij in de map resources voor uw project.

Fouten opsporen in gegevens uit de SDK

Hoe kom ik erachter wat de SDK doet?

Voor meer informatie over wat er in de API gebeurt, voegt u het SDKLogger-element> 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 met Spring Boot-apps wilt inschakelen met 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

Werk het AI-Agent.xml-bestand bij om logboekregistratie van JVM-agents in te schakelen:

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

Eigenschappen van java-opdrachtregel

Sinds versie 2.4.0

Als u logboekregistratie wilt inschakelen met opdrachtregelopties in plaats van configuratiebestanden te wijzigen, voert u de volgende opdracht uit:

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

U kunt ook de volgende opdracht uitvoeren om af te drukken op de standaardfoutstroom:

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

Het startscherm van Azure

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

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

Hoe kan ik gegevens over mijn app zoeken via het Azure-startscherm (startscherm)?

Ervan uitgaande dat u uw app voor Application Insights hebt ingesteld, selecteert u Bladeren in>Application Insights en selecteert u vervolgens de app-resource die u voor uw app hebt gemaakt. Als u er in de toekomst sneller wilt komen, moet 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 in de firewall van uw server openen 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.

Fouten opsporen in logboekregistratie

Application Insights maakt gebruik van org.apache.http. Deze naamruimte wordt verplaatst binnen Application Insights-kern-JAR's onder de naamruimte com.microsoft.applicationinsights.core.dependencies.http. Met deze herlocatie kan Application Insights scenario's verwerken waarbij verschillende versies van hetzelfde org.apache.http bestaan in één codebasis.

Notitie

Als u DEBUGlogboekregistratie op niveau inschakelt voor alle naamruimten in de app, wordt dit gehonoreerd door alle uitgevoerde modules (inclusief org.apache.http hernoemd als com.microsoft.applicationinsights.core.dependencies.http). Application Insights kan geen filter toepassen op deze aanroepen omdat de logboekoproep wordt uitgevoerd door de Apache-bibliotheek. DEBUGLogboekregistratie op niveau 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?

Hulp vragen

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 Azure-feedbackcommunity.