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


Application Insights for Java 2.x

Caution

Ez a cikk az Application Insights Java 2.x verziójára vonatkozik, amely már nem ajánlott.

A legújabb verzió dokumentációja az Application Insights Java 3.x-ben található.

Ebben a cikkben megtudhatja, hogyan használhatja az Application Insights Java 2.x-et. Ez a cikk bemutatja, hogyan:

  • Első lépések, és megtudhatja, hogyan végezhet eszközkéréseket, hogyan követheti nyomon a függőségeket, gyűjthet teljesítményszámlálókat, diagnosztizálhat teljesítményproblémákat és kivételeket, és hogyan írhat kódot a felhasználók alkalmazással kapcsolatos teendőinek nyomon követéséhez.
  • Nyomkövetési naplókat küldhet az Application Insightsnak, és feltárhatja őket az Application Insights portál használatával.
  • A Java-webalkalmazásokban figyelheti a függőségeket, a kifogott kivételeket és a metódusok végrehajtási idejét.
  • Telemetria szűrése a Java-webalkalmazásban.
  • Megismerheti a Linux rendszerteljesítmény-mérőszámait az Application Insightsban a segítségével collectd.
  • A Java virtuális gép (JVM)-alapú alkalmazáskód mérőszámainak mérése. Exportálja az adatokat kedvenc monitorozási rendszereibe a Micrometer-alkalmazásfigyeléssel.

Megjegyzés:

2025. március 31-én megszűnik az eszközkulcsalapú betöltés támogatása. A rendszerállapot-kulcsok betöltése továbbra is működni fog, de a továbbiakban nem biztosítunk frissítéseket vagy támogatást a funkcióhoz. Váltás kapcsolati láncokra az új képességek kihasználása érdekében.

Az Application Insights használatának első lépései Java-webes projektben

Ebben a szakaszban az Application Insights SDK használatával rendszerezi a kéréseket, nyomon követi a függőségeket, gyűjti a teljesítményszámlálókat, diagnosztizálja a teljesítményproblémákat és a kivételeket, és kódot ír a felhasználók alkalmazással kapcsolatos teendőinek nyomon követéséhez.

Az Application Insights egy bővíthető elemzési szolgáltatás webfejlesztők számára, amely segít megérteni az élő alkalmazás teljesítményét és használatát. Az Application Insights támogatja a Linuxon, Unixon vagy Windowson futó Java-alkalmazásokat.

Előfeltételek

A következők szükségesek:

  • Egy Azure-fiók, aktív előfizetéssel. Ingyenesen létrehozhat fiókot.
  • Egy működő Java-alkalmazás.

Application Insights-rendszerállapotkulcs lekérése

  1. Jelentkezzen be a Azure portalra.

  2. Az Azure Portalon hozzon létre egy Application Insights-erőforrást. Állítsa be az alkalmazás típusát Java-webalkalmazásra.

  3. Keresse meg az új erőforrás műszerkulcsát. Ezt a kulcsot rövidesen be kell illesztenie a kódprojektbe.

    Képernyőkép egy Application Insights-erőforrás Áttekintés paneljéről az Azure portálon, kiemelve az instrumentációs kulcsot.

Adja hozzá a Java-hoz készült Application Insights SDK-t a projekthez

Válassza ki a projekt típusát.

Ha a projekt már be van állítva a Maven buildelésre való használatára, egyesítse a következő kódot a pom.xml fájlban. Ezután frissítse a projektfüggőségeket a bináris fájlok letöltéséhez.

    <dependencies>
      <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>applicationinsights-web-auto</artifactId>
        <!-- or applicationinsights-web for manual web filter registration -->
        <!-- or applicationinsights-core for bare API -->
        <version>2.6.4</version>
      </dependency>
    </dependencies>

Gyakori kérdések

  • Mi a kapcsolat a , -web-autoés -web az -coreösszetevők között?

    • applicationinsights-web-auto olyan metrikákat biztosít, amelyek nyomon követik a HTTP servlet-kérelmek számát és válaszidejét az Application Insights servlet szűrő futásidejű automatikus regisztrálásával.
    • applicationinsights-web emellett olyan metrikákat is biztosít, amelyek nyomon követik a HTTP servlet-kérelmek számát és a válaszidőket. Az Application Insights servlet szűrő manuális regisztrálása azonban szükséges az alkalmazásban.
    • applicationinsights-core a csupasz API-t adja meg, például ha az alkalmazás nem servlet-alapú.
  • Hogyan frissíthetem az SDK-t a legújabb verzióra?

    • 2020 novemberétől a Java-alkalmazások monitorozásához az Application Insights Java 3.x használatát javasoljuk. További információ az első lépésekről: Application Insights Java 3.x.

ApplicationInsights.xml fájl hozzáadása

Adja hozzá a ApplicationInsights.xml fájlt a projekt erőforrásmappájához, vagy győződjön meg arról, hogy az bekerült a projekt telepítési osztályútvonalába. Másolja be a következő XML-t.

Cserélje le az instrumentációs kulcsot arra, amelyet az Azure portálon kapott.

<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings" schemaVersion="2014-05-30">

   <!-- The key from the portal: -->
   <InstrumentationKey>** Your instrumentation key **</InstrumentationKey>

   <!-- HTTP request component (not required for bare API) -->
   <TelemetryModules>
      <Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebRequestTrackingTelemetryModule"/>
      <Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebSessionTrackingTelemetryModule"/>
      <Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebUserTrackingTelemetryModule"/>
   </TelemetryModules>

   <!-- Events correlation (not required for bare API) -->
   <!-- These initializers add context data to each event -->
   <TelemetryInitializers>
      <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebOperationIdTelemetryInitializer"/>
      <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebOperationNameTelemetryInitializer"/>
      <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebSessionTelemetryInitializer"/>
      <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebUserTelemetryInitializer"/>
      <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebUserAgentTelemetryInitializer"/>
   </TelemetryInitializers>

</ApplicationInsights>

A konfigurációs fájl tetszőleges, az alkalmazás számára elérhető helyen lehet. A rendszertulajdonság -Dapplicationinsights.configurationDirectory a ApplicationInsights.xmltartalmazó könyvtárat adja meg. Egy E:\myconfigs\appinsights\ApplicationInsights.xml található konfigurációs fájl például a tulajdonsággal -Dapplicationinsights.configurationDirectory="E:\myconfigs\appinsights"lenne konfigurálva.

  • A rendszer elküldi az instrumentációs kulcsot a telemetria minden elemével együtt, és utasítja az Application Insightsot, hogy azt az Ön erőforrásában jelenítse meg.
  • A HTTP-kérelem összetevő nem kötelező. Automatikusan telemetriát küld a kérelmekről és a válaszidőkről a portálnak.
  • Az esemény-korreláció a HTTP-kérelem összetevő kiegészítése. Azonosítót rendel a kiszolgáló által fogadott kérésekhez. Ezután tulajdonságként hozzáadja ezt az azonosítót a telemetria minden eleméhez tulajdonságként Operation.Id. Lehetővé teszi az egyes kérésekhez társított telemetriai adatok korrelálását egy szűrő beállításával a diagnosztikai keresésben.

A rendszerállapot-kulcs beállításának alternatív módjai

Az Application Insights SDK ebben a sorrendben keresi a kulcsot:

  • Rendszertulajdonság: -DAPPINSIGHTS_INSTRUMENTATIONKEY=your_ikey
  • Környezeti változó: APPINSIGHTS_INSTRUMENTATIONKEY
  • Konfigurációs fájl: ApplicationInsights.xml

A következő kódban is beállíthatja:

    String instrumentationKey = "00000000-0000-0000-0000-000000000000";

    if (instrumentationKey != null)
    {
        TelemetryConfiguration.getActive().setInstrumentationKey(instrumentationKey);
    }

Ügynök hozzáadása

Telepítse a Java-ügynököt a kimenő HTTP-hívások, A JDBC-lekérdezések, az alkalmazásnaplózás és a jobb műveletelnevezés rögzítéséhez.

Az alkalmazás futtatása

Futtassa hibakeresési módban a fejlesztői gépen, vagy tegye közzé a kiszolgálón.

Telemetriai adatok megtekintése az Application Insightsban

Térjen vissza az Application Insights-erőforráshoz az Azure Portalon.

A HTTP-kérelmek adatai megjelennek az áttekintés panelen. Ha nincs ott, várjon néhány másodpercet, majd válassza a Frissítés lehetőséget.

Képernyőkép az áttekintési mintaadatokról.

További információ a metrikákról.

Az összes diagramra kattintva részletesebb összesített metrikákat jeleníthet meg.

Képernyőkép egy Application Insights-hibák panelről diagramokkal.

Példányadatok

Az egyes példányok megtekintéséhez kattintson az adott kéréstípusra.

Képernyőkép, amely egy adott mintanézetbe való részletes belemerülést mutat.

Log Analytics: Hatékony lekérdezési nyelv

Amikor több adatot halmoz fel, lekérdezéseket futtathat az adatok összesítéséhez és az egyes példányok megkereséséhez. A Log Analytics hatékony eszköz a teljesítmény és a használat megértéséhez, valamint diagnosztikai célokra.

Képernyőkép a Log Analyticsről az Azure Portalon.

Az alkalmazás telepítése a kiszolgálón

Most tegye közzé az alkalmazást a kiszolgálón, hagyja, hogy a felhasználók használják, és figyelje meg a telemetriát a portálon.

  • Győződjön meg arról, hogy a tűzfal lehetővé teszi, hogy az alkalmazás telemetriát küldjön az alábbi portokra:

    • dc.services.visualstudio.com:443
    • f5.services.visualstudio.com:443
  • Ha a kimenő forgalmat tűzfalon kell átirányítani, adja meg a rendszer tulajdonságait http.proxyHost és http.proxyPorta .

  • Windows-kiszolgálókon telepítse a következőt:

