Megosztás a következőn keresztül:


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.

Képernyőkép a kérelem-eseményindító mintájáról

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:

  1. Keresse meg az Application Insights-példány Teljesítmény –>Profiler szakaszát.

    Képernyőkép a teljesítménypanel megnyitására szolgáló hivatkozásról.Képernyőkép a Profilozó gombról a Teljesítmény panelen.

  2. Eseményindítók kiválasztása

  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.

    Képernyőkép az eseményindító beállításairól.

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.

Képernyőkép a profilkészítő lap funkcióiról és beállításairól.

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