Java Profiler az Azure Monitor-alkalmazáshoz Elemzések

Feljegyzés

A Java Profiler szolgáltatás előzetes verzióban érhető el, a 3.4.0-s verziótól kezdve.

Az alkalmazás Elemzések 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

Az alkalmazás Elemzések Java-profilozó a JVM által biztosított JFR-profilozót használja a profilkészítési adatok rögzítéséhez, lehetővé téve a felhasználók számára, hogy később letöltik a JFR-felvételeket, és elemezzék ő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 ekkor megjelenik a társított alkalmazás Elemzések 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 a profilkészítő áttekintésében találja.

Az alkalmazás Elemzések 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 a profilkészítő beállításait). Ha bejelöli ezt a gombot, azonnal profilt kér az alkalmazás Elemzések-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, és az alkalmazás Elemzések az alapértelmezett cpu- és memória SLA-eseményindítókat alkalmazza. Amikor az alkalmazás megsérti ezeket az SLA-kat, az alkalmazás Elemzések Java-profilokat fog gyűjteni. 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.

Screenshot of request trigger sample

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.

  1. Konfigurálja azokat az erőforrásküszöböket, amelyek egy profil gyűjtését okozzák:

    1. Keresse meg az alkalmazás Elemzések példány Teljesítmény –> Profiler szakaszát. Screenshot of the link to open performance pane.Screenshot of the Profiler button from the Performance pane.

    2. Válassza az "Eseményindítók" lehetőséget

    3. 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. Screenshot of trigger settings

Figyelmeztetés

A Java-profilkészítő 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ődik, az alkalmazás Elemzések 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.

Screenshot of profiler page features and settings.

Konfiguráció

A profilkészítő aktiváló 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 alkalmazáson belül vannak beállítva Elemzések felhasználói felületen, a Teljesítmény, Profiler, Triggerek felhasználói felülete 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 memoryTriggeredSettingsfá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.jfcpé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.jfcpé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.jfcpé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.

periodicRecordingDurationSecondsProfilké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-alkalmazás Elemzések Java-profilkészítés?

Az Azure Monitor-alkalmazás Elemzések Java-profilozó 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 Standard kiadás JFR-futtatókörnyezetről.

Milyen ár- és/vagy licencdíj-következményekkel jár az alkalmazás Elemzések Java-profilkészítés engedélyezése?

A Java Profiling egy ingyenes funkció az Alkalmazás Elemzések. Az Azure Monitor-alkalmazás Elemzések 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 Elemzések Java-profilkészítést, és hogyan jeleníthetem meg az adatokat?

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 Alkalmazás Elemzések Java-profilkészítés biztosítja?

A "Teljesítménydiagnosztikák és javaslatok" egy új funkció, amely hamarosan elérhető, amint az alkalmazás Elemzések Java Diagnostics. 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 Alkalmazás Elemzések?

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 Profil most azonnal profilt ad az alkalmazás Elemzések-példányhoz csatolt összes ügynöknek.

Az automatikus profilkészítés egy erőforrás küszöbértékének megsértését váltja ki.

Mely Java-profilkészítési eseményindítókat konfigurálhatom?

Az alkalmazás Elemzések 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.