Azure App Service, Azure Kubernetes Service, virtuális gépek konfigurációja

Az Azure-erőforrás-szolgáltatókon futó alkalmazások monitorozásának legjobb és legegyszerűbb módja az Application Insights Java 3.x használata.

Kivételek és kéréshibák

A kezeletlen kivételeket és a kéréshibákat az Application Insights webes szűrője automatikusan összegyűjti.

Ha más kivételekről szeretne adatokat gyűjteni, beszúrhatja a trackException() hívásait a kódba.

Metódushívások és külső függőségek figyelése

Telepítse a Java-ügynököt a JDBC-n keresztül végrehajtott belső metódusok és hívások naplózásához, időzítési adatokkal és az automatikus műveletelnevezéshez.

W3C elosztott nyomkövetés

Az Application Insights Java SDK mostantól támogatja a W3C elosztott nyomkövetést.

A bejövő SDK-konfiguráció további magyarázata az Application Insights telemetriai korrelációjában található.

A kimenő SDK-konfiguráció a AI-Agent.xml fájlban van definiálva.

Teljesítmény számlálók

Válassza aMetrikák> lehetőséget a teljesítményszámlálók tartományának megtekintéséhez.

Képernyőkép egy Application Insights-erőforrás Metrikák ablaktáblájáról az Azure Portalon, kiválasztott folyamat privát bájtjaival.

Teljesítményszámláló-gyűjtemény testreszabása

A standard teljesítményszámlálók gyűjteményének letiltásához adja hozzá a következő kódot a ApplicationInsights.xml fájl gyökércsomópontja alá:

    <PerformanceCounters>
       <UseBuiltIn>False</UseBuiltIn>
    </PerformanceCounters>

Gyűjtsön több teljesítményszámlálót

További gyűjtendő teljesítményszámlálókat is megadhat.

JMX-számlálók (a Java virtuális gép által elérhetővé téve)
    <PerformanceCounters>
      <Jmx>
        <Add objectName="java.lang:type=ClassLoading" attribute="TotalLoadedClassCount" displayName="Loaded Class Count"/>
        <Add objectName="java.lang:type=Memory" attribute="HeapMemoryUsage.used" displayName="Heap Memory Usage-used" type="composite"/>
      </Jmx>
    </PerformanceCounters>
  • displayName: Az Application Insights portálon megjelenő név.
  • objectName: A JMX objektum neve.
  • attribute: A beolvasandó JMX objektumnév attribútuma.
  • type (nem kötelező): A JMX-objektum attribútumának típusa:
    • Alapértelmezett: Egyszerű típus, például int vagy long.
    • composite: A perf számláló adatai a következő formátumban lesznek Attribute.Data: .
    • tabular: A perf számláló adatai táblázatsor formátumban.
Windows teljesítményszámlálók

Minden Windows-teljesítményszámláló egy kategória tagja (ugyanúgy, mint egy mező egy osztály tagja). A kategóriák lehetnek globálisak, vagy számozott vagy elnevezett példányokkal rendelkeznek.

    <PerformanceCounters>
      <Windows>
        <Add displayName="Process User Time" categoryName="Process" counterName="%User Time" instanceName="__SELF__" />
        <Add displayName="Bytes Printed per Second" categoryName="Print Queue" counterName="Bytes Printed/sec" instanceName="Fax" />
      </Windows>
    </PerformanceCounters>
  • displayName: Az Application Insights portálon megjelenő név.
  • categoryName: A teljesítményszámláló kategóriája (teljesítményobjektum), amelyhez ez a teljesítményszámláló társítva van.
  • counterName: A teljesítményszámláló neve.
  • instanceName: A teljesítményszámláló kategóriapéldányának neve vagy egy üres karakterlánc (""), ha a kategória csak egy példányt tartalmaz. Ha categoryName igen, Process és a begyűjtendő teljesítményszámláló az aktuális JVM-folyamatból származik, amelyen az alkalmazás fut, adja meg "__SELF__".

Unix teljesítményszámlálók

Telepítse a collectd-t az Application Insights beépülő modullal a rendszer- és hálózati adatok széles körének lekéréséhez.

Felhasználói és munkamenet-adatok lekérése

Ön most telemetriát küld a webkiszolgálóról. Az alkalmazás teljes 360 fokos nézetének megtekintéséhez további monitorozást adhat hozzá:

Saját telemetriai adatok küldése

Most, hogy telepítette az SDK-t, az API-val elküldheti a saját telemetriáját:

Rendelkezésre állási webes tesztek

Az Application Insights rendszeres időközönként tesztelheti a webhelyet annak ellenőrzésére, hogy megfelelően működik-e és jól reagál-e.

További információ a rendelkezésre állási webtesztek beállításáról.

Hibaelhárítás

Tekintse meg a dedikált hibaelhárítási cikket.

Az alkalmazásgazda és a betöltési szolgáltatás közötti kapcsolat tesztelése

Az Application Insights SDK-k és ügynökök telemetria adatokat küldenek, hogy azok REST-hívásokként feldolgozásra kerüljenek az adatgyűjtési végpontjainkon. A webkiszolgálóról vagy az alkalmazásgazdagépről a betöltési szolgáltatás végpontjaihoz való kapcsolódást a PowerShellből vagy curl parancsokból származó nyers REST-ügyfelek használatával tesztelheti. Tekintse meg a hiányzó alkalmazástelemetria hibaelhárítását az Azure Monitor Application Insightsban.

Java-nyomkövetési naplók felfedezése az Application Insightsban

Ha a nyomkövetéshez logbacket vagy Log4J-t (1.2-s vagy 2.0-s verzió) használ, a nyomkövetési naplókat automatikusan elküldheti az Application Insightsnak, ahol felderítheti és megkeresheti őket.

Jótanács

Az Application Insights rendszerállapotkulcsát csak egyszer kell beállítania az alkalmazáshoz. Ha olyan keretrendszert használ, mint a Java Spring, előfordulhat, hogy már regisztrálta a kulcsot az alkalmazás konfigurációjában máshol.

Az Application Insights Java-ügynök használata

Alapértelmezés szerint az Application Insights Java-ügynök automatikusan rögzíti a WARN szinten és a fenti szinten végrehajtott naplózást.

A AI-Agent.xmlfájllal rögzített naplózási küszöbértéket módosíthatja:

<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsightsAgent>
   <Instrumentation>
      <BuiltIn>
         <Logging threshold="info"/>
      </BuiltIn>
   </Instrumentation>
</ApplicationInsightsAgent>

A Java-ügynök naplózási rögzítését a AI-Agent.xml fájl használatával tilthatja le:

<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsightsAgent>
   <Instrumentation>
      <BuiltIn>
         <Logging enabled="false"/>
      </BuiltIn>
   </Instrumentation>
</ApplicationInsightsAgent>

Alternatives

A Java-ügynök használata helyett kövesse az alábbi utasításokat.

A Java SDK telepítése

Kövesse az utasításokat a Java Application Insights SDK telepítéséhez, ha még nem tette meg.

Naplózási könyvtárak hozzáadása a projekthez

Válassza ki a projekt megfelelő módját.

Maven

Ha a projekt már be van állítva a Maven buildelésre való használatára, egyesítse az alábbi kódrészletek egyikét a pom.xml fájlba. Ezután frissítse a projektfüggőségeket a bináris fájlok letöltéséhez.

Logback


    <dependencies>
       <dependency>
          <groupId>com.microsoft.azure</groupId>
          <artifactId>applicationinsights-logging-logback</artifactId>
          <version>[2.0,)</version>
       </dependency>
    </dependencies>

Log4J v2.0


    <dependencies>
       <dependency>
          <groupId>com.microsoft.azure</groupId>
          <artifactId>applicationinsights-logging-log4j2</artifactId>
          <version>[2.0,)</version>
       </dependency>
    </dependencies>

Log4J v1.2


    <dependencies>
       <dependency>
          <groupId>com.microsoft.azure</groupId>
          <artifactId>applicationinsights-logging-log4j1_2</artifactId>
          <version>[2.0,)</version>
       </dependency>
    </dependencies>
Gradle

Ha a projekt már be van állítva a Gradle buildhez való használatára, adja hozzá a következő sorok egyikét a csoporthoz a dependenciesbuild.gradle fájlban. Ezután frissítse a projektfüggőségeket a bináris fájlok letöltéséhez.

Logback


    compile group: 'com.microsoft.azure', name: 'applicationinsights-logging-logback', version: '2.0.+'

Log4J v2.0

    compile group: 'com.microsoft.azure', name: 'applicationinsights-logging-log4j2', version: '2.0.+'

Log4J v1.2

    compile group: 'com.microsoft.azure', name: 'applicationinsights-logging-log4j1_2', version: '2.0.+'

Kövesse az irányelveket az Application Insights Java SDK manuális telepítéséhez és a jar letöltéséhez. A Maven Central lapon válassza a jar megfelelő hozzáfűző letöltési szakaszában található hivatkozást. Adja hozzá a letöltött JAR fájlt a projekthez.

Logger Letöltés Könyvtár
Visszavétel Visszacsatolási hozzáfűző Jar applicationinsights-logging-logback
Log4J v2.0 Log4J v2 appender Jar applicationinsights-logging-log4j2
Log4j v1.2 Log4J v1.2 appender Jar applicationinsights-logging-log4j1_2

