Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Funkce Java Profiler je ve verzi Preview počínaje verzí 3.4.0.
Java Profiler poskytuje systém pro:
- Generování profilů JDK Flight Recorder (JFR) na vyžádání z prostředí Java Virtual Machine (JVM).
- Automatické generování profilů JFR při splnění určitých podmínek triggeru z prostředí JVM, jako je například procesor nebo paměť, které porušují nakonfigurovanou prahovou hodnotu.
Přehled
Java Profiler používá profiler JFR poskytovaný JVM k zaznamenávání dat profilace, což uživatelům umožňuje stahovat nahrávky JFR později a analyzovat je k identifikaci příčiny problémů s výkonem.
Tato data se shromažďují na vyžádání, když jsou splněny podmínky triggeru. Dostupné triggery jsou prahové hodnoty oproti využití procesoru, spotřebě paměti a žádosti (triggery smlouvy o úrovni služeb). Triggery požadavků monitorují rozsahy generované OpenTelemetry a umožňují uživateli konfigurovat požadavky na smlouvu o úrovni služeb (SLA) po dobu trvání těchto rozsahů.
Po dosažení prahové hodnoty se shromáždí a nahraje profil nakonfigurovaného typu a doby trvání. Tento profil se pak zobrazí v podokně výkonu přidruženého uživatelského rozhraní portálu Application Insights.
Upozorňující
Profiler JFR ve výchozím nastavení spustí profil profile profile-without-env-data. Soubor JFR je řada událostí vygenerovaných prostředím JVM. Konfigurace profile-without-env-data je podobná konfiguraci profilu, která se dodává s prostředím JVM, ale má zakázané události, které mají potenciál obsahovat citlivé informace o nasazení, jako jsou proměnné prostředí, argumenty poskytnuté prostředím JVM a procesy spuštěné v systému.
Příznaky, které už nejsou k dispozici, jsou:
- jdk. JVMInformation
- jdk. InitialSystemProperty
- jdk. OSInformation
- jdk. InitialEnvironmentVariable
- jdk. SystemProcess
Měli byste ale zkontrolovat všechny povolené příznaky, abyste měli jistotu, že profily neobsahují citlivá data.
Viz Konfigurace obsahu profilu při nastavení vlastní konfigurace profileru.
Požadavky
JVM s funkcí Java Flight Recorder (JFR)
- Aktualizace Javy 8 262 nebo novější
- Java 11 a novější
Upozorňující
OpenJ9 JVM se nepodporuje.
Využití
Aktivační události
Podrobnější popis různých dostupných triggerů najdete v tématu Profilování produkčních aplikací v Azure pomocí Profileru Application Insights pro .NET.
Agent Java ApplicationInsights monitoruje dobu trvání procesoru, paměti a požadavku, jako je například obchodní transakce. Pokud dojde k porušení nakonfigurované prahové hodnoty, aktivuje se profil.
Profil
Tlačítko Profil je teď umístěné v uživatelském rozhraní profileru (viz Konfigurace profileru Application Insights pro .NET). Výběrem tohoto tlačítka okamžitě požádáte o profil ve všech agentech připojených k instanci Application Insights. Výchozí doba profilace je dvě minuty. Můžete ho změnit přepsáním periodicRecordingDurationSeconds (viz Konfigurační soubor).
Upozorňující
Vyvolání profilu teď povolí funkci profileru a Application Insights použije výchozí aktivační události SLA procesoru a paměti. Když vaše aplikace tyto smlouvy SLA překročí, Application Insights shromáždí profily Java. Pokud chcete profilaci zakázat později, můžete to udělat v nabídce triggeru zobrazenou v části Instalace.
CPU
Prahová hodnota procesoru je procento využití všech dostupných jader v systému.
Pokud by například jedno jádro osmijádrový počítač saturovalo procento procesoru, považuje se za 12,5 %.
Memory (Paměť)
Procento paměti je aktuální obsazená oblast paměti Tenured (OldGen) s maximální možnou velikostí oblasti.
Obsazenost se vyhodnocuje po provedení tenurované kolekce. Maximální velikost tenantované oblasti je velikost, která by byla v případě, že halda virtuálního počítače Java (JVM) vzrostla na maximální velikost.
Například použijte následující scénář:
- Halda Javy se může zvětšit na maximálně 1 024 mb.
- Tenured Generation může růst až na 90 % haldy.
- Maximální možná velikost tenanta by byla 922 mb.
- Prahová hodnota byla nastavena prostřednictvím uživatelského rozhraní na 75 %, proto by vaše prahová hodnota byla 75 % z 922 mb, 691 mb.
V tomto scénáři dojde k profilu za následujících okolností:
- Spustí se úplné uvolňování paměti.
- Obsazenost v oblasti Tenured je vyšší než 691 mb po sběru.
Žádost
Triggery SLA jsou založené na OpenTelemetry a iniciují profil, pokud jsou splněna určitá kritéria.
Každá konfigurace jednotlivých aktivačních událostí se vytvoří takto:
-
Name– Jedinečný identifikátor aktivační události. -
Filter– Filtruje požadavky, které jsou pro aktivační událost zajímavé. -
Aggregation- Vypočítá poměr požadavků, které překročily danou prahovou hodnotu.-
Threshold- Minimální hodnota (v milisekundách), při které se zjistí porušení požadavků. -
Minimum samples- Minimální počet vzorků, které musí být shromážděny pro agregaci pro výrobu dat, je toto nastavení zabránit aktivaci malých velikostí vzorků. -
Window- Klouzavé časové období (v milisekundách).
-
-
Threshold- Prahová hodnota (procento) použitá na výstup agregace. Pokud je tato hodnota překročena, zahájí se profil.
Například následující scénář by aktivoval profil, pokud: více než 75 % požadavků na konkrétní koncový bod (/users/.*) trvá déle než 30 ms v 60sekundovém okně, když bylo shromážděno alespoň 100 vzorků.
Instalace
Následující kroky vás provedou povolením součásti profilace v agentu a konfigurací limitů prostředků, které v případě porušení zabezpečení aktivují profil.
Nakonfigurujte prahové hodnoty prostředků, které způsobují shromažďování profilu:
Upozorňující
Tlačítko Trasování profileru v pravém dolním rohu není podporováno pro Javu.
Výběr aktivačních událostí
Nakonfigurujte požadované aktivační události procesoru, paměti nebo požadavku (pokud jsou povolené) a vyberte Použít.
Upozorňující
Java Profiler nepodporuje trigger vzorkování. Konfigurace tohoto nastavení nebude mít žádný vliv.
Po dokončení těchto kroků agent bude monitorovat využití prostředků vašeho procesu a po překročení prahové hodnoty aktivovat profil. Po aktivaci a dokončení profilu je možné ho zobrazit z instance Application Insights v části Performance ->Profiler . Z této obrazovky si můžete profil stáhnout, jakmile si stáhnete soubor záznamu JFR, můžete ho otevřít a analyzovat v nástroji podle vašeho výběru, například Oracle JDK Mission Control (JMC).
Konfigurace
Konfigurace nastavení triggeru profileru Java, jako jsou prahové hodnoty a období profilace, jsou nastavené v uživatelském rozhraní Application Insights v části >, jak je popsáno v instalaci.
Kromě toho je možné nakonfigurovat mnoho parametrů pomocí proměnných prostředí a konfiguračního applicationinsights.json souboru.
Konfigurace obsahu profilu
Pokud chcete zadat vlastní konfiguraci profilu, upravte memoryTriggeredSettingsa cpuTriggeredSettings zadejte cestu k .jfc souboru s požadovanou konfigurací.
Profily lze generovat nebo upravovat v uživatelském rozhraní JDK Mission Control (JMC) v Window->Flight Recording Template Manager nabídce a ovládání jednotlivých příznaků se nachází uvnitř Edit->Advanced tohoto uživatelského rozhraní.
Proměnné prostředí
APPLICATIONINSIGHTS_PREVIEW_PROFILER_ENABLED: logická hodnota (výchozí:true)Povolí nebo zakáže funkci profilace. Ve výchozím nastavení je funkce povolená v rámci agenta (od agenta 3.4.9). I když je ale tato funkce povolená v rámci agenta, profily se neshromáždí, pokud nejsou povolené na portálu, jak je popsáno v instalaci.
Konfigurační soubor
Příklad konfigurace:
{
"preview": {
"profiler": {
"enabled": true,
"cpuTriggeredSettings": "profile-without-env-data",
"memoryTriggeredSettings": "profile-without-env-data",
"manualTriggeredSettings": "profile-without-env-data",
"enableRequestTriggering": true,
"periodicRecordingDurationSeconds": 60
}
}
}
memoryTriggeredSettings Tato konfigurace se používá, pokud je požadován profil paměti.
Tato hodnota může být jedna z těchto hodnot:
-
profile-without-env-data(výchozí hodnota). Profil s určitými citlivými událostmi je zakázaný. Podrobnosti najdete v části Upozornění. -
profile.profile.jfcPoužívá konfiguraci, která se dodává s JFR. - Cesta k vlastnímu konfiguračnímu souboru jfc v systému souborů,
/tmp/myconfig.jfcnapříklad .
cpuTriggeredSettings Tato konfigurace se používá, pokud je požadován profil procesoru.
Tato hodnota může být jedna z těchto hodnot:
-
profile-without-env-data(výchozí hodnota). Profil s určitými citlivými událostmi je zakázaný. Podrobnosti najdete v části Upozornění. -
profile.profile.jfcPoužívá konfiguraci jfc, která se dodává s JFR. - Cesta k vlastnímu konfiguračnímu souboru jfc v systému souborů,
/tmp/myconfig.jfcnapříklad .
manualTriggeredSettings Tato konfigurace se používá, pokud je požadován ruční profil.
Tato hodnota může být jedna z těchto hodnot:
-
profile-without-env-data(výchozí hodnota). Profil s určitými citlivými událostmi je zakázaný. Podrobnosti najdete v části Upozornění. -
profile.profile.jfcPoužívá konfiguraci jfc, která se dodává s JFR. - Cesta k vlastnímu konfiguračnímu souboru jfc v systému souborů,
/tmp/myconfig.jfcnapříklad .
enableRequestTriggering Určuje, jestli se profilace JFR má aktivovat na základě konfigurace požadavku.
Tato hodnota může být jedna z těchto hodnot:
-
trueProfilace se aktivuje, pokud dojde k porušení prahové hodnoty triggeru požadavku. -
false(výchozí hodnota). Konfigurace požadavku neaktivuje profilaci.
periodicRecordingDurationSeconds Doba trvání záznamu profilace v sekundách, kdy se relace profilace spustí pomocí tlačítka Profilovat . Výchozí hodnota je 120.
Další kroky
- Chcete-li si prohlédnout nejčastější dotazy (FAQ), podívejte se na Java Profiler FAQ.