Konfigurációs beállítások: Azure Monitor Application Insights for Java
Ez a cikk bemutatja, hogyan konfigurálhatja az Azure Monitor Application Insightst Java-hoz.
További információ: Bevezetés az OpenTelemetria használatába, amely mintaalkalmazásokat is tartalmaz.
Kapcsolati sztring és szerepkör neve
A kapcsolati sztring és a szerepkör neve az első lépésekhez szükséges leggyakoribb beállítások:
{
"connectionString": "...",
"role": {
"name": "my cloud role name"
}
}
Kapcsolati sztring szükséges. A szerepkör neve mindig fontos, amikor különböző alkalmazásokból küld adatokat ugyanarra az Application Insights-erőforrásra.
További információt és konfigurációs beállításokat a következő szakaszokban talál.
JSON-konfiguráció beállítása
Alapértelmezett konfiguráció
Alapértelmezés szerint az Application Insights Java 3 elvárja, hogy a konfigurációs fájl neve applicationinsights.json legyen, és ugyanabban a könyvtárban található, mint applicationinsights-agent-3.7.0.jar.
Alternatív konfigurációk
Egyéni konfigurációs fájl
Megadhatja az egyéni konfigurációs fájlt a
- a APPLICATIONINSIGHTS_CONFIGURATION_FILE környezeti változót, vagy
- az applicationinsights.configuration.file system tulajdonság
Ha relatív elérési utat ad meg, az a applicationinsights-agent-3.7.0.jar helyet biztosító könyvtárhoz képest oldódik fel.
JSON-konfiguráció
Konfigurációs fájl használata helyett a teljes JSON-konfigurációt a következőkkel állíthatja be:
- a APPLICATIONINSIGHTS_CONFIGURATION_CONTENT környezeti változó, vagy
- az applicationinsights.configuration.content system tulajdonság
Kapcsolati sztring
Kapcsolati sztring szükséges. A kapcsolati sztring az Application Insights-erőforrásban találja.
{
"connectionString": "..."
}
A kapcsolati sztring a környezeti változóval APPLICATIONINSIGHTS_CONNECTION_STRING
is beállíthatja. Ezután elsőbbséget élvez a JSON-konfigurációban megadott kapcsolati sztring.
Vagy beállíthatja a kapcsolati sztring a Java rendszertulajdonság applicationinsights.connection.string
használatával. Elsőbbséget élvez a JSON-konfigurációban megadott kapcsolati sztring is.
A kapcsolati sztring úgy is beállíthatja, hogy megadjon egy fájlt, amelyből betölti a kapcsolati sztring.
Ha relatív elérési utat ad meg, az a könyvtárhoz képest oldódik fel, ahol applicationinsights-agent-3.7.0.jar
található.
{
"connectionString": "${file:connection-string-file.txt}"
}
A fájlnak csak a kapcsolati sztring és semmi mást kell tartalmaznia.
Ha nem állítja be a kapcsolati sztring letiltja a Java-ügynököt.
Ha több alkalmazás is üzembe van helyezve ugyanabban a Java virtuális gépen (JVM), és azt szeretné, hogy telemetriát küldjenek különböző kapcsolati sztring, tekintse meg a kapcsolati sztring felülbírálásait (előzetes verzió).
Felhőbeli szerepkör neve
A felhőbeli szerepkör neve az összetevő címkézésére szolgál az alkalmazástérképen.
Ha a felhőbeli szerepkör nevét szeretné beállítani:
{
"role": {
"name": "my cloud role name"
}
}
Ha a felhőbeli szerepkör neve nincs beállítva, a rendszer az Application Insights-erőforrás nevét használja az összetevő címkézésére az alkalmazástérképen.
A felhőbeli szerepkör nevét a környezeti változóval APPLICATIONINSIGHTS_ROLE_NAME
is beállíthatja. Ezután elsőbbséget élvez a JSON-konfigurációban megadott felhőszerepkör-névvel szemben.
Vagy beállíthatja a felhőbeli szerepkör nevét a Java rendszertulajdonság applicationinsights.role.name
használatával. Elsőbbséget élvez a JSON-konfigurációban megadott felhőbeli szerepkör nevével szemben is.
Ha több alkalmazás van üzembe helyezve ugyanabban a JVM-ben, és azt szeretné, hogy telemetriát küldjenek különböző felhőbeli szerepköröknek, tekintse meg a felhőbeli szerepkörök névfelbírálásait (előzetes verzió).
Felhőalapú szerepkörpéldány
A felhőbeli szerepkörpéldány alapértelmezés szerint a gép neve.
Ha a felhőbeli szerepkörpéldányt a gép neve helyett valami másra szeretné beállítani:
{
"role": {
"name": "my cloud role name",
"instance": "my cloud role instance"
}
}
A felhőalapú szerepkörpéldányt a környezeti változóval APPLICATIONINSIGHTS_ROLE_INSTANCE
is beállíthatja. Ezután elsőbbséget élvez a JSON-konfigurációban megadott felhőbeli szerepkörpéldányéval szemben.
Vagy beállíthatja a felhőbeli szerepkörpéldányt a Java rendszertulajdonság applicationinsights.role.instance
használatával.
Elsőbbséget élvez a JSON-konfigurációban megadott felhőbeli szerepkörpéldányéval szemben is.
Mintavételezés
Feljegyzés
A mintavételezés nagyszerű módszer lehet az Application Insights költségeinek csökkentésére. Győződjön meg arról, hogy a használati esetnek megfelelően állítja be a mintavételezési konfigurációt.
A mintavételezés kérésen alapul, ami azt jelenti, hogy ha egy kérés rögzítve van (mintavételezés), akkor a függőségei, naplói és kivételei is.
A mintavételezés a nyomkövetési azonosítón is alapul, hogy egységes mintavételezési döntéseket biztosítson a különböző szolgáltatásokban.
A mintavételezés csak a kérésen belüli naplókra vonatkozik. A kérésben nem található naplókat (például indítási naplókat) a rendszer alapértelmezés szerint mindig összegyűjti. Ha mintát szeretne venni ezekből a naplókból, használhat mintavételezési felülbírálásokat.
Sebességkorlátos mintavételezés
A 3.4.0-tól kezdődően a sebességkorlátos mintavételezés jelenleg az alapértelmezett.
Ha nincs mintavételezés konfigurálva, akkor az alapértelmezett érték korlátozott mintavételezés, amely legfeljebb (körülbelül) másodpercenként öt kérés rögzítésére van konfigurálva, az összes függőséggel és naplóval együtt.
Ez a konfiguráció felülírja a korábbi alapértelmezett beállítást, amely az összes kérés rögzítését jelentette. Ha továbbra is rögzíteni szeretné az összes kérést, használjon rögzített százalékos mintavételezést , és állítsa a mintavételezési százalékot 100-ra.
Feljegyzés
A sebességkorlátos mintavételezés hozzávetőleges, mivel belsőleg egy "rögzített" mintavételi százalékot kell módosítania az idő függvényében, hogy pontos tételszámokat adjon ki az egyes telemetriarekordokon. Belsőleg a sebességkorlátozott mintavételezés úgy van hangolva, hogy gyorsan (0,1 másodperc) alkalmazkodjon az új alkalmazásbetöltésekhez. Ezért nem szabad azt látnia, hogy az jelentősen vagy nagyon hosszú ideig meghaladja a konfigurált arányt.
Ez a példa bemutatja, hogyan állíthatja be a mintavételezést másodpercenként legfeljebb (körülbelül) egy kérés rögzítésére:
{
"sampling": {
"requestsPerSecond": 1.0
}
}
Ez requestsPerSecond
lehet decimális, így konfigurálhatja úgy, hogy másodpercenként egynél kevesebb kérést rögzítsen, ha szeretné. Egy érték 0.5
például legfeljebb 2 másodpercenként rögzít egy kérést.
A mintavételi százalékot a környezeti változóval APPLICATIONINSIGHTS_SAMPLING_REQUESTS_PER_SECOND
is beállíthatja. Ezután elsőbbséget élvez a JSON-konfigurációban megadott sebességkorlátnál.
Rögzített százalékos mintavételezés
Ez a példa bemutatja, hogyan állíthatja be a mintavételezést az összes kérelem körülbelül egyharmadának rögzítésére:
{
"sampling": {
"percentage": 33.333
}
}
A mintavételi százalékot a környezeti változóval APPLICATIONINSIGHTS_SAMPLING_PERCENTAGE
is beállíthatja. Ezután elsőbbséget élvez a JSON-konfigurációban megadott mintavételezési százalékkal szemben.
Feljegyzés
A mintavételi százalékértékhez válasszon egy 100/N-hez közeli százalékot, ahol az N egész szám. A mintavételezés jelenleg nem támogat más értékeket.
Mintavételezési felülbírálások
A mintavételezési felülbírálások lehetővé teszik az alapértelmezett mintavételezési százalék felülbírálását. Lehetőség van például a következőkre:
- Állítsa a mintavételi százalékot 0-ra vagy kis értékre a zajos állapot-ellenőrzésekhez.
- A zajos függőségi hívásokhoz állítsa a mintavételezési százalékot 0-ra vagy kis értékre.
- Egy fontos kéréstípus esetében állítsa a mintavételezési százalékot 100-ra. Használhatja például annak ellenére is,
/login
hogy az alapértelmezett mintavételezés alacsonyabbra van konfigurálva.
További információ: Mintavételezés felülbírálások dokumentációja .
Java Management Extensions-metrikák
Ha más Java Management Extensions (JMX) metrikákat szeretne gyűjteni:
{
"jmxMetrics": [
{
"name": "JVM uptime (millis)",
"objectName": "java.lang:type=Runtime",
"attribute": "Uptime"
},
{
"name": "MetaSpace Used",
"objectName": "java.lang:type=MemoryPool,name=Metaspace",
"attribute": "Usage.used"
}
]
}
Az előző konfigurációs példában:
-
name
A JMX-metrika metrikájához rendelt metrikanév (bármi lehet). -
objectName
A gyűjtendő objektum neveJMX MBean
. A helyettesítő karakterek csillaga (*) támogatott. -
attribute
a gyűjtendő attribútum neveJMX MBean
.
A numerikus és logikai JMX metrikaértékek támogatottak. A logikai JMX-metrikák hamisra és 1
igazra vannak leképezve0
.
További információkért tekintse meg a JMX-metrikák dokumentációját .
Egyéni dimenziók
Ha egyéni dimenziókat szeretne hozzáadni az összes telemetriához:
{
"customDimensions": {
"mytag": "my value",
"anothertag": "${ANOTHER_VALUE}"
}
}
A megadott környezeti változó értékét az indításkor beolvashatja ${...}
.
Feljegyzés
A 3.0.2-es verziótól kezdődően, ha egyéni dimenziót service.version
ad hozzá, az érték az Application Insights Naplók tábla oszlopában application_Version
lesz tárolva, nem pedig egyéni dimenzióként.
Örökölt attribútum (előzetes verzió)
A 3.2.0-s verziótól kezdve programozott módon állíthat be egyéni dimenziót a kéréstelemetria alapján. Függőségek és naplótelemetria alapján biztosítja az öröklést. A rendszer mindet a kérés kontextusában rögzíti.
{
"preview": {
"inheritedAttributes": [
{
"key": "mycustomer",
"type": "string"
}
]
}
}
Ezután az egyes kérések elején hívja meg a következőt:
Span.current().setAttribute("mycustomer", "xyz");
Lásd még: Egyéni tulajdonság hozzáadása spanhoz.
Kapcsolati sztring felülbírálása (előzetes verzió)
Ez a funkció előzetes verzióban érhető el, a 3.4.0-s verziótól kezdve.
A kapcsolati sztringek felülbírálása lehetővé teszi az alapértelmezett kapcsolati sztring felülbírálását. Lehetőség van például a következőkre:
- Állítson be egy kapcsolati sztring egy HTTP-elérési út előtaghoz
/myapp1
. - Állítson be egy másik kapcsolati sztring egy másik HTTP-elérési út előtaghoz
/myapp2/
.
{
"preview": {
"connectionStringOverrides": [
{
"httpPathPrefix": "/myapp1",
"connectionString": "..."
},
{
"httpPathPrefix": "/myapp2",
"connectionString": "..."
}
]
}
}
Felhőbeli szerepkörnevek felülbírálása (előzetes verzió)
Ez a funkció előzetes verzióban érhető el, a 3.3.0-tól kezdve.
A felhőbeli szerepkörnevek felülbírálása lehetővé teszi az alapértelmezett felhőszerepkör-név felülbírálását. Lehetőség van például a következőkre:
- Egyetlen felhőbeli szerepkör nevének beállítása egy HTTP-elérési út előtaghoz
/myapp1
. - Másik felhőbeli szerepkör nevének beállítása egy másik HTTP-elérési út előtaghoz
/myapp2/
.
{
"preview": {
"roleNameOverrides": [
{
"httpPathPrefix": "/myapp1",
"roleName": "Role A"
},
{
"httpPathPrefix": "/myapp2",
"roleName": "Role B"
}
]
}
}
Futtatókörnyezetben konfigurált kapcsolati sztring
A 3.4.8-tól kezdődően, ha futásidőben szeretné konfigurálni a kapcsolati sztring, adja hozzá ezt a tulajdonságot a json-konfigurációhoz:
{
"connectionStringConfiguredAtRuntime": true
}
Hozzáadás applicationinsights-core
az alkalmazáshoz:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-core</artifactId>
<version>3.7.0</version>
</dependency>
Használja a statikus configure(String)
metódust az osztályban com.microsoft.applicationinsights.connectionstring.ConnectionString
.
Feljegyzés
A kapcsolati sztring konfigurálása előtt rögzített telemetriai adatok elvesznek, ezért a legjobb, ha a lehető leghamarabb konfigurálja azt az alkalmazás indításakor.
InProc-függőségek automatikuscollect (előzetes verzió)
A 3.2.0-s verziótól kezdve, ha az "InProc" vezérlő függőségeit szeretné rögzíteni, használja a következő konfigurációt:
{
"preview": {
"captureControllerSpans": true
}
}
Böngésző SDK Loader (előzetes verzió)
Ez a funkció automatikusan injektálja a Browser SDK Loadert az alkalmazás HTML-lapjaiba, beleértve a megfelelő kapcsolati sztring konfigurálását is.
Ha például a Java-alkalmazás a következőhöz hasonló választ ad vissza:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Title</title>
</head>
<body>
</body>
</html>
Automatikusan módosítja a visszatérést:
<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript">
!function(v,y,T){var S=v.location,k="script"
<!-- Removed for brevity -->
connectionString: "YOUR_CONNECTION_STRING"
<!-- Removed for brevity --> }});
</script>
<title>Title</title>
</head>
<body>
</body>
</html>
A szkript célja, hogy segítse az ügyfeleket a webes felhasználói adatok nyomon követésében, és a kiszolgálóoldali telemetria gyűjtését visszaküldeni a felhasználók Azure Portalra. A részleteket az ApplicationInsights-JS webhelyen találja.
Ha engedélyezni szeretné ezt a funkciót, adja hozzá az alábbi konfigurációs beállítást:
{
"preview": {
"browserSdkLoader": {
"enabled": true
}
}
}
Telemetriai processzorok (előzetes verzió)
A telemetriai processzorokkal konfigurálhatja a kérelmekre, függőségekre és nyomkövetési telemetria-adatokra alkalmazott szabályokat. Lehetőség van például a következőkre:
- Bizalmas adatok maszkolása.
- Feltételesen adjon hozzá egyéni dimenziókat.
- Frissítse a span nevet, amely az Azure Portal hasonló telemetriai adatainak összesítésére szolgál.
- Adott span attribútumok elvetése a betöltési költségek szabályozásához.
További információkért tekintse meg a telemetriai processzor dokumentációját.
Feljegyzés
Ha konkrét (egész) időtartamokat szeretne elvetni a betöltési költségek szabályozásához, tekintse meg a mintavételezési felülbírálásokat.
Egyéni rendszerállapot (előzetes verzió)
A 3.3.1-től kezdve rögzítheti az alkalmazás egy metódusának spanjait:
{
"preview": {
"customInstrumentation": [
{
"className": "my.package.MyClass",
"methodName": "myMethod"
}
]
}
}
A betöltési mintavételezés helyi letiltása (előzetes verzió)
Alapértelmezés szerint, ha a Java-ügynök tényleges mintavételezési aránya 100%, és a betöltési mintavételezés konfigurálva van az Application Insights-erőforráson, akkor a betöltési mintavételezési százalék lesz alkalmazva.
Vegye figyelembe, hogy ez a viselkedés mind a 100%-os rögzített sebességű mintavételezésre, mind pedig a sebességkorlátos mintavételezésre is vonatkozik, ha a kérelem sebessége nem haladja meg a sebességkorlátot (gyakorlatilag 100%-ot rögzít a folyamatosan csúsztatási időkeret alatt).
A 3.5.3-tól kezdve letilthatja ezt a viselkedést (és ezekben az esetekben a telemetriai adatok 100%-át akkor is megtarthatja, ha a betöltési mintavételezés konfigurálva van az Application Insights-erőforráson):
{
"preview": {
"sampling": {
"ingestionSamplingEnabled": false
}
}
}
Automatikus naplózás
A Log4j, a Logback, a JBoss Logging és a java.util.logging automatikusan be van valasztva. Az ezeken a naplózási keretrendszereken keresztül végzett naplózás automatikusan ki lesz válogatva.
A naplózás csak akkor lesz rögzítve, ha:
- Megfelel a naplózási keretrendszer konfigurált szintjének.
- Emellett megfelel az Application Insights konfigurált szintjének is.
Ha például a naplózási keretrendszer úgy van konfigurálva, hogy naplózza WARN
(és a korábban leírtak szerint konfigurálta) a csomagbólcom.example
, és az Application Insights úgy van konfigurálva, hogy rögzítse INFO
(és a leírtak szerint konfigurálja), az Application Insights csak a csomagból com.example
rögzíti WARN
(és súlyosabb).
Az Application Insightshoz konfigurált alapértelmezett szint az INFO
. Ha módosítani szeretné ezt a szintet:
{
"instrumentation": {
"logging": {
"level": "WARN"
}
}
}
A szintet a környezeti változóval APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_LEVEL
is beállíthatja. Ezután elsőbbséget élvez a JSON-konfigurációban megadott szinttel szemben.
Ezeket az érvényes level
értékeket használhatja a fájlban való applicationinsights.json
megadásához. A táblázat bemutatja, hogyan felelnek meg a különböző naplózási keretrendszerek naplózási szintjeinek.
Level | Log4j | Visszavétel | JBoss | JÚL |
---|---|---|---|---|
KI | KI | KI | KI | KI |
FATÁLIS | FATÁLIS | Hiba | FATÁLIS | ERŐS |
HIBA (VAGY SÚLYOS) | Hiba | Hiba | Hiba | ERŐS |
WARN (vagy WARNING) | FIGYELMEZTET | FIGYELMEZTET | FIGYELMEZTET | FIGYELMEZTETÉS |
INFÓ | INFÓ | INFÓ | INFÓ | INFÓ |
CONFIG | HIBAKERESÉS | HIBAKERESÉS | HIBAKERESÉS | CONFIG |
HIBAKERESÉS (vagy FINOM) | HIBAKERESÉS | HIBAKERESÉS | HIBAKERESÉS | BÍRSÁG |
FINOMABB | HIBAKERESÉS | HIBAKERESÉS | HIBAKERESÉS | FINOMABB |
TRACE (vagy FINEST) | NYOMKÖVETÉSI | NYOMKÖVETÉSI | NYOMKÖVETÉSI | LEGJOBB |
ALL (összes) | ALL (összes) | ALL (összes) | ALL (összes) | ALL (összes) |
Feljegyzés
Ha egy kivételobjektumot ad át a naplózónak, a naplóüzenet (és a kivételobjektum részletei) a tábla helyett az exceptions
Azure Portalon jelennek meg.traces
Ha a naplóüzeneteket mind a táblákban, mind a traces
exceptions
táblákban meg szeretné jeleníteni, egy Naplók (Kusto) lekérdezést is írhat, hogy egyesíteni tudja őket. Példa:
union traces, (exceptions | extend message = outerMessage)
| project timestamp, message, itemType
Naplójelölők (előzetes verzió)
A 3.4.2-től kezdve rögzítheti a Logback és a Log4j 2 naplójelölőit:
{
"preview": {
"captureLogbackMarker": true,
"captureLog4jMarker": true
}
}
A logback egyéb naplóattribútumai (előzetes verzió)
A 3.4.3-tól kezdődően rögzítheti FileName
ClassName
MethodName
, és LineNumber
rögzítheti a bejelentkezést:
{
"preview": {
"captureLogbackCodeAttributes": true
}
}
Figyelmeztetés
A kódattribútumok rögzítése teljesítménybeli többletterhelést eredményezhet.
Naplózási szint egyéni dimenzióként
A 3.3.0-s verziótól kezdve alapértelmezés szerint nem lesz rögzítve a Traces egyéni dimenzió részeként, LoggingLevel
mert az adatok már rögzítve lesznek a SeverityLevel
mezőben.
Szükség esetén ideiglenesen újra engedélyezheti az előző viselkedést:
{
"preview": {
"captureLoggingLevelAsCustomDimension": true
}
}
Autocollected Micrometer metrics (beleértve a Spring Boot Actuator metrikákat)
Ha az alkalmazás Micrometert használ, a Micrometer globális beállításjegyzékbe küldött metrikák automatikusan lesznek felvéve.
Ha az alkalmazás Spring Boot Actuatort használ, a Spring Boot Actuator által konfigurált metrikák is automatikusan lesznek felvéve.
Egyéni metrikák küldése mikrométerrel:
Adja hozzá a Micrometert az alkalmazáshoz az alábbi példában látható módon.
<dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-core</artifactId> <version>1.6.1</version> </dependency>
A Micrometer globális beállításjegyzékével hozzon létre egy mérőt az alábbi példában látható módon.
static final Counter counter = Metrics.counter("test.counter");
A számlálóval az alábbi paranccsal rögzíthet metrikákat.
counter.increment();
A metrikák a customMetrics táblába kerülnek, az oszlopban
customDimensions
rögzített címkékkel. A metrikákat a metrikák kezelőjében is megtekintheti aLog-based metrics
metrikanévtér alatt.Feljegyzés
Az Application Insights Java a Micrometer-metrika nevének nem alfanumerikus karaktereit (a kötőjelek kivételével) aláhúzásjelekre cseréli. Ennek eredményeként az előző
test.counter
metrika a következőkénttest_counter
jelenik meg: .
A Micrometer-metrikák és a Spring Boot Actuator-metrikák automatikuscollectionének letiltása:
Feljegyzés
Az egyéni metrikák számlázása külön-külön lehetséges, és többletköltségeket eredményezhet. Ellenőrizze a díjszabással kapcsolatos információkat. A Micrometer és a Spring Boot Actuator metrikák letiltásához adja hozzá a következő konfigurációt a konfigurációs fájlhoz.
{
"instrumentation": {
"micrometer": {
"enabled": false
}
}
}
Java-adatbázis kapcsolati lekérdezésének maszkolása
A Java Database Connectivity (JDBC) lekérdezések konstans értékei alapértelmezés szerint maszkolással vannak elfedve a bizalmas adatok véletlen rögzítésének elkerülése érdekében.
A 3.4.0-tól kezdődően ez a viselkedés letiltható. Példa:
{
"instrumentation": {
"jdbc": {
"masking": {
"enabled": false
}
}
}
}
Mongo-lekérdezések maszkolása
A Mongo-lekérdezésekben a literális értékek alapértelmezés szerint maszkolással vannak elfedve a bizalmas adatok véletlen rögzítésének elkerülése érdekében.
A 3.4.0-tól kezdődően ez a viselkedés letiltható. Példa:
{
"instrumentation": {
"mongo": {
"masking": {
"enabled": false
}
}
}
}
HTTP-fejlécek
A 3.3.0-s verziótól kezdve rögzítheti a kérés- és válaszfejléceket a kiszolgáló (kérés) telemetrián:
{
"preview": {
"captureHttpServerHeaders": {
"requestHeaders": [
"My-Header-A"
],
"responseHeaders": [
"My-Header-B"
]
}
}
}
A fejlécnevek nem érzéketlenek a kis- és nagybetűk között.
Az előző példákat a tulajdonságnevek http.request.header.my_header_a
és http.response.header.my_header_b
a .
Hasonlóképpen rögzítheti a kérés- és válaszfejléceket az ügyfél -(függőségi) telemetrián:
{
"preview": {
"captureHttpClientHeaders": {
"requestHeaders": [
"My-Header-C"
],
"responseHeaders": [
"My-Header-D"
]
}
}
}
A fejlécnevek ismét érzéketlenek a kis- és nagybetűk számára. Az előző példákat a tulajdonságnevek http.request.header.my_header_c
és http.response.header.my_header_d
a .
HTTP-kiszolgáló 4xx válaszkódjai
Alapértelmezés szerint a 4xx válaszkódokat eredményező HTTP-kiszolgálókérések hibaként lesznek rögzítve.
A 3.3.0-s verziótól kezdve módosíthatja ezt a viselkedést, hogy sikeresként rögzítse őket:
{
"preview": {
"captureHttpServer4xxAsError": false
}
}
Adott autocollected telemetria letiltása
A 3.0.3-s verziótól kezdődően az automatikusan észlelt telemetria az alábbi konfigurációs beállítások használatával tiltható le:
{
"instrumentation": {
"azureSdk": {
"enabled": false
},
"cassandra": {
"enabled": false
},
"jdbc": {
"enabled": false
},
"jms": {
"enabled": false
},
"kafka": {
"enabled": false
},
"logging": {
"enabled": false
},
"micrometer": {
"enabled": false
},
"mongo": {
"enabled": false
},
"quartz": {
"enabled": false
},
"rabbitmq": {
"enabled": false
},
"redis": {
"enabled": false
},
"springScheduling": {
"enabled": false
}
}
}
Ezeket a rendszerállapotokat úgy is letilthatja, hogy a környezeti változókat a következőre false
állítja:
APPLICATIONINSIGHTS_INSTRUMENTATION_AZURE_SDK_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_CASSANDRA_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_JDBC_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_JMS_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_KAFKA_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_MICROMETER_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_MONGO_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_RABBITMQ_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_REDIS_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_SPRING_SCHEDULING_ENABLED
Ezek a változók elsőbbséget élveznek a JSON-konfigurációban megadott engedélyezett változókkal szemben.
Feljegyzés
Ha részletesebb vezérlést szeretne, például néhány Redis-hívás letiltásához, de nem minden Redis-híváshoz, olvassa el a Mintavételezési felülbírálások című témakört.
Előzetes verziójú rendszerállapotok
A 3.2.0-s verziótól kezdve a következő előzetes verziójú rendszerállapotokat engedélyezheti:
{
"preview": {
"instrumentation": {
"akka": {
"enabled": true
},
"apacheCamel": {
"enabled": true
},
"grizzly": {
"enabled": true
},
"ktor": {
"enabled": true
},
"play": {
"enabled": true
},
"r2dbc": {
"enabled": true
},
"springIntegration": {
"enabled": true
},
"vertx": {
"enabled": true
}
}
}
}
Feljegyzés
Az Akka-rendszerállapot a 3.2.2-es verziótól érhető el. A Vertx HTTP-kódtár rendszerállapota a 3.3.0-s verziótól érhető el.
Metrikaintervallum
A metrikákat alapértelmezés szerint 60 másodpercenként rögzíti a rendszer.
A 3.0.3-tól kezdődően módosíthatja ezt az időközt:
{
"metricIntervalSeconds": 300
}
A 3.4.9 GA-tól kezdődően a környezeti változóval APPLICATIONINSIGHTS_METRIC_INTERVAL_SECONDS
is beállíthatja aztmetricIntervalSeconds
. Ezután elsőbbséget élvez a metricIntervalSeconds
JSON-konfigurációban megadottaknál.
A beállítás a következő metrikákra vonatkozik:
- Alapértelmezett teljesítményszámlálók: Például processzor és memória
- Alapértelmezett egyéni metrikák: Például a szemétgyűjtés időzítése
- Konfigurált JMX-metrikák: Lásd a JMX metrikaszakaszt
- Mikrométer-metrikák: Lásd az Autocollected Micrometer metrics szakaszt
Szívverés
Az Application Insights Java 3.x alapértelmezés szerint 15 percenként küld szívverési metrikát. Ha a szívverési metrikát használja a riasztások aktiválásához, növelheti a szívverés gyakoriságát:
{
"heartbeat": {
"intervalSeconds": 60
}
}
Feljegyzés
Az időköz nem növelhető 15 percnél hosszabbra, mert a szívverési adatok az Application Insights használatának nyomon követésére is használhatók.
Hitelesítés
Feljegyzés
A hitelesítési funkció a 3.4.17-es verzió óta ga.
Hitelesítés használatával konfigurálhatja az ügynököt a Microsoft Entra-hitelesítéshez szükséges jogkivonat-hitelesítő adatok létrehozásához. További információkért tekintse meg a hitelesítési dokumentációt.
HTTP-proxy
Ha az alkalmazás tűzfal mögött található, és nem tud közvetlenül csatlakozni az Application Insightshoz, tekintse meg az Application Insights által használt IP-címeket.
A probléma megoldásához konfigurálhatja az Application Insights Java 3.x-et HTTP-proxy használatára.
{
"proxy": {
"host": "myproxy",
"port": 8080
}
}
A http-proxyt a formátumot https://<host>:<port>
használó környezeti változóval APPLICATIONINSIGHTS_PROXY
is beállíthatja. Ezután elsőbbséget élvez a JSON-konfigurációban megadott proxyval szemben.
A következő környezeti változóval megadhatja a felhasználót és a jelszót a APPLICATIONINSIGHTS_PROXY
proxyhoz: https://<user>:<password>@<host>:<port>
.
Az Application Insights Java 3.x emellett tiszteletben tartja a globális https.proxyHost
és https.proxyPort
a rendszertulajdonságokat is, ha be vannak állítva, és http.nonProxyHosts
szükség esetén.
Helyreállítás betöltési hibákból
Ha nem sikerül telemetriát küldeni az Application Insights szolgáltatásnak, az Application Insights Java 3.x tárolja a telemetriát a lemezen, és folytatja az újrapróbálkozást a lemezről.
A lemezmegőrzés alapértelmezett korlátja 50 Mb. Ha nagy telemetriai kötete van, vagy hosszabb hálózati vagy betöltési szolgáltatáskimaradásokból szeretne helyreállni, a 3.3.0-s verziótól kezdve növelheti ezt a korlátot:
{
"preview": {
"diskPersistenceMaxSizeMb": 50
}
}
Öndiagnosztika
Az "öndiagnosztika" az Application Insights Java 3.x belső naplózására utal. Ez a funkció hasznos lehet az Application Insights problémáinak felderítéséhez és diagnosztizálásához.
Alapértelmezés szerint az Application Insights Java 3.x a fájl applicationinsights.log
és a konzol szintjén INFO
is naplózza a következő konfigurációnak megfelelően:
{
"selfDiagnostics": {
"destination": "file+console",
"level": "INFO",
"file": {
"path": "applicationinsights.log",
"maxSizeMb": 5,
"maxHistory": 1
}
}
}
Az előző konfigurációs példában:
-
level
lehet azOFF
egyik ,ERROR
,WARN
,INFO
,DEBUG
vagyTRACE
. -
path
lehet abszolút vagy relatív elérési út. A relatív elérési utak a könyvtárban vannak feloldva, aholapplicationinsights-agent-3.7.0.jar
található.
A 3.0.2-es verziótól kezdve az öndiagnosztikát level
a környezeti változó APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL
használatával is beállíthatja. Ezután elsőbbséget élvez a JSON-konfigurációban megadott öndiagnosztikai szinttel szemben.
A 3.0.3-tól kezdődően az öndiagnosztikai fájl helyét is beállíthatja a környezeti változó APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_FILE_PATH
használatával. Ezután elsőbbséget élvez a JSON-konfigurációban megadott öndiagnosztikai fájl elérési útjának.
Telemetriai korreláció
A telemetriai korreláció alapértelmezés szerint engedélyezve van, de a konfigurációban letilthatja.
{
"preview": {
"disablePropagation": true
}
}
Egy példa
Ez a példa bemutatja, hogyan néz ki egy konfigurációs fájl több összetevővel. Az igényeinek megfelelően konfiguráljon bizonyos beállításokat.
{
"connectionString": "...",
"role": {
"name": "my cloud role name"
},
"sampling": {
"percentage": 100
},
"jmxMetrics": [
],
"customDimensions": {
},
"instrumentation": {
"logging": {
"level": "INFO"
},
"micrometer": {
"enabled": true
}
},
"proxy": {
},
"preview": {
"processors": [
]
},
"selfDiagnostics": {
"destination": "file+console",
"level": "INFO",
"file": {
"path": "applicationinsights.log",
"maxSizeMb": 5,
"maxHistory": 1
}
}
}