A hozzáfűző hozzáadása a naplózási keretrendszerhez

A nyomkövetések lekéréséhez egyesítse a kód megfelelő kódrészletét a Logback vagy a Log4J konfigurációs fájlba.

Logback


    <appender name="aiAppender" 
      class="com.microsoft.applicationinsights.logback.ApplicationInsightsAppender">
        <instrumentationKey>[APPLICATION_INSIGHTS_KEY]</instrumentationKey>
    </appender>
    <root level="trace">
      <appender-ref ref="aiAppender" />
    </root>

Log4J v2.0


    <Configuration packages="com.microsoft.applicationinsights.log4j.v2">
      <Appenders>
        <ApplicationInsightsAppender name="aiAppender" instrumentationKey="[APPLICATION_INSIGHTS_KEY]" />
      </Appenders>
      <Loggers>
        <Root level="trace">
          <AppenderRef ref="aiAppender"/>
        </Root>
      </Loggers>
    </Configuration>

Log4J v1.2


    <appender name="aiAppender" 
         class="com.microsoft.applicationinsights.log4j.v1_2.ApplicationInsightsAppender">
        <param name="instrumentationKey" value="[APPLICATION_INSIGHTS_KEY]" />
    </appender>
    <root>
      <priority value ="trace" />
      <appender-ref ref="aiAppender" />
    </root>

Az Application Insights-hozzáfűzőkre bármely konfigurált naplózó hivatkozhat, és nem feltétlenül a gyökérnaplózóra, ahogy az az előző kódmintákban is látható.

Fedezze fel nyomait az Application Insights portálon

Most, hogy konfigurálta a projektet úgy, hogy nyomkövetéseket küldjön az Application Insightsnak, megtekintheti és keresheti ezeket a nyomkövetéseket a Keresés panel Application Insights portálján.

A naplózókon keresztül küldött kivételek kivétel telemetriaként jelennek meg a portálon.

Képernyőkép egy Application Insights-erőforrás Keresés ablaktáblájáról az Azure Portalon.

Függőségek, kifogott kivételek és metódusvégrehajtási idők figyelése Java-webalkalmazásokban

Ha a Java-webalkalmazást az Application Insights SDK-val hozta létre, a Java-ügynökkel részletesebb elemzéseket végezhet, kódmódosítások nélkül:

  • Függőségek: Az alkalmazás által más összetevőkre irányuló hívások adatai, beleértve a következőket:

    • Kimenő HTTP-hívások: A hívásokat a Apache HttpClient, OkHttp, és java.net.HttpURLConnection révén rögzítik.
    • Redis-hívások: A Jedis-ügyfélen keresztül indított hívásokat rögzítjük.
    • JDBC-lekérdezések: A MySQL és a PostgreSQL esetében, ha a hívás 10 másodpercnél tovább tart, az ügynök jelenti a lekérdezési tervet.
  • Alkalmazásnaplózás: Rögzítse és korrelálja az alkalmazásnaplókat HTTP-kérésekkel és egyéb telemetriával:

    • Log4j 1.2
    • Log4j2
    • Logback
  • Jobb műveletelnevezés: A kérések összesítéséhez használatos a portálon.

    • Spring: A @RequestMapping alapján.
    • JAX-RS: Alapján @Path.

A Java-ügynök használatához telepítse a kiszolgálóra. A webalkalmazásokat az Application Insights Java SDK-val kell létrehozni.

A Java-hoz készült Application Insights-ügynök telepítése

  1. A Java-kiszolgálót futtató gépen töltse le a 2.x ügynököt. Győződjön meg arról, hogy a használt 2.x Java-ügynök verziója megegyezik a használt 2.x Application Insights Java SDK-val.

  2. Szerkessze az alkalmazáskiszolgáló indítási szkriptét, és adja hozzá a következő JVM-argumentumot:

    -javaagent:<full path to the agent JAR file>

    Például Egy Linux-gépen futó Tomcatben:

    export JAVA_OPTS="$JAVA_OPTS -javaagent:<full path to agent JAR file>"

  3. Indítsa újra az alkalmazáskiszolgálót.

Az ügynök konfigurálása

Hozzon létre egy AI-Agent.xml nevű fájlt, és helyezze az ügynök jar fájllal megegyező mappába.

Állítsa be az XML-fájl tartalmát. Szerkessze a következő példát a kívánt funkciók belefoglalásához vagy kihagyásához.

<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsightsAgent>
   <Instrumentation>
      <BuiltIn enabled="true">

         <!-- capture logging via Log4j 1.2, Log4j2, and Logback, default is true -->
         <Logging enabled="true" />

         <!-- capture outgoing HTTP calls performed through Apache HttpClient, OkHttp,
              and java.net.HttpURLConnection, default is true -->
         <HTTP enabled="true" />

         <!-- capture JDBC queries, default is true -->
         <JDBC enabled="true" />

         <!-- capture Redis calls, default is true -->
         <Jedis enabled="true" />

         <!-- capture query plans for JDBC queries that exceed this value (MySQL, PostgreSQL),
              default is 10000 milliseconds -->
         <MaxStatementQueryLimitInMS>1000</MaxStatementQueryLimitInMS>

      </BuiltIn>
   </Instrumentation>
</ApplicationInsightsAgent>

További konfiguráció (Spring Boot)

java -javaagent:/path/to/agent.jar -jar path/to/TestApp.jar

Azure App Service esetén kövesse az alábbi lépéseket:

  1. Válassza a Beállítások>alkalmazásbeállítások lehetőséget.

  2. Az Alkalmazásbeállítások területen adjon hozzá egy új kulcsértékpárt:

    • Kulcs: JAVA_OPTS
    • Érték: -javaagent:D:/home/site/wwwroot/applicationinsights-agent-2.6.4.jar

    Az ügynököt erőforrásként kell csomagolni a projektben, hogy a D:/home/site/wwwroot/ könyvtárban kerüljön elhelyezésre. Annak ellenőrzéséhez, hogy az ügynök a megfelelő App Service-címtárban van-e, lépjen a Fejlesztői eszközök>speciális eszközök>hibakeresési konzoljára , és vizsgálja meg a webhelykönyvtár tartalmát.

  3. Mentse a beállításokat, és indítsa újra az alkalmazást. Ezek a lépések csak a Windows rendszeren futó alkalmazásszolgáltatásokra vonatkoznak.

Megjegyzés:

AI-Agent.xml és az ügynök jar fájljának ugyanabban a mappában kell lennie. Ezeket gyakran a projekt /resources mappájában helyezik el.

W3C elosztott nyomkövetés engedélyezése

Adja hozzá a következő kódrészletet a AI-Agent.xml:

<Instrumentation>
   <BuiltIn enabled="true">
      <HTTP enabled="true" W3C="true" enableW3CBackCompat="true"/>
   </BuiltIn>
</Instrumentation>

Megjegyzés:

A visszamenőleges kompatibilitási mód alapértelmezés szerint engedélyezve van. A enableW3CBackCompat paraméter nem kötelező, és csak akkor használható, ha ki szeretné kapcsolni.

Ideális esetben ez a helyzet, ha az összes szolgáltatást frissítették a W3C protokollt támogató SDK-k újabb verzióira. Javasoljuk, hogy a lehető leghamarabb térjen át a W3C-támogatással rendelkező SDK-k újabb verzióira.

Győződjön meg arról, hogy a bejövő és a kimenő (ügynök) konfigurációja is pontosan megegyezik.

Az adatok megtekintése

Az Application Insights-erőforrásban az összesített távoli függőségek és metódusvégrehajtási idők a Teljesítmény csempén jelennek meg.

A függőségi, kivétel- és metódusjelentések egyedi példányainak kereséséhez nyissa meg a Keresés elemet.

További információ a függőségi problémák diagnosztizálásáról.

Kérdések vagy problémák?

Használja a következő erőforrásokat:

Telemetria szűrése a Java-webalkalmazásban

A szűrők lehetővé teszik a Java-webalkalmazás által az Application Insightsnak küldött telemetriai adatok kiválasztását. Van néhány előre beállított szűrő, amelyet használhat. Saját egyéni szűrőket is írhat.

Az azonnal használható szűrők a következők:

  • Nyomkövetési súlyossági szint.
  • Adott URL-címek, kulcsszavak vagy válaszkódok.
  • Gyors válaszok. Más szóval olyan kérések, amelyekre az alkalmazás gyorsan válaszolt.
  • Konkrét eseménynevek.

Megjegyzés:

A szűrők torzítják az alkalmazás mérőszámait. Dönthet például úgy, hogy a lassú válaszok diagnosztizálásához beállít egy szűrőt a gyors válaszidők elvetésére. Azonban tisztában kell lennie azzal, hogy az Application Insights által jelentett átlagos válaszidők lassabbak lesznek, mint a valódi sebesség. Emellett a kérelmek száma kisebb lesz, mint a valós szám.

Ha ez aggodalomra ad okot, használja inkább a mintavételezést .

Szűrők beállítása

