Azure Monitor Application Insights Profiler for Java
Feljegyzés
A Java Profiler szolgáltatás előzetes verzióban érhető el, a 3.4.0-s verziótól kezdve.
A Java Profiler a következő rendszerekhez biztosít rendszert:
- JDK Flight Recorder (JFR) profilok igény szerinti létrehozása a Java virtuális gépről (JVM).
- JFR-profilok automatikus létrehozása, ha bizonyos triggerfeltételek teljesülnek a JVM-ből, például a cpu vagy a memória túllép egy konfigurált küszöbértéket.
Áttekintés
A Java Profiler a JVM által biztosított JFR profilkészítővel rögzíti a profilkészítési adatokat, lehetővé téve a felhasználók számára, hogy később letöltse a JFR-felvételeket, és elemezze őket a teljesítményproblémák okának azonosításához.
Ezek az adatok igény szerint lesznek összegyűjtve, amikor teljesülnek az eseményindító feltételei. Az elérhető eseményindítók a cpu-használat, a memóriahasználat és a kérés (szolgáltatási szintű szerződés eseményindítói) küszöbértékei. A kérelem eseményindítói figyelik az OpenTelemetria által létrehozott spanokat, és lehetővé teszik a felhasználó számára, hogy szolgáltatásiszint-szerződési (SLA-) követelményeket konfiguráljon az adott időtartam alatt.
Küszöbérték elérésekor a rendszer összegyűjti és feltölti a konfigurált típusú és időtartamú profilt. Ez a profil ezután látható a társított Application Insights Portál felhasználói felületének teljesítménypanelén.
Figyelmeztetés
A JFR-profilozó alapértelmezés szerint végrehajtja a "profile-without-env-data" profilt. A JFR-fájlok a JVM által kibocsátott események sorozatai. A "profile-without-env-data" konfiguráció hasonló a JVM-hez mellékelt "profil" konfigurációhoz, azonban bizonyos események le voltak tiltva, amelyek bizalmas üzembehelyezési információkat tartalmazhatnak, például környezeti változókat, a JVM-nek biztosított argumentumokat és a rendszeren futó folyamatokat.
A már nem elérhető jelzők a következők:
- jdk. JVMInformation
- jdk. InitialSystemProperty
- jdk. OSInformation
- jdk. InitialEnvironmentVariable
- jdk. SystemProcess
Érdemes azonban áttekinteni az összes engedélyezett jelzőt, hogy a profilok ne tartalmazzanak bizalmas adatokat.
Lásd: Profiltartalom konfigurálása egyéni profilkészítő konfiguráció beállításához.
Előfeltételek
JVM Java Flight Recorder (JFR) képességgel
- Java 8 update 262+
- Java 11+
Figyelmeztetés
Az OpenJ9 JVM nem támogatott
Használat
Triggerek
A különböző elérhető eseményindítók részletesebb leírását az Azure-beli éles alkalmazások profilkészítése a .NET-hez készült Application Insights Profilerrel című témakörben találja.
Az ApplicationInsights Java-ügynök figyeli a processzort, a memóriát és a kérések időtartamát, például egy üzleti tranzakciót. Ha túllép egy konfigurált küszöbértéket, egy profil aktiválódik.
Profil most
A Profil most gomb a profilozó felhasználói felületén található (lásd : Application Insights Profiler konfigurálása a .NET-hez). Ha ezt a gombot választja, azonnal profilt kér az Application Insights-példányhoz csatolt összes ügynökben. Az alapértelmezett profilkészítési időtartam két perc. A módosítást felül kell bírálni periodicRecordingDurationSeconds
(lásd : Konfigurációs fájl).
Figyelmeztetés
A profil meghívása mostantól engedélyezi a profilkészítő funkciót, az Application Insights pedig az alapértelmezett CPU- és memória-SLA-eseményindítókat alkalmazza. Amikor az alkalmazás megsérti ezeket az SLA-kat, az Application Insights Java-profilokat gyűjt. Ha később le szeretné tiltani a profilkészítést, ezt a Telepítés menü eseményindító menüjében teheti meg.
CPU
A cpu-küszöbérték a rendszeren elérhető összes mag használatának százalékos aránya.
Például, ha egy nyolc magos gép egyik magja telített lenne, a processzor százalékos aránya 12,5%.
Memory (Memória)
A memória százalékos aránya az aktuális tenured memóriarégió (OldGen) foglaltsága a régió maximális lehetséges méretével szemben.
A kihasználtság kiértékelése a kitartó gyűjtemény végrehajtása után történik. A kitartó régió maximális mérete az a méret, amely akkor lenne, ha a Java virtuális gép (JVM) halom a maximális méretére nőne.
Vegyük például a következő forgatókönyvet:
- A Java-halom legfeljebb 1024 mb-ra nőhet.
- A Tenured Generáció a halom 90%-ára nőhet.
- A maximális megengedett méret 922 mb lenne.
- A küszöbértéket a felhasználói felületen 75%-ra állítottuk be, ezért a küszöbérték 922 mb, 691 mb lenne.
Ebben a forgatókönyvben egy profil a következő körülmények között történik:
- A teljes szemétgyűjtés végrehajtása
- A bérlői régiók foglaltsága 691 mb felett van a gyűjtés után
Kérés
Az SLA-eseményindítók OpenTelemetria-alapúak, és bizonyos feltételek teljesülése esetén profilt kezdeményeznek.
Az egyes triggerkonfigurációk a következőképpen alakulnak ki:
Name
- Az eseményindító egyedi azonosítója.Filter
- Szűri az eseményindítóval kapcsolatos érdeklődési köröket.Aggregation
- Kiszámítja az adott küszöbértéket átlépő kérelmek arányát.Threshold
- Egy minimális érték (ezredmásodpercben), amelynél a kérések megsértését megállapítják.Minimum samples
- Az összesítéshez gyűjtendő minták minimális száma az adatok előállításához. Ez a beállítás megakadályozza a kis mintaméretek kiváltását.Window
- Gördülő időablak (ezredmásodpercben).
Threshold
- Az aggregációs kimenetre alkalmazott küszöbérték (százalék). Ha túllépi ezt az értéket, a rendszer elindít egy profilt.
Például a következő forgatókönyv aktiválna egy profilt, ha: egy adott végpontra (/felhasználóra/.*) irányuló kérések több mint 75%-a több mint 30 ms-ot vesz igénybe egy 60 másodperces ablakban, amikor legalább 100 mintát gyűjtöttek.
Telepítés
Az alábbi lépések végigvezetik a profilkészítési összetevő engedélyezésén az ügynökön, és konfigurálja azokat az erőforráskorlátokat, amelyek feltörése esetén profilt aktiválnak.
Konfigurálja azokat az erőforrásküszöböket, amelyek egy profil gyűjtését okozzák:
Keresse meg az Application Insights-példány Teljesítmény –>Profiler szakaszát.
Eseményindítók kiválasztása
Konfigurálja a szükséges processzor-, memória- vagy kérelem-eseményindítókat (ha engedélyezve van), és válassza az Alkalmaz lehetőséget.
Figyelmeztetés
A Java Profiler nem támogatja a "Mintavételezés" eseményindítót. A konfigurálásnak nincs hatása.
A lépések elvégzése után az ügynök figyeli a folyamat erőforrás-használatát, és aktivál egy profilt a küszöbérték túllépésekor. Amikor egy profil aktiválódik és befejeződött, az az Application Insights-példányból tekinthető meg a Teljesítmény –>Profiler szakaszban. Ezen a képernyőn a profil letölthető, miután letöltötte a JFR-rögzítőfájlt, megnyithatja és elemezheti az Ön által választott eszközben, például az Oracle JDK Mission Control (JMC) segítségével.
Konfiguráció
A Java Profiler aktiválási beállításainak konfigurációja, például a küszöbértékek és a profilkészítési időszakok az Application Insights felhasználói felületén vannak beállítva a Teljesítményprofil-eseményindítók>> alatt, a telepítésben leírtak szerint.
Emellett számos paraméter konfigurálható környezeti változók és a applicationinsights.json
konfigurációs fájl használatával.
Profil tartalmának konfigurálása
Ha egyéni profilkonfigurációt szeretne megadni, módosítsa a memoryTriggeredSettings
fájlt, és cpuTriggeredSettings
adja meg a fájl elérési útját .jfc
a szükséges konfigurációval.
Profilok hozhatók létre/szerkeszthetők a JDK Mission Control (JMC) felhasználói felületén a Window->Flight Recording Template Manager
menü alatt, és az egyes jelölők vezérlése ezen a felhasználói felületen található Edit->Advanced
.
Környezeti változók
APPLICATIONINSIGHTS_PREVIEW_PROFILER_ENABLED
: logikai (alapértelmezett:true
)Engedélyezi/letiltja a profilkészítési funkciót. Alapértelmezés szerint a funkció engedélyezve van az ügynökön belül (a 3.4.9-as ügynök óta). Annak ellenére azonban, hogy ez a funkció engedélyezve van az ügynökön belül, a profilok csak akkor lesznek összegyűjtve, ha engedélyezve van a portálon a telepítésben leírtak szerint.
Konfigurációs fájl
Példakonfiguráció:
{
"preview": {
"profiler": {
"enabled": true,
"cpuTriggeredSettings": "profile-without-env-data",
"memoryTriggeredSettings": "profile-without-env-data",
"manualTriggeredSettings": "profile-without-env-data",
"enableRequestTriggering": true,
"periodicRecordingDurationSeconds": 60
}
}
}
memoryTriggeredSettings
Ezt a konfigurációt akkor használja a rendszer, ha memóriaprofilt kér.
Ez az érték a következő lehet:
profile-without-env-data
(alapértelmezett érték). Az egyes bizalmas eseményeket letiltó profilok részleteiért lásd a Figyelmeztetés szakaszt.profile
.profile.jfc
A JFR-vel szállított konfigurációt használja.- Egy egyéni jfc-konfigurációs fájl elérési útja a fájlrendszeren,
/tmp/myconfig.jfc
például.
cpuTriggeredSettings
Ezt a konfigurációt akkor használja a rendszer, ha processzorprofilt kér.
Ez az érték a következő lehet:
profile-without-env-data
(alapértelmezett érték). Az egyes bizalmas eseményeket letiltó profilok részleteiért lásd a Figyelmeztetés szakaszt.profile
.profile.jfc
A JFR-vel szállított JFC-konfigurációt használja.- Egy egyéni jfc-konfigurációs fájl elérési útja a fájlrendszeren,
/tmp/myconfig.jfc
például.
manualTriggeredSettings
Ezt a konfigurációt akkor használja a rendszer, ha manuális profilt kér.
Ez az érték a következő lehet:
profile-without-env-data
(alapértelmezett érték). Az egyes bizalmas eseményeket letiltó profilok részleteiért lásd a Figyelmeztetés szakaszt.profile
.profile.jfc
A JFR-vel szállított JFC-konfigurációt használja.- Egy egyéni jfc-konfigurációs fájl elérési útja a fájlrendszeren,
/tmp/myconfig.jfc
például.
enableRequestTriggering
Azt, hogy a JFR-profilkészítést a kéréskonfiguráció alapján kell-e aktiválni.
Ez az érték a következő lehet:
true
A profilkészítés akkor aktiválódik, ha a kérelem eseményindító küszöbértéke túllépi a küszöbértéket.false
(alapértelmezett érték). A kéréskonfiguráció nem indítja el a profilkészítést.
periodicRecordingDurationSeconds
Profilkészítési rögzítés időtartama másodpercben, amikor a profilkészítési munkamenet a Profil most gombbal indul el. Az alapértelmezett érték 120
.
Gyakori kérdések
Mi az Az Azure Monitor Application Insights Java-profilkészítés?
A Java Profiler a Java Flight Recorder (JFR) használatával profilozza az alkalmazást egy testreszabott konfiguráció használatával.
Mi az a Java Flight Recorder?
A Java Flight Recorder (JFR) egy futó Java-alkalmazás profilkészítési adatainak gyűjtésére szolgáló eszköz. A JFR integrálva van a Java virtuális gépbe (JVM), és a teljesítményproblémák elhárítására szolgál. További információ a Java SE JFR-futtatókörnyezetről.
Milyen ár- és/vagy licencdíj-következményekkel jár az App Insights Java Profiling engedélyezése?
A Java Profilkészítés az Application Insights ingyenes funkciója. Az Azure Monitor Application Insights díjszabása a betöltési költségeken alapul.
Milyen Java-profilkészítési adatokat gyűjtünk?
A JFR által gyűjtött profilkészítési adatok a következők: metódus- és végrehajtási profilkészítési adatok, szemétgyűjtési adatok és zárolási profilok.
Hogyan használhatom az App Insights Java-profilkészítést és az adatok vizualizációját?
A JFR-felvétel megtekinthető és elemezhető az előnyben részesített eszközzel, például a Java Mission Control (JMC) használatával.
A teljesítménydiagnosztikát és a javaslatokat az App Insights Java-profilkészítés biztosítja?
A "Teljesítménydiagnosztikák és javaslatok" egy új funkció, amely hamarosan elérhető az Application Insights Java Diagnostics szolgáltatásában. Regisztrálhat a funkció előzetes verziójára. A JFR-felvétel megtekinthető a Java Mission Control (JMC) használatával.
Mi a különbség az igény szerinti és az automatikus Java-profilkészítés között az App Insightsban?
Az igény szerinti profilkészítés valós időben történik, míg az automatikus profilkészítés előre konfigurált eseményindítókkal történik.
Az igény szerinti profilkészítési lehetőséghez használja a Profil most lehetőséget. A Profile Now azonnal profilt ad az Application Insights-példányhoz csatolt összes ügynöknek.
Az automatikus profilkészítést egy erőforrás küszöbértékének elérése aktiválja.
Mely Java-profilkészítési eseményindítókat konfigurálhatom?
Az Application Insights Java-ügynök jelenleg támogatja a processzor- és memóriahasználat monitorozását. A cpu-küszöbérték a gép összes elérhető magjának százalékos arányaként van konfigurálva. A memória az aktuális tenured memóriaterület (OldGen) foglaltsága a régió maximális lehetséges méretével szemben.
Milyen előfeltételek szükségesek a Java-profilkészítés engedélyezéséhez?
Tekintse át a cikk tetején található előfeltételeket .
Használhatom a Java-profilkészítést mikroszolgáltatás-alkalmazásokhoz?
Igen, a JFR használatával profilozhat mikroszolgáltatásokat futtató JVM-et.