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


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.

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.

Konfigurációs fájl elérési útja

Alapértelmezés szerint az Application Insights Java 3.x elvárja, hogy a konfigurációs fájl neve el legyen nevezve applicationinsights.json, és ugyanabban a könyvtárban legyen, mint a applicationinsights-agent-3.5.3.jar.

Saját konfigurációs fájl elérési útját az alábbi két lehetőség egyikével adhatja meg:

  • APPLICATIONINSIGHTS_CONFIGURATION_FILE környezeti változó
  • applicationinsights.configuration.file Java rendszertulajdonság

Ha relatív elérési utat ad meg, az a könyvtárhoz képest oldódik fel, ahol applicationinsights-agent-3.5.3.jar található.

Másik lehetőségként konfigurációs fájl használata helyett a környezeti változón APPLICATIONINSIGHTS_CONFIGURATION_CONTENTkeresztül megadhatja a JSON-konfiguráció teljes tartalmát.

Kapcsolati sztring

Kapcsolati sztring szükséges. A kapcsolati sztring az Application Insights-erőforrásban találja.

Az Application Insights kapcsolati sztring bemutató képernyőképe.

{
  "connectionString": "..."
}

A kapcsolati sztring a környezeti változóval APPLICATIONINSIGHTS_CONNECTION_STRINGis 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.stringhaszná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.5.3.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_NAMEis 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.namehaszná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_INSTANCEis 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.instancehaszná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_SECONDis 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_PERCENTAGEis 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).
  • objectNameA gyűjtendő objektum neveJMX MBean. A helyettesítő karakterek csillaga (*) támogatott.
  • attribute a gyűjtendő attribútum neve JMX 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.versionad 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.5.3</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.examplerö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_LEVELis 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 tracesexceptions 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 FileNameClassNameMethodName, és LineNumberrö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:

  1. 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>
    
  2. 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");
    
  3. A számlálóval az alábbi paranccsal rögzíthet metrikákat.

    counter.increment();
    
  4. 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 a Log-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ént test_counterjelenik 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_ba .

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

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_SECONDSis 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:

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_PROXYis 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.nonProxyHostsszü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 az OFFegyik , ERROR, WARN, INFO, DEBUGvagy TRACE.
  • path lehet abszolút vagy relatív elérési út. A relatív elérési utak a könyvtárban vannak feloldva, ahol applicationinsights-agent-3.5.3.jar található.

A 3.0.2-es verziótól kezdve az öndiagnosztikát level a környezeti változó APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVELhaszná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_PATHhasználatával. Ezután elsőbbséget élvez a JSON-konfigurációban megadott öndiagnosztikai fájl elérési útjának.

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