A ApplicationInsights.xmladjon hozzá egy TelemetryProcessors , a példához hasonló szakaszt:


    <ApplicationInsights>
      <TelemetryProcessors>

        <BuiltInProcessors>
           <Processor type="TraceTelemetryFilter">
                  <Add name="FromSeverityLevel" value="ERROR"/>
           </Processor>

           <Processor type="RequestTelemetryFilter">
                  <Add name="MinimumDurationInMS" value="100"/>
                  <Add name="NotNeededResponseCodes" value="200-400"/>
           </Processor>

           <Processor type="PageViewTelemetryFilter">
                  <Add name="DurationThresholdInMS" value="100"/>
                  <Add name="NotNeededNames" value="home,index"/>
                  <Add name="NotNeededUrls" value=".jpg,.css"/>
           </Processor>

           <Processor type="TelemetryEventFilter">
                  <!-- Names of events we don't want to see -->
                  <Add name="NotNeededNames" value="Start,Stop,Pause"/>
           </Processor>

           <!-- Exclude telemetry from availability tests and bots -->
           <Processor type="SyntheticSourceFilter">
                <!-- Optional: specify which synthetic sources,
                     comma-separated
                     - default is all synthetics -->
                <Add name="NotNeededSources" value="Application Insights Availability Monitoring,BingPreview"
           </Processor>

        </BuiltInProcessors>

        <CustomProcessors>
          <Processor type="com.fabrikam.MyFilter">
            <Add name="Successful" value="false"/>
          </Processor>
        </CustomProcessors>

      </TelemetryProcessors>
    </ApplicationInsights>

Vizsgálja meg a beépített processzorok teljes készletét.

Beépített szűrők

Ez a szakasz az elérhető beépített szűrőket ismerteti.

Metrika telemetriaszűrő


           <Processor type="MetricTelemetryFilter">
                  <Add name="NotNeeded" value="metric1,metric2"/>
           </Processor>
  • NotNeeded: Egyéni metrikanevek vesszővel tagolt listája

Lapnézet telemetriai szűrője


           <Processor type="PageViewTelemetryFilter">
                  <Add name="DurationThresholdInMS" value="500"/>
                  <Add name="NotNeededNames" value="page1,page2"/>
                  <Add name="NotNeededUrls" value="url1,url2"/>
           </Processor>
  • DurationThresholdInMS: Az időtartam az oldal betöltéséhez szükséges időre vonatkozik. Ha ez a paraméter be van állítva, a rendszer nem jelenti az ennél gyorsabban betöltött lapokat.
  • NotNeededNames: Oldalnevek vesszővel tagolt listája.
  • NotNeededUrls: URL-töredékek vesszővel tagolt listája. Kiszűri például az "home" url-címben található "kezdőlap" oldalakat.

Telemetriaszűrő kérése


           <Processor type="RequestTelemetryFilter">
                  <Add name="MinimumDurationInMS" value="500"/>
                  <Add name="NotNeededResponseCodes" value="page1,page2"/>
                  <Add name="NotNeededUrls" value="url1,url2"/>
           </Processor>

Szintetikus forrásszűrő

Kiszűri az összes olyan telemetriát, amelynek értékei a SyntheticSource tulajdonságban szerepelnek. A robotoktól, pókoktól és rendelkezésre állási tesztektől érkező kérések is megtalálhatók.

Kiszűri az összes szintetikus kérésre vonatkozó telemetria adatokat.


           <Processor type="SyntheticSourceFilter" />

A telemetria szűrése adott szintetikus források esetében:


           <Processor type="SyntheticSourceFilter" >
                  <Add name="NotNeeded" value="source1,source2"/>
           </Processor>
  • NotNeeded: Szintetikus forrásnevek vesszővel tagolt listája

Telemetriai eseményszűrő

Szűri a TrackEvent() használatával naplózott egyéni eseményeket:


           <Processor type="TelemetryEventFilter" >
                  <Add name="NotNeededNames" value="event1, event2"/>
           </Processor>
  • NotNeededNames: Eseménynevek vesszővel tagolt listája

Nyomkövetési telemetriaszűrő

A TrackTrace() vagy a naplózási keretrendszer gyűjtője által naplózott naplókövetések szűrése:


           <Processor type="TraceTelemetryFilter">
                  <Add name="FromSeverityLevel" value="ERROR"/>
           </Processor>
  • Az FromSeverityLevel érvényes értékek a következők:

    • KI: Kiszűri az összes nyomot.
    • TRACE: Nincs szűrés. A TRACE szinttel egyenlő.
    • INFORMÁCIÓ: Kiszűri a TRACE szintet.
    • FIGYELMEZTETÉS: Kiszűri a NYOMKÖVETÉST és AZ INFORMÁCIÓKAT.
    • HIBA: Kiszűri a WARN, az INFO és a TRACE függvényt.
    • KRITIKUS: Kiszűri az összeset, kivéve a KRITIKUS-t.

Egyéni szűrők

Az alábbi szakaszok a saját egyéni szűrők létrehozásának lépéseit mutatják be.

A szűrő kódolása

A kódban hozzon létre egy olyan osztályt, amely implementálja a következőt TelemetryProcessor:


    package com.fabrikam.MyFilter;
    import com.microsoft.applicationinsights.extensibility.TelemetryProcessor;
    import com.microsoft.applicationinsights.telemetry.Telemetry;

    public class SuccessFilter implements TelemetryProcessor {

        /* Any parameters that are required to support the filter.*/
        private final String successful;

        /* Initializers for the parameters, named "setParameterName" */
        public void setNotNeeded(String successful)
        {
            this.successful = successful;
        }

        /* This method is called for each item of telemetry to be sent.
           Return false to discard it.
           Return true to allow other processors to inspect it. */
        @Override
        public boolean process(Telemetry telemetry) {
            if (telemetry == null) { return true; }
            if (telemetry instanceof RequestTelemetry)
            {
                RequestTelemetry requestTelemetry = (RequestTelemetry)    telemetry;
                return request.getSuccess() == successful;
            }
            return true;
        }
    }

A szűrő meghívása a konfigurációs fájlban

Most, ApplicationInsights.xml:



    <ApplicationInsights>
      <TelemetryProcessors>
        <CustomProcessors>
          <Processor type="com.fabrikam.SuccessFilter">
            <Add name="Successful" value="false"/>
          </Processor>
        </CustomProcessors>
      </TelemetryProcessors>
    </ApplicationInsights>

A szűrő meghívása (Java Spring)

A Spring-keretrendszeren alapuló alkalmazások esetében az egyéni telemetriai processzorokat babként kell regisztrálni a fő alkalmazásosztályban. Ezt követően az alkalmazás indításakor automatikusan beállításra kerülnek.

@Bean
public TelemetryProcessor successFilter() {
      return new SuccessFilter();
}

Saját szűrőparamétereket hozhat létre a következőben application.properties: . Ezután a Spring Boot külső konfigurációs keretrendszerét használva adja át ezeket a paramétereket az egyéni szűrőbe.

Hibaelhárítás

Ez a szakasz hibaelhárítási tippet kínál.

A szűrő nem működik

Ellenőrizze, hogy érvényes paraméterértékeket adott-e meg. Az időtartamoknak például egész számoknak kell lenniük. Az érvénytelen értékek miatt a szűrő figyelmen kívül lesz hagyva. Ha az egyéni szűrő kivételt küld egy konstruktorból vagy beállítási módszerből, a rendszer figyelmen kívül hagyja.

gyűjtve: Linuxos teljesítménymetrikák az Application Insightsban (elavult)

Linux rendszer teljesítménymetrikáinak az Application Insights rendszerben való megismeréséhez telepítse a collectd programot az Application Insights beépülő moduljával együtt. Ez a nyílt forráskódú megoldás különböző rendszer- és hálózati statisztikákat gyűjt.

Általában akkor használja collectd, ha már bekonfigurálta a Java-webszolgáltatását az Application Insights használatával. További adatokat biztosít az alkalmazás teljesítményének javításához vagy a problémák diagnosztizálásához.

Szerezze be az eszközkulcsot

Nyissa meg az Application Insights-erőforrást az Azure Portalon, ahol meg szeretné jeleníteni az adatokat. Vagy létrehozhat egy új erőforrást.

Készítsen másolatot az erőforrást azonosító Instrumentation-kulcsról.

Képernyőkép egy Application Insights-erőforrás áttekintő paneljéről az Azure Portalon, kiemelve az instrumentációs kulcsot.

A collectd és a beépülő modul telepítése

Linux-kiszolgálói gépeken:

  1. Telepítse a collectd 5.4.0-s vagy újabb verzióját.
  2. Töltse le az Application Insights collectd író beépülő modulját. Jegyezze fel a verziószámot.
  3. Másolja a plug-in jar fájlt a /usr/share/collectd/java könyvtárba.
  4. Szerkesztés /etc/collectd/collectd.conf:
    • Győződjön meg arról, hogy a Java beépülő modul engedélyezve van.

    • Frissítse a JVM argumentumot a java.class.path, hogy magába foglalja a következő jar fájlt. Frissítse a verziószámot a letöltött verziószámnak megfelelően:

      • /usr/share/collectd/java/applicationinsights-collectd-1.0.5.jar
    • Adja hozzá ezt a kódrészletet az erőforrás "Instrumentation Key"-ével.

      
           LoadPlugin "com.microsoft.applicationinsights.collectd.ApplicationInsightsWriter"
           <Plugin ApplicationInsightsWriter>
              InstrumentationKey "Your key"
           </Plugin>
      

      Egy mintakonfigurációs fájl egy része:

      
          ...
          # collectd plugins
          LoadPlugin cpu
          LoadPlugin disk
          LoadPlugin load
          ...
      
          # Enable Java Plugin
          LoadPlugin "java"
      
          # Configure Java Plugin
          <Plugin "java">
            JVMArg "-verbose:jni"
            JVMArg "-Djava.class.path=/usr/share/collectd/java/applicationinsights-collectd-1.0.5.jar:/usr/share/collectd/java/collectd-api.jar"
      
            # Enabling Application Insights plugin
            LoadPlugin "com.microsoft.applicationinsights.collectd.ApplicationInsightsWriter"
      
            # Configuring Application Insights plugin
            <Plugin ApplicationInsightsWriter>
              InstrumentationKey "12345678-1234-1234-1234-123456781234"
            </Plugin>
      
            # Other plugin configurations ...
            ...
          </Plugin>
          ...
      

