[JAVA] Sammeln von JVM-Leistungsindikatoren mit Application Insights

Ich möchte die Häufigkeit des Auftretens von GC und die Speichernutzungsrate auf der JVM überprüfen. Sie können es mit jstat usw. erhalten, aber Sie können es auch mit Application Insights mit einer kleinen Modifikation erhalten.

Integrieren Sie Application Insights, um Metriken zu senden

Fügen Sie beispielsweise für Spring Boot [Änderung wie folgt] hinzu (https://github.com/fukasawah/example-hellospringboot/commit/ee121c3e4354c101438ea371e2861bc1c7767710).

Ich habe viel in ApplicationInsights.xml geschrieben, aber es gibt Artikel, die ich in der Vergangenheit geschrieben habe darüber. Wenn Sie sich die Orte ansehen, an denen Sie es überhaupt nicht mögen, sind Java-Apps nicht beliebt. einsam. Wir nehmen so viel wie möglich, auch unnötige. Bitte kommentieren Sie dies gegebenenfalls aus.

Nachdem Sie den Instrumentierungsschlüssel gegeben und nach einer Weile ausgeführt haben, sieht er folgendermaßen aus. Standardmäßig werden alle 60 Sekunden Zähler erfasst.

image.png

Metaspace verwendet, Non Heap verwendet, Heap verwendet gestapelt (Metaspace verwendet und Non Heap verwendet haben Duplikate, daher sollten Sie eines entfernen ...)

Beim Zusammenfassen mehrerer Metriken zu einer Application Insight

Es sollte Fälle geben, in denen zwei oder mehr Einheiten betrieben oder automatisch skaliert werden, und was passiert in diesem Fall?

Es gibt eine Spalte namens "cloud_RoleInstance", die den Hostnamen der Ausführungsumgebung enthält. Wenn Sie es damit teilen, können Sie es für jede Umgebung sehen. Das Folgende ist ein Fall, in dem die Anzahl auf dem Weg auf 2 oder 3 erhöht wurde.

image.png

Machen Sie dasselbe mit Log Analytics

Log Analytics steht hinter Application Insights, sodass Sie es auf die gleiche Weise erhalten können.

//Der verwendete MEM-Heap wird in Abständen von 1 Minute als Liniendiagramm angezeigt.
performanceCounters 
| where name == 'MEM Heap Used'
| summarize avg(value) by cloud_RoleInstance, bin(timestamp, 1m)
| render timechart 

Das Ausführungsergebnis sieht so aus.

image.png

Benachrichtigungseinstellungen

Ich werde es nicht schreiben, weil es ärgerlich ist, aber es sieht aus wie eine Metrik für Application Insights, damit ich es richtig machen kann.

Recommended Posts

Sammeln von JVM-Leistungsindikatoren mit Application Insights
Verfolgen Sie die mit dem Java-Agenten Insights der Anwendung ausgeführte SQL