Problembehandlung bei Azure-Anwendung Insights in einem Java-Webprojekt
Dieser Artikel enthält Lösungen zur Problembehandlung für häufige Probleme im Q&A-Format für Application Insights Java 2.x.
Achtung
Dieses Dokument gilt für Application Insights Java 2.x, das nicht mehr empfohlen wird.
Die Dokumentation für die neueste Version finden Sie unter Application Insights Java 3.x.
Fragen oder Probleme mit Azure-Anwendung Insights in Java? Hier sind einige Tipps.
Buildfehler
Wenn ich in Eclipse oder Intellij Idea das Application Insights SDK über Maven oder Gradle hinzu füge, erhalte ich Build- oder Prüfsummenvalidierungsfehler.
Wenn das Abhängigkeitsversionselement<> ein Muster verwendet, das Wildcardzeichen enthält (z. B<version>[2.0,)</version>
. in Maven oder version:'2.+'
gradle), geben Sie stattdessen eine bestimmte Version an, z2.6.4
. B. .
Keine Daten
Ich habe Application Insights erfolgreich hinzugefügt und meine App ausgeführt, aber ich habe noch nie Daten im Portal gesehen.
Warten Sie etwa eine Minute, und wählen Sie dann Aktualisieren aus. Die Diagramme aktualisieren sich in regelmäßigen Abständen selbst, sie können aber auch manuell aktualisiert werden. Das Aktualisierungsintervall hängt vom Zeitbereich des Diagramms ab.
Stellen Sie sicher, dass Sie einen Instrumentierungsschlüssel in der ApplicationInsights.xml-Datei (im Ressourcenordner ihres Projekts) definiert oder als Umgebungsvariable konfiguriert haben.
Stellen Sie sicher, dass in der XML-Datei kein
<DisableTelemetry>true</DisableTelemetry>
Knoten vorhanden ist.Öffnen Sie bei Bedarf die TCP-Ports 80 und 443 in Ihrer Firewall für ausgehenden Datenverkehr an
dc.services.visualstudio.com
. Sehen Sie sich die vollständige Liste der Firewallausnahmen an.Sehen Sie sich im Microsoft Azure-Startboard die Karte des Diensts status an. Wenn einige Warnungsanzeigen vorhanden sind, warten Sie, bis sie zu OK zurückgekehrt sind, und schließen Sie dann Das Application Insights-Anwendungsblatt, und öffnen Sie es erneut.
Aktivieren Sie die Protokollierung , indem Sie ein <SDKLogger-Element> unter dem Stammknoten in der ApplicationInsights.xml-Datei (im Ordner resources in Ihrem Projekt) hinzufügen. Suchen Sie dann nach Einträgen, denen
AI: INFO/WARN/ERROR
verdächtige Protokolle vorangestellt sind.Stellen Sie sicher, dass die richtige ApplicationInsights.xml Datei erfolgreich vom Java SDK geladen wurde. Überprüfen Sie die Ausgabemeldungen der Konsole auf die Anweisung "Konfigurationsdatei wurde erfolgreich gefunden".
Wenn die Konfigurationsdatei nicht gefunden wird, überprüfen Sie die Ausgabemeldungen, um festzustellen, wo die Konfigurationsdatei gesucht wird. Stellen Sie sicher, dass sich die ApplicationInsights.xml an einem dieser Suchspeicherorte befindet. Als Faustregel gilt, dass Sie die Konfigurationsdatei in der Nähe der Application Insights SDK-JARs platzieren können. In Tomcat lautet der Ordner beispielsweise WEB-INF/classes. Während der Entwicklung können Sie ApplicationInsights.xml im Ressourcenordner Ihres Webprojekts platzieren.
Auf der GitHub-Seite "Probleme" finden Sie bekannte Probleme mit dem SDK.
Stellen Sie sicher, dass Sie die gleiche Version der Application Insights-Kern-, Web-, Agent- und Protokollierungs-Appender verwenden, um Versionskonflikte zu vermeiden.
Hinweis
Dieser Artikel wurde kürzlich aktualisiert, um den Begriff Azure Monitor-Protokolle anstelle von Log Analytics zu verwenden. Protokolldaten werden weiterhin in einem Log Analytics-Arbeitsbereich gespeichert und weiterhin vom gleichen Log Analytics-Dienst gesammelt und analysiert. Wir aktualisieren die Terminologie, um die Rolle von Protokollen in Azure Monitor besser widerzuspiegeln. Weitere Informationen finden Sie unter Änderungen der Azure Monitor-Terminologie .
Ich habe früher Daten angezeigt, aber sie wurden beendet.
Haben Sie Ihr monatliches Kontingent an Datenpunkten erreicht? Öffnen Sie Einstellungen>Kontingent und Preise , um dies herauszufinden. Wenn ja, können Sie Ihren Plan aktualisieren oder für mehr Kapazität bezahlen. Weitere Informationen finden Sie unter Preisschema.
Haben Sie ihr SDK kürzlich aktualisiert? Stellen Sie sicher, dass nur unique SDK-JAR-Dateien im Projektverzeichnis vorhanden sind. Es sollten nicht zwei verschiedene Versionen des SDK vorhanden sein.
Suchen Sie nach der richtigen KI-Ressource? Stellen Sie sicher, dass Sie den iKey Ihrer Anwendung mit der Ressource abgleichen, in der Sie Telemetriedaten erwarten. Sie sollten identisch sein.
Ich sehe nicht alle erwarteten Daten
Öffnen Sie die Seite Nutzung und geschätzte Kosten , und überprüfen Sie, ob die Stichprobenentnahme ausgeführt wird. (100 % Übertragung bedeutet, dass die Stichprobenentnahme nicht in Betrieb ist.) Der Application Insights-Dienst kann so festgelegt werden, dass nur ein Bruchteil der Telemetriedaten akzeptiert wird, die von Ihrer App empfangen werden. Diese Einstellung hilft Ihnen, ihr monatliches Telemetriekontingent einzuhalten.
Haben Sie die SDK-Stichprobenerstellung aktiviert? Wenn dies der Fall ist, werden die Daten mit der rate erfasst, die für alle anwendbaren Typen angegeben ist.
Führen Sie eine ältere Version des Java SDK aus? Ab Version 2.0.1 haben wir einen Fehlertoleranzmechanismus eingeführt, um zeitweilige Netzwerk- und Back-End-Ausfälle sowie Datenpersistenz auf lokalen Laufwerken zu behandeln.
Überprüfen Sie, ob übermäßige Telemetrie zu einer Drosselung geführt hat. Wenn Sie die INFO-Protokollierung aktivieren, wird die Protokollmeldung "App ist gedrosselt" angezeigt. Unser aktueller Grenzwert beträgt etwa 32.000 Telemetrieelemente pro Sekunde.
Der Java-Agent kann keine Abhängigkeitsdaten erfassen
Haben Sie den Java-Agent konfiguriert?
Stellen Sie sicher, dass sich sowohl die JAR-Datei des Java-Agents als auch die AI-Agent.xml-Datei im selben Ordner befinden.
Stellen Sie sicher, dass die Abhängigkeit, die Sie automatisch sammeln möchten, für die automatische Sammlung unterstützt wird. Derzeit unterstützen wir nur MySQL, Microsoft SQL Server, Oracle DB und Azure Cache for Redis Abhängigkeitssammlung.
Keine Nutzungsdaten
Ich sehe Daten zu Anforderungen und Antwortzeiten, aber keine Seitenansicht, Browser- oder Benutzerdaten
Sie haben Ihre App erfolgreich eingerichtet, um Telemetriedaten vom Server zu senden. Als Nächstes richten Sie Ihre Webseiten so ein, dass Telemetriedaten aus dem Webbrowser gesendet werden.
Wenn Es sich bei Ihrem Client um eine App auf einem Smartphone oder einem anderen Gerät handelt, können Sie von dort aus Telemetriedaten senden.
Verwenden Sie denselben Instrumentierungsschlüssel, um die Client- und Servertelemetrie einzurichten. Die Daten werden in derselben Application Insights-Ressource angezeigt, und Sie können Ereignisse vom Client und Server korrelieren.
Deaktivieren der Telemetrie
Wie kann ich die Telemetrieerfassung deaktivieren?
Befolgen Sie eine der folgenden Lösungen:
Deaktivieren der Sammlung im Code:
TelemetryConfiguration config = TelemetryConfiguration.getActive(); config.setTrackingIsDisabled(true);
Aktualisieren SieApplicationInsights.xml (im Ressourcenordner ihres Projekts). Fügen Sie das folgende XML-Element unter dem Stammknoten hinzu:
<DisableTelemetry>true</DisableTelemetry>
Wenn Sie die XML-Methode verwenden, müssen Sie die Anwendung neu starten, wenn Sie den Wert ändern.
Ändern des Ziels
Wie kann ich ändern, an welche Azure-Ressource mein Projekt Daten sendet?
Rufen Sie den Instrumentierungsschlüssel der neuen Ressource ab.
Wenn Sie Application Insights mithilfe des Azure-Toolkits für Eclipse zu Ihrem Projekt hinzugefügt haben, klicken Sie mit der rechten Maustaste auf Ihr Webprojekt, wählen Sie Azure>Application Insights konfigurieren aus, und ändern Sie dann den Schlüssel.
Wenn Sie den Instrumentierungsschlüssel als Umgebungsvariable konfiguriert haben, müssen Sie den Wert der Umgebungsvariablen mit dem neuen iKey aktualisieren.
Aktualisieren Sie andernfalls den Schlüssel in ApplicationInsights.xml im Ressourcenordner für Ihr Projekt.
Debuggen von Daten aus dem SDK
Wie kann ich herausfinden, was das SDK tut?
Um weitere Informationen zu den Vorgängen in der API zu erhalten, fügen Sie das <SDKLogger-Element> innerhalb des Stammknotens der ApplicationInsights.xml Konfigurationsdatei hinzu.
ApplicationInsights.xml
<Im SDKLogger-Element> können Sie die Protokollierung auch anweisen, in eine Datei auszugeben:
<SDKLogger type="FILE"><!-- or "CONSOLE" to print to stderr -->
<Level>TRACE</Level>
<UniquePrefix>AI</UniquePrefix>
<BaseFolderPath>C:/agent/AISDK</BaseFolderPath>
</SDKLogger>
Spring Boot Starter
Um die SDK-Protokollierung mit Spring Boot-Apps mithilfe von Application Insights Spring Boot Starter zu aktivieren, fügen Sie der Datei application.properties die folgenden Zeilen hinzu:
azure.application-insights.logger.type=file
azure.application-insights.logger.base-folder-path=C:/agent/AISDK
azure.application-insights.logger.level=trace
Alternativ können Sie im Standardfehlerstream drucken:
azure.application-insights.logger.type=console
azure.application-insights.logger.level=trace
Java-Agent
Aktualisieren Sie die AI-Agent.xml-Datei, um die Protokollierung des JVM-Agents zu aktivieren:
<AgentLogger type="FILE"><!-- or "CONSOLE" to print to stderr -->
<Level>TRACE</Level>
<UniquePrefix>AI</UniquePrefix>
<BaseFolderPath>C:/agent/AIAGENT</BaseFolderPath>
</AgentLogger>
Java-Befehlszeileneigenschaften
Seit Version 2.4.0
Um die Protokollierung mithilfe von Befehlszeilenoptionen zu aktivieren, anstatt Konfigurationsdateien zu ändern, führen Sie den folgenden Befehl aus:
java -Dapplicationinsights.logger.file.level=trace \
-Dapplicationinsights.logger.file.uniquePrefix=AI \
-Dapplicationinsights.logger.baseFolderPath="C:/my/log/dir" \
-jar MyApp.jar
Oder führen Sie den folgenden Befehl aus, um im Standardfehlerstream zu drucken:
java -Dapplicationinsights.logger.console.level=trace -jar MyApp.jar
Azure-Startbildschirm
Ich schaue mir die Azure-Portal an. Sagt die Karte etwas über meine App?
Nein, es zeigt die Integrität von Azure-Servern auf der ganzen Welt an.
Gewusst wie Daten zu meiner App über die Azure-Startplatine (Startbildschirm) finden?
Wenn Sie Ihre App für Application Insights eingerichtet haben, wählen SieApplication Insightsdurchsuchen> und dann die App-Ressource aus, die Sie für Ihre App erstellt haben. Um in Zukunft schneller dorthin zu gelangen, heften Sie Ihre App an das Startboard an.
Intranetserver
Kann ich einen Server in meinem Intranet überwachen?
Ja, vorausgesetzt, Ihr Server kann Telemetriedaten über das öffentliche Internet an das Application Insights-Portal senden.
Möglicherweise müssen Sie einige ausgehende Ports in der Firewall Ihres Servers öffnen , damit das SDK Daten an das Portal senden kann.
Datenaufbewahrung
Wie lange werden Daten im Portal aufbewahrt? Ist es sicher?
Weitere Informationen finden Sie unter Datenaufbewahrung und Datenschutz.
Debugprotokollierung
Application Insights verwendet org.apache.http
. Dieser Namespace wird in Application Insights-Kern-JAR-Dateien unter dem Namespace com.microsoft.applicationinsights.core.dependencies.http
verschoben. Durch diese Verlagerung kann Application Insights Szenarien behandeln, in denen unterschiedliche Versionen derselben org.apache.http
in einer Codebasis vorhanden sind.
Hinweis
Wenn Sie die Protokollierung auf -Ebene für alle Namespaces in der App aktivieren DEBUG
, wird sie von allen ausgeführten Modulen berücksichtigt (einschließlich org.apache.http
der Umbenennung in com.microsoft.applicationinsights.core.dependencies.http
). Application Insights kann keine Filterung für diese Aufrufe anwenden, da der Protokollaufruf von der Apache-Bibliothek erfolgt.
DEBUG
Die Protokollierung auf -Ebene erzeugt eine beträchtliche Menge an Protokolldaten und wird für Liveproduktionsinstanzen nicht empfohlen.
Nächste Schritte
Ich habe Application Insights für meine Java-Server-App eingerichtet. Was kann ich noch tun?
Anfordern von Hilfe
Informationen zum Haftungsausschluss von Drittanbietern
Die in diesem Artikel genannten Drittanbieterprodukte stammen von Herstellern, die von Microsoft unabhängig sind. Microsoft gewährt keine implizite oder sonstige Garantie in Bezug auf die Leistung oder Zuverlässigkeit dieser Produkte.
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.