Konfiguráljon más összegyűjtött beépülő modulokat, amelyek különböző forrásokból gyűjthetnek különböző adatokat.

Indítsa újra collectd a kézikönyvnek megfelelően.

Az adatok megtekintése az Application Insightsban

Az Application Insights-erőforrásban nyissa meg a Metrikákat, és vegyen fel diagramokat. Válassza ki a megtekinteni kívánt metrikákat az Egyéni kategóriából.

Alapértelmezés szerint a metrikák összesítve vannak minden gazdagépen, ahonnan a metrikákat gyűjtötték. A metrikák gazdagépenkénti megtekintéséhez a Chart details panelen kapcsolja be a Csoportosítás opciót, majd válassza a CollectD-Host szerinti csoportosítást.

Adott statisztikák feltöltésének kizárása

Alapértelmezés szerint az Application Insights beépülő modul elküldi az összes engedélyezett collectd read beépülő modul által gyűjtött adatokat.

Adatok kizárása adott beépülő modulokból vagy adatforrásokból:

  • Szerkessze a konfigurációs fájlt.

  • Adja <Plugin ApplicationInsightsWriter>hozzá a következő táblázathoz hasonló direktív sorokat:

    Irányelv Hatás
    Exclude disk Zárja ki a disk beépülő modul által gyűjtött összes adatot.
    Exclude disk:read,write Zárja ki a disk beépülő modulból az read és write nevű forrásokat.

Különítse el az irányelveket egy újsorral.

Problémák?

Ez a szakasz hibaelhárítási tippeket nyújt.

Nem látok adatokat a portálon

Próbálja ki az alábbi lehetőségeket:

  • Nyissa meg a Keresés elemet annak megtekintéséhez, hogy a nyers események megérkeztek-e. Néha hosszabb ideig is eltarthat, hogy megjelenjenek a Metrikák kezelőjében.
  • Előfordulhat, hogy tűzfal kivételeket kell beállítania a kimenő adatokhoz.
  • Engedélyezze a nyomkövetést az Application Insights beépülő modulban. Adja hozzá ezt a sort a következőn belül <Plugin ApplicationInsightsWriter>:
    • SDKLogger true
  • Nyisson meg egy terminált, és indítsa el collectd részletes módban, hogy lássa a jelentett problémákat:
    • sudo collectd -f

Ismert probléma

Az Application Insights írási beépülő modulja nem kompatibilis bizonyos olvasási beépülő modulokkal. Egyes beépülő modulok néha küldenek NaN, de az Application Insights beépülő modul lebegőpontos számot vár.

  • Tünet: A collectd napló hibákat tartalmaz, amelyek közé tartozik az "AI: ... SyntaxError: Váratlan token N."
  • Megkerülő megoldás: A probléma írási beépülő moduljai által gyűjtött adatok kizárása.

A mikrométeres alkalmazásmonitorozás a JVM-alapú alkalmazáskód metrikáit méri, és lehetővé teszi az adatok exportálását kedvenc monitorozási rendszereibe. Ez a szakasz bemutatja, hogyan használhatja a Micrometert az Application Insights szolgáltatással Spring Boot- és nem Spring Boot-alkalmazásokhoz is.

A Spring Boot 1.5x használata

Adja hozzá a következő függőségeket a pom.xml vagy build.gradle fájlhoz :

Kövesse az alábbi lépéseket:

  1. Frissítse a Spring Boot-alkalmazás pom.xml fájlját, és adja hozzá a következő függőségeket:

    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>applicationinsights-spring-boot-starter</artifactId>
        <version>2.5.0</version>
    </dependency>
    
    <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-spring-legacy</artifactId>
        <version>1.1.0</version>
    </dependency>
    
    <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-registry-azure-monitor</artifactId>
        <version>1.1.0</version>
    </dependency>
    
    
  2. Frissítse az application.properties vagy az YML fájlt az Application Insights instrumentációs kulcsával az alábbi tulajdonság használatával:

    azure.application-insights.instrumentation-key=<your-instrumentation-key-here>

  3. Fordítsa le az alkalmazást, majd futtassa.

Az előző lépéseknek biztosítaniuk kell, hogy automatikusan gyűjtött, előre összesített metrikák elérhetők legyenek az Azure Monitorban.

Használja a Spring 2.x verziót

Adja hozzá a következő függőségeket a pom.xml vagy build.gradle fájlhoz :

Kövesse az alábbi lépéseket:

  1. Frissítse a Spring Boot-alkalmazás pom.xml fájlját, és adja hozzá a következő függőséget:

    <dependency> 
          <groupId>com.microsoft.azure</groupId>
          <artifactId>azure-spring-boot-metrics-starter</artifactId>
          <version>2.0.7</version>
    </dependency>
    
  2. Frissítse az application.properties vagy az YML fájlt az "Application Insights" instrumentációs kulcsával az alábbi tulajdonság használatával:

    azure.application-insights.instrumentation-key=<your-instrumentation-key-here>

  3. Építse meg az alkalmazását és futtassa.

Az előző lépések alapján a rendszernek működnie kellene előre összesített mutatókkal, amelyek automatikusan kerülnek gyűjtésre az Azure Monitorba. Az Application Insights Spring Boot starter finomhangolásával kapcsolatos további információkért tekintse meg a GitHubon található útmutatót.

Alapértelmezett metrikák:

  • A Tomcat, JVM, Logback Metrics, Log4J Metrics, Uptime Metrics, Processor Metrics és FileDescriptorMetrics mérőszámok automatikusan konfigurálva.
  • Ha például a Netflix Hystrix szerepel az osztályútvonalon, akkor ezeket a metrikákat is megkapjuk.
  • A megfelelő bab hozzáadásával a következő metrikák érhetők el:
    • CacheMetrics (CaffeineCache, EhCache2, GuavaCache, HazelcastCacheés JCache)
    • DataBaseTableMetrics
    • HibernateMetrics
    • JettyMetrics
    • OkHttp3 Metrikák
    • Kafka Metrikák

Az automatikus metrikák gyűjteményének kikapcsolása:

  • JVM-metrikák:
    • management.metrics.binders.jvm.enabled=false
  • Bejelentkezési metrikák:
    • management.metrics.binders.logback.enabled=false
  • Üzemidő-metrikák:
    • management.metrics.binders.uptime.enabled=false
  • Processzormetrikák:
    • management.metrics.binders.processor.enabled=false
  • FileDescriptorMetrics:
    • management.metrics.binders.files.enabled=false
  • Hystrix-metrikák, ha a kódtár be van kapcsolva classpath:
    • management.metrics.binders.hystrix.enabled=false
  • AspectJ-metrikák, ha a kódtár be van kapcsolva classpath:
    • spring.aop.enabled=false

Megjegyzés:

Adja meg az előző tulajdonságokat a Spring Boot-alkalmazás application.properties vagy application.yml fájljában.

Micrometer használata nem Spring Boot-webalkalmazásokkal

Adja hozzá a következő függőségeket a pom.xml vagy build.gradle fájlhoz :

Kövesse az alábbi lépéseket:

  1. Adja hozzá a következő függőségeket a pom.xml vagy build.gradle fájlhoz :

        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-azure-monitor</artifactId>
            <version>1.1.0</version>
        </dependency>
    
        <dependency>
            <groupId>com.microsoft.azure</groupId>
            <artifactId>applicationinsights-web-auto</artifactId>
            <version>2.5.0</version>
        </dependency>
    
  2. Ha még nem tette meg, adja hozzá a ApplicationInsights.xml fájlt az erőforrások mappájába. További információ: ApplicationInsights.xml fájl hozzáadása.

  3. Servlet-mintaosztály (időzítőmetrikát bocsát ki):

        @WebServlet("/hello")
        public class TimedDemo extends HttpServlet {
    
          private static final long serialVersionUID = -4751096228274971485L;
    
          @Override
          @Timed(value = "hello.world")
          protected void doGet(HttpServletRequest request, HttpServletResponse response)
              throws ServletException, IOException {
    
            response.getWriter().println("Hello World!");
            MeterRegistry registry = (MeterRegistry) getServletContext().getAttribute("AzureMonitorMeterRegistry");
    
        //create new Timer metric
            Timer sampleTimer = registry.timer("timer");
            Stream<Integer> infiniteStream = Stream.iterate(0, i -> i+1);
            infiniteStream.limit(10).forEach(integer -> {
              try {
                Thread.sleep(1000);
                sampleTimer.record(integer, TimeUnit.MILLISECONDS);
              } catch (Exception e) {}
               });
          }
          @Override
          public void init() throws ServletException {
            System.out.println("Servlet " + this.getServletName() + " has started");
          }
          @Override
          public void destroy() {
            System.out.println("Servlet " + this.getServletName() + " has stopped");
          }
    
        }
    
    
  4. Mintakonfigurációs osztály:

         @WebListener
         public class MeterRegistryConfiguration implements ServletContextListener {
    
           @Override
           public void contextInitialized(ServletContextEvent servletContextEvent) {
    
         // Create AzureMonitorMeterRegistry
           private final AzureMonitorConfig config = new AzureMonitorConfig() {
             @Override
             public String get(String key) {
                 return null;
             }
            @Override
               public Duration step() {
                 return Duration.ofSeconds(60);}
    
             @Override
             public boolean enabled() {
                 return false;
             }
         };
    
      MeterRegistry azureMeterRegistry = AzureMonitorMeterRegistry.builder(config);
    
             //set the config to be used elsewhere
             servletContextEvent.getServletContext().setAttribute("AzureMonitorMeterRegistry", azureMeterRegistry);
    
           }
    
           @Override
           public void contextDestroyed(ServletContextEvent servletContextEvent) {
    
           }
         }
    

A metrikákkal kapcsolatos további információkért tekintse meg a Micrometer dokumentációját.

A különböző metrikák létrehozására vonatkozó további mintakód a hivatalos Micrometer GitHub-adattárban található.

További metrikák gyűjtésének összekapcsolása

Az alábbi szakaszok bemutatják, hogyan gyűjthet további metrikákat.

SpringBoot/Spring

Hozzon létre egy "bean"-t a megfelelő metrikakategóriából. Tegyük fel például, hogy Guava Cache-metrikákra van szüksége:

    @Bean
    GuavaCacheMetrics guavaCacheMetrics() {
        Return new GuavaCacheMetrics();
    }

A metrikák alapértelmezés szerint nincsenek engedélyezve, de az előző módon kötöttek lehetnek. A teljes listát a Micrometer GitHub-adattárban találja.

Nem Spring-alkalmazások

Adja hozzá a következő kötéskódot a konfigurációs fájlhoz:

    New GuavaCacheMetrics().bind(registry);

Alapvető API egyéni eseményekhez és metrikákhoz

Szúrjon be néhány sornyi kódot az alkalmazásba, hogy megtudja, mit csinálnak vele a felhasználók, vagy segítsen a problémák diagnosztizálásában. Telemetriát küldhet eszköz- és asztali alkalmazásokból, webes ügyfelekről és webkiszolgálókról. Az Application Insights alapvető telemetriai API-jának használatával egyéni eseményeket és metrikákat küldhet, valamint a standard telemetriai adatok saját verzióit. Ez az API ugyanaz az API, amelyet a standard Application Insights-adatgyűjtők használnak.

API-összefoglalás

Az alapvető API minden platformon egységes, néhány változattól eltekintve, például GetMetric (csak.NET).

Metódus A következőhöz használatos:
TrackPageView Lapok, képernyők, panelek vagy űrlapok.
TrackEvent Felhasználói műveletek és egyéb események. A felhasználói viselkedés nyomon követésére vagy a teljesítmény figyelésére szolgál.
TrackMetric Teljesítménymérések, mint például az üzenetsorok hossza, amelyek nem kapcsolódnak adott eseményekhez.
TrackException Naplózási kivételek a diagnózishoz. Kövesse nyomon, hogy hol fordulnak elő más eseményekhez képest, és vizsgálja meg a verem nyomkövetéseket.
TrackRequest A kiszolgálói teljesítményelemzési kérelmek gyakoriságának és időtartamának naplózása.
TrackTrace Erőforrás-diagnosztikai naplóüzenetek. Külső naplókat is rögzíthet.
TrackDependency Az alkalmazás által használt külső összetevőkre irányuló hívások időtartamának és gyakoriságának naplózása.

A legtöbb telemetriai híváshoz tulajdonságokat és metrikákat csatolhat .

Előfeltételek

Ha még nem rendelkezik hivatkozással az Application Insights SDK-ra:

  • Adja hozzá az Application Insights SDK-t a projekthez.

  • Az eszköz vagy a webkiszolgáló kódja tartalmazza a következőket:

    import com.microsoft.applicationinsights.TelemetryClient;
    

TelemetryClient-példány lekérése

A következő példány lekérése TelemetryClient:

private TelemetryClient telemetry = new TelemetryClient();

TelemetryClient szálbiztos.

Megjegyzés:

Ha az Azure Functions v2+ vagy az Azure WebJobs v3+-ot használja, tekintse meg az Azure Functions monitorozását.

Lehetséges, hogy több TelemetryClient példányt szeretne létrehozni az alkalmazásod más moduljaihoz. Előfordulhat például, hogy a köztes szoftverosztályban van egy TelemetryClient példány az üzleti logikai események jelentéséhez. Beállíthat olyan tulajdonságokat, mint például UserIdDeviceId a gép azonosítása. Ez az információ a példány által küldött összes eseményhez csatolva van.

telemetry.getContext().getUser().setId("...");
telemetry.getContext().getDevice().setId("...");

TrackEvent

Az Application Insightsban az egyéni események olyan adatpontok, amelyeket a Metrics Explorerben összesített számként és a diagnosztikai keresésben egyéni előfordulásként jeleníthet meg. (Nem kapcsolódik az MVC-hez vagy más keretrendszer "eseményeihez".)

A különböző események megszámlálásához szúrjon be TrackEvent hívásokat a kódba. Előfordulhat például, hogy nyomon szeretné követni, hogy a felhasználók milyen gyakran választanak ki egy adott funkciót. Vagy érdemes lehet tudni, hogy milyen gyakran érnek el bizonyos célokat, vagy követnek el bizonyos típusú hibákat.

Egy játékalkalmazásban például minden alkalommal küldjön eseményt, amikor egy felhasználó megnyeri a játékot:

telemetry.trackEvent("WinGame");

Egyéni események a Log Analyticsben

A telemetria az customEventsApplication Insights Naplók lapján vagy a használati felületen található táblázatban érhető el. Az események a trackEvent(..) vagy a Click Analytics automatikus adatgyűjtő beépülő modulból származhatnak.

Ha a mintavételezés folyamatban van, a itemCount tulajdonság értéke nagyobb, mint 1. Ez azt jelenti például, itemCount==10 hogy 10 hívásból trackEvent()csak egyet továbbított a mintavételezési folyamat. Az egyéni események helyes számának lekéréséhez használja a customEvents | summarize sum(itemCount)következő kódot: .

Megjegyzés:

Az itemCount értéke legalább egy; maga a rekord egy bejegyzést jelöl.

TrackMetric

Az Application Insights képes olyan metrikákat ábrázolni, amelyek nincsenek adott eseményekhez csatolva. Monitorozhat például egy üzenetsor hosszát rendszeres időközönként. A metrikáknál az egyes mérések kevésbé érdekesek, mint a variációk és trendek, ezért a statisztikai diagramok hasznosak.

Metrikák Application Insightsba való küldéséhez használhatja az TrackMetric(..) API-t. A metrikák küldésének két módja van:

  • Egyetlen érték. Minden alkalommal, amikor mérést végez az alkalmazásban, elküldi a megfelelő értéket az Application Insightsnak.

    Tegyük fel például, hogy rendelkezik egy olyan metrikával, amely egy tároló elemeinek számát írja le. Egy adott időszakban először három elemet helyez a tárolóba, majd eltávolít két elemet. Ennek megfelelően Ön kétszer hívná fel TrackMetric. Először adja át az értéket 3 , majd adja át az értéket -2. Az Application Insights mindkét értéket tárolja.

  • Összesítés. Ha metrikákkal dolgozik, minden egyes mérés ritkán érdekes. Ehelyett fontos összefoglalni, hogy mi történt egy adott időszakban. Az ilyen összegzést összesítésnek nevezzük.

    Az előző példában az adott időszak összesített metrikaösszege 1, és a metrikaértékek száma 2. Az összesítési módszer használata esetén időszakonként csak egyszer hív meg TrackMetric , és elküldi az összesített értékeket. Ezt a megközelítést azért javasoljuk, mert jelentősen csökkentheti a költségeket és a teljesítményterhelést azáltal, hogy kevesebb adatpontot küld az Application Insightsnak, miközben továbbra is összegyűjti az összes releváns információt.

Példák egyetlen értékre

Egyetlen metrikaérték küldése:

telemetry.trackMetric("queueLength", 42.0);

Egyéni metrikák a Log Analyticsben

A telemetria az customMetricsApplication Insights Analytics táblájában érhető el. Minden sor egy hívást jelent a(z) trackMetric(..) alkalmazásban.

  • valueSum: A mérések összege. A középérték lekéréséhez ossza el a következővel valueCount: .
  • valueCount: Az trackMetric(..) hívásba összesített mérések száma.

Megjegyzés:

a valueCount értéke legalább egy; maga a rekord egy bejegyzést jelöl.

Oldalmegtekintések

Egy eszköz- vagy weblapalkalmazásban a rendszer alapértelmezés szerint elküldi a lapnézet telemetriáját az egyes képernyők vagy lapok betöltésekor. Az alapértelmezett beállítást azonban módosíthatja úgy, hogy több vagy több időpontban is nyomon kövesse az oldalmegtekintéseket. Egy lapokat vagy paneleket megjelenítő alkalmazásban például érdemes lehet nyomon követni egy lapot, amikor a felhasználó új panelt nyit meg.

A rendszer tulajdonságokként és oldalnézetekként küldi el a felhasználói és munkamenet-adatokat, így a felhasználói és a munkamenet-diagramok életre kelnek, amikor oldalnézeti telemetria van.

Egyéni oldalmegtekintések

telemetry.trackPageView("GameReviewPage");

Laptelemetria a Log Analyticsben

A Log Analyticsben két tábla jeleníti meg a böngészőműveletek adatait:

  • pageViews: Adatokat tartalmaz az URL-címről és a lap címéről.
  • browserTimings: Olyan adatokat tartalmaz az ügyfél teljesítményéről, mint a bejövő adatok feldolgozásához szükséges idő.

Annak megkeresése, hogy a böngésző mennyi ideig tart a különböző oldalak feldolgozásához:

browserTimings
| summarize avg(networkDuration), avg(processingDuration), avg(totalDuration) by name

A különböző böngészők népszerűségének felfedezése:

pageViews
| summarize count() by client_Browser

Ha oldalmegtekintéseket szeretne társítani az AJAX-hívásokhoz, csatlakozzon a függőségekhez:

pageViews
| join (dependencies) on operation_Id

TrackRequest

A kiszolgáló SDK a HTTP-kérések naplózására használja a TrackRequest jelölőt.

Akkor is meghívhatja, ha olyan környezetben szeretné szimulálni a kéréseket, ahol nem fut a webszolgáltatás-modul.

A kérelemtelemetria küldésének ajánlott módja, ha a kérés műveleti környezetként működik.

Műveleti környezet

A telemetriai elemeket összekapcsolhatja a műveleti környezettel való társítással. A szabványos kéréskövetési modul ezt teszi a HTTP-kérés feldolgozása során küldött kivételek és egyéb események esetében. A Keresés és elemzés területen egyszerűen megtalálhatja a kérelemhez társított eseményeket a műveletazonosító használatával.

A művelet hatókörében jelentett telemetriai elemek egy ilyen művelet gyermekévé válnak. A műveleti környezetek beágyazhatók.

A Keresésben a műveletkörnyezetet használja a kapcsolódó elemek listájának létrehozásához.

Képernyőkép a Kapcsolódó elemek listáról.

Kérelmek a Log Analyticsben

Az Application Insights Analyticsben a kérelmek megjelennek a requests táblázatban.

Ha a mintavételezés folyamatban van, a itemCount tulajdonság értéke nagyobb, mint 1. Ez azt jelenti például, itemCount==10 hogy 10 hívásból trackRequest()csak egyet továbbított a mintavételezési folyamat. A kérések helyes számának és a kérelmek neve szerint szegmentált átlagos időtartamának lekéréséhez használja a következő kódot:

requests
| summarize count = sum(itemCount), avgduration = avg(duration) by name

TrackException

Kivételek küldése az Application Insights szolgáltatásba:

A jelentések tartalmazzák a veremkivonatot.

try {
    ...
} catch (Exception ex) {
    telemetry.trackException(ex);
}

A kivételeket a rendszer automatikusan elkapja, így nem kell mindig explicit módon hívnia TrackException .

Kivételek a Log Analyticsben

Az Application Insights Analyticsben kivételek jelennek meg a exceptions táblázatban.

Ha a mintavételezés folyamatban van, a itemCount tulajdonság értéke nagyobb, mint 1. Ez azt jelenti például, itemCount==10 hogy 10 hívásból trackException()csak egyet továbbított a mintavételezési folyamat. A kivételtípusok szerint szegmentált kivételek helyes számának lekéréséhez használja a következő kódokat:

exceptions
| summarize sum(itemCount) by type

A legfontosabb veremadatok többsége már külön változókba van kinyerve, de a details szerkezetet szétszedve még több információhoz juthat. Mivel ez a struktúra dinamikus, az eredményt a várt típusra kell átalakítania. Például:

exceptions
| extend method2 = tostring(details[0].parsedStack[1].method)

Ha kivételeket szeretne társítani a kapcsolódó kérésekhez, használjon illesztést:

exceptions
| join (requests) on operation_Id

TrackTrace

Használja a TrackTrace elemet a problémák diagnosztizálásához, és küldjön „nyomvonalat” az Application Insightsnak. A diagnosztikai adatok darabjait elküldheti, és megvizsgálhatja őket a Diagnosztikai keresésben.

Megjegyzés:

A Java-ban az Application Insights Java-ügynök automatikusan átküldi és elküldi a naplókat a portálnak.

telemetry.trackTrace(message, SeverityLevel.Warning, properties);

Naplózhat egy diagnosztikai eseményt, például beírhat vagy elhagyhat egy metódust.

Paraméter Description
message Diagnosztikai adatok. Sokkal hosszabb lehet, mint egy név.
properties Sztringről sztringre történő leképezés. További adatokkal szűrheti a kivételeket a portálon. Alapértelmezés szerint üres.
severityLevel Támogatott értékek: SeverityLevel.ts.

Kereshet az üzenet tartalmában, de a tulajdonságértékekkel ellentétben nem szűrhet rá.

A méretkorlát message sokkal magasabb, mint a tulajdonságokra vonatkozó korlát. Ennek az az előnye TrackTrace , hogy viszonylag hosszú adatokat helyezhet el az üzenetben. Itt például a POST-adatokat kódolhatja.

Súlyossági szintet is hozzáadhat az üzenethez. A többi telemetriához hasonlóan tulajdonságértékeket is hozzáadhat a különböző nyomkövetési csoportok szűréséhez vagy kereséséhez. Például:

Map<String, Integer> properties = new HashMap<>();
properties.put("Database", db.ID);
telemetry.trackTrace("Slow Database response", SeverityLevel.Warning, properties);

A Keresésben ezután egyszerűen kiszűrheti egy adott súlyossági szint összes üzenetét, amely egy adott adatbázishoz kapcsolódik.

Nyomkövetések a Log Analyticsben

Az Application Insights Analyticsben megjelennek a TrackTrace hívások a traces táblázatban.

Ha a mintavételezés folyamatban van, a itemCount tulajdonság értéke nagyobb, mint 1. Ez azt jelenti például, itemCount==10 hogy 10 hívásból trackTrace()csak egyet továbbított a mintavételezési folyamat. A nyomkövetési hívások helyes számának lekéréséhez használjon olyan kódot, mint a traces | summarize sum(itemCount).

TrackDependency

A hívással TrackDependency nyomon követheti a külső kódhoz intézett hívások válaszidejének és sikerességi arányának mértékét. Az eredmények a portál függőségi diagramjaiban jelennek meg. A következő kódrészletet mindenhol hozzá kell adni, ahol függőségi hívást kezdeményeznek.

boolean success = false;
Instant startTime = Instant.now();
try {
    success = dependency.call();
}
finally {
    Instant endTime = Instant.now();
    Duration delta = Duration.between(startTime, endTime);
    RemoteDependencyTelemetry dependencyTelemetry = new RemoteDependencyTelemetry("My Dependency", "myCall", delta, success);
    dependencyTelemetry.setTimeStamp(startTime);
    telemetry.trackDependency(dependencyTelemetry);
}

Megjegyzés:

A Java-ban számos függőségi hívás automatikusan nyomon követhető az Application Insights Java-ügynökkel.

Ezt a hívást akkor használja, ha olyan hívásokat szeretne nyomon követni, amelyeket az automatikus nyomkövetés nem fog el.

Függőségek a Log Analyticsben

Az Application Insights AnalyticsbentrackDependency a hívások megjelennek a dependencies táblázatban.

Ha a mintavételezés működik, a itemCount tulajdonság értéke 1-nél nagyobb. Ez azt jelenti például, itemCount==10 hogy 10 hívásból trackDependency()csak egyet továbbított a mintavételezési folyamat. A célösszetevő szerint szegmentált függőségek helyes számának lekéréséhez használja a következő kódokat:

dependencies
| summarize sum(itemCount) by target

Ha függőségeket szeretne társítani a kapcsolódó kéréseikkel, használjon egy illesztést:

dependencies
| join (requests) on operation_Id

Adatok törlése

Az SDK általában rögzített időközönként, általában 30 másodperccel vagy a puffer megtelt állapotában küld adatokat, ami általában 500 elem. Bizonyos esetekben érdemes lehet kiüríteni a puffert. Ilyen például, ha az SDK-t egy leállított alkalmazásban használja.

telemetry.flush();
//Allow some time for flushing before shutting down
Thread.sleep(5000);

Megjegyzés:

A Java SDK automatikusan elvégzi a kiürítést az alkalmazás leállításakor.

Hitelesített felhasználók

Egy webalkalmazásban a felhasználókat alapértelmezés szerint cookie-k azonosítják . Előfordulhat, hogy egy felhasználót többször is meg kell számolni, ha egy másik gépről vagy böngészőből fér hozzá az alkalmazáshoz, vagy törli a cookie-kat.

Ha a felhasználók bejelentkeznek az alkalmazásba, pontosabb számot kaphat a hitelesített felhasználói azonosító böngészőkódban való beállításával. Nem szükséges a felhasználó tényleges bejelentkezési nevét használni. Csak az adott felhasználóra jellemző azonosítónak kell lennie. Nem tartalmazhat szóközöket vagy karaktereket ,;=|.

A felhasználói azonosító egy munkamenet-cookie-ban is be van állítva, és elküldi a kiszolgálónak. Ha a kiszolgáló SDK telepítve van, a hitelesített felhasználói azonosító az ügyfél- és kiszolgálótelemetria környezeti tulajdonságainak részeként lesz elküldve. Ezután szűrheti és kereshet rajta.

Ha az alkalmazás fiókba csoportosítja a felhasználókat, a fiók azonosítóját is átadhatja. Ugyanezek a karakterkorlátozások érvényesek.

A Metrics Explorerben létrehozhat egy diagramot, amely megszámlálja a felhasználókat, a hitelesített és a felhasználói fiókokat.

Adott felhasználónevekkel és fiókokkal rendelkező ügyféladat-pontokat is kereshet .

Adatok szűrése, keresése és szegmentálása tulajdonságok használatával

Tulajdonságokat és méréseket csatolhat az eseményekhez, metrikákhoz, oldalnézetekhez, kivételekhez és egyéb telemetriai adatokhoz.

A tulajdonságok olyan sztringértékek, amelyekkel szűrheti a telemetriát a használati jelentésekben. Ha például az alkalmazás több játékot is kínál, minden eseményhez csatolhatja a játék nevét, így láthatja, hogy mely játékok népszerűbbek.

A karakterlánc hossza legfeljebb 8 192 lehet. Ha nagy adattömböket szeretne küldeni, használja a következő üzenetparamétert TrackTrace: .

A metrikák grafikusan ábrázolható numerikus értékek. Érdemes lehet például megnézni, hogy a játékosok által elért pontszámok fokozatosan növekednek-e. A grafikonok szegmentáltak lehetnek az eseményhez küldött tulajdonságok alapján, így különálló vagy halmozott gráfokat kaphat a különböző játékokhoz.

A metrikaértékek helyes megjelenítéséhez a metrikaértéknek 0-nál nagyobbnak vagy egyenlőnek kell lennie.

A használható tulajdonságok, tulajdonságértékek és metrikák száma korlátozott.

Map<String, String> properties = new HashMap<String, String>();
properties.put("game", currentGame.getName());
properties.put("difficulty", currentGame.getDifficulty());

Map<String, Double> metrics = new HashMap<String, Double>();
metrics.put("Score", currentGame.getScore());
metrics.put("Opponents", currentGame.getOpponentCount());

telemetry.trackEvent("WinGame", properties, metrics);

Fontos

Győződjön meg arról, hogy nem naplózza a személyazonosításra alkalmas adatokat a tulajdonságokban.

Figyelmeztetés

Ne használja újra ugyanazt a telemetriai elempéldányt (event ebben a példában) többszöri híváshoz Track*() . Ez a gyakorlat azt okozhatja, hogy a telemetriai adatok helytelen konfigurációval lesznek elküldve.

Egyéni mérések és tulajdonságok a Log Analyticsben

A Log Analyticsben az egyéni metrikák és tulajdonságok az customMeasurements egyes telemetriai rekordokban és customDimensions attribútumokban jelennek meg.

Ha például hozzáad egy "game" nevű tulajdonságot a kérelem telemetriai adataihoz, ez a lekérdezés megszámolja a "játék" különböző értékeinek előfordulását, és megjeleníti az egyéni metrika "pontszámának" átlagát:

requests
| summarize sum(itemCount), avg(todouble(customMeasurements.score)) by tostring(customDimensions.game)

Figyelje meg, hogy:

  • Ha kivon egy értéket a customDimensions vagy customMeasurements JSON-ból, annak dinamikus típusa van, ezért azt tostring vagy todouble típussá kell alakítania.
  • A mintavétel lehetőségének figyelembevétele érdekében használja sum(itemCount)-t, ne pedig count()-t.

Időzítési események

Néha érdemes diagramot készíteni, hogy mennyi ideig tart egy művelet végrehajtása. Érdemes lehet például tudnia, hogy a felhasználók mennyi ideig tartanak, amíg megfontolják a választásokat egy játékban. Az információk beszerzéséhez használja a mérési paramétert.

long startTime = System.currentTimeMillis();

// Perform timed action

long endTime = System.currentTimeMillis();
Map<String, Double> metrics = new HashMap<>();
metrics.put("ProcessingTime", (double)endTime-startTime);

// Setup some properties
Map<String, String> properties = new HashMap<>();
properties.put("signalSource", currentSignalSource.getName());

// Send the event
telemetry.trackEvent("SignalProcessed", properties, metrics);

Az egyéni telemetriai adatok alapértelmezett tulajdonságai

Ha meg szeretné adni az alapértelmezett tulajdonságértékeket az ön által írt egyéni események némelyikéhez, állítsa be őket egy TelemetryClient példányban. Ezek az ügyféltől küldött összes telemetriai elemhez vannak csatolva.

import com.microsoft.applicationinsights.TelemetryClient;
import com.microsoft.applicationinsights.TelemetryContext;
...

TelemetryClient gameTelemetry = new TelemetryClient();
TelemetryContext context = gameTelemetry.getContext();
context.getProperties().put("Game", currentGame.Name);

gameTelemetry.TrackEvent("WinGame");

Az egyes telemetriai hívások felülírhatják a tulajdonságszótárak alapértelmezett értékeit.

Telemetriai adatok letiltása

A telemetriai adatok gyűjtésének és átvitelének dinamikus leállítása és elindítása :

telemetry.getConfiguration().setTrackingDisabled(true);

Dinamikus kapcsolati sztring

A fejlesztési, tesztelési és éles környezetekből származó telemetriai adatok keveredésének elkerülése érdekében létrehozhat külön Application Insights-erőforrásokat , és a környezettől függően módosíthatja a kapcsolati sztringeket.

Ahelyett, hogy lekérné a kapcsolati sztringet a konfigurációs fájlból, beállíthatja a kód inicializálási módszerében:

// Initialize once, e.g., at startup
TelemetryClient telemetry = new TelemetryClient();

// Prefer env var; falls back to hard-coded for illustration
String cs = System.getenv("APPLICATIONINSIGHTS_CONNECTION_STRING");
if (cs != null && !cs.isEmpty()) {
    telemetry.getContext().setConnectionString(cs);
}

TelemetryContext

TelemetryClient Egy Környezeti tulajdonsággal rendelkezik, amely az összes telemetriai adattal együtt elküldött értékeket tartalmazza. Ezeket általában a standard telemetriai modulok állítják be, de ön is beállíthatja őket. Például:

telemetry.Context.Operation.Name = "MyOperationName";

Ha ezeket az értékeket saját maga állítja be, vegye fontolóra a megfelelő sor eltávolítását aApplicationInsights.config , hogy az értékek és a standard értékek ne keveredhessenek össze.

  • Összetevő: Az alkalmazás és annak verziója.
  • Eszköz: Adatok arról az eszközről, amelyen az alkalmazás fut. A webalkalmazásokban az a kiszolgáló vagy ügyféleszköz, amelyről a telemetriát elküldi a rendszer.
  • InstrumentationKey: Az Application Insights-erőforrás az Azure-ban, ahol megjelenik a telemetria.
  • Hely: Az eszköz földrajzi helye.
  • Művelet: Webalkalmazásokban az aktuális HTTP-kérés. Más alkalmazástípusokban ezt az értéket úgy állíthatja be, hogy csoportosítsa az eseményeket.
    • Azonosító: Olyan generált érték, amely különböző eseményeket korrelál, így amikor bármilyen eseményt megvizsgál a Diagnosztikai keresésben, megkeresheti a kapcsolódó elemeket.
    • Név: Egy azonosító, általában a HTTP-kérés URL-címe.
    • Szintetikusforrás: Ha nem null értékű vagy üres, egy sztring, amely azt jelzi, hogy a kérés forrása robotként vagy webes tesztként lett azonosítva. Alapértelmezés szerint ki van zárva a Metrics Explorer számításaiból.
  • Munkamenet: A felhasználó munkamenete. Az azonosító egy generált értékre van állítva, amely akkor változik, ha a felhasználó egy ideje nem aktív.
  • Felhasználó: Felhasználói adatok.

Limits

Az alkalmazásonkénti metrikák és események, vagyis a rendszerállapot-kulcsok száma korlátozott. A korlátozások a választott díjszabási csomagtól függően változnak.

Resource Alapértelmezett korlát Maximális határ Jegyzetek
Napi teljes adatmennyiség 100 GB Kapcsolatfelvétel az ügyfélszolgálattal. Az adatok csökkentéséhez beállíthat egy korlátot. Ha több adatra van szüksége, a portálon akár 1000 GB-ra is növelheti a korlátot. Az 1000 GB-nál nagyobb kapacitások esetén küldjön e-mailt a következő címre AIDataCap@microsoft.com: .
Fojtás 32 000 esemény/másodperc Kapcsolatfelvétel az ügyfélszolgálattal. A korlát megállapítása egy percnyi mérés alapján történik.
Adatmegőrzési naplók 30–730 nap 730 nap Ez az erőforrás a naplók számára készült .
Adatmegőrzési metrikák 90 nap 90 nap Ez az erőforrás a Metrics Explorerhez készült.
Rendelkezésre állási többlépéses teszt részletes eredményeinek tárolása 90 nap 90 nap Ez az erőforrás minden lépésről részletes eredményeket biztosít.
Telemetriai elemek maximális mérete 64 KB 64 KB
Telemetriaelemek maximális száma kötegenként 64,000 64,000
Tulajdonság- és metrikanév hossza 150 150 Lásd a típussémákat.
Tulajdonságérték-karakterlánc hossza 8,192 8,192 Lásd a típussémákat.
Nyomkövetési és kivételüzenet hossza 32,768 32,768 Lásd a típussémákat.
A rendelkezésre állási tesztek száma Application Insights-erőforrásonként 100 100
Rendelkezésre állási tesztek száma erőforráscsoportonként 800 800 Lásd: Azure Resource Manager
A rendelkezésre állási tesztek maximális átirányítása tesztenként 10 10
Rendelkezésre állási tesztek minimális tesztelési gyakorisága 300 másodperc Az 5 percnél rövidebb egyéni tesztelési gyakoriságok vagy frekvenciák egyéni TrackAvailability implementációt igényelnek.
.NET Profiler és Snapshot Debugger adatmegőrzés Két hét Kapcsolatfelvétel az ügyfélszolgálattal. A maximális megőrzési korlát hat hónap.
Naponta küldött .NET Profiler-adatok Nincs korlát Nincs korlát.
Pillanatkép-hibakereső által küldött adatok naponta Naponta 30 pillanatkép figyelt alkalmazásonként Nincs korlát. Az alkalmazásonként gyűjtött pillanatképek száma konfigurációval módosítható.

A díjszabásról és a kvótákról további információt az Application Insights számlázásában talál.

Az adatsebesség-korlát elérésének elkerülése érdekében használjon mintavételezést.

Az adatok megőrzésének időtartamáról további információt az adatmegőrzés és az adatvédelem című témakörben talál.

Következő lépések