Delen via


Application Insights voor Java 2.x

Waarschuwing

Dit artikel is van toepassing op Application Insights Java 2.x, wat niet meer wordt aanbevolen.

Documentatie voor de nieuwste versie vindt u in Application Insights Java 3.x.

In dit artikel leert u hoe u Application Insights Java 2.x gebruikt. Dit artikel laat het volgende zien:

  • Ga aan de slag en leer hoe u aanvragen instrumenteert, afhankelijkheden bijhoudt, prestatiemeteritems verzamelt, prestatieproblemen en uitzonderingen diagnosticeert en code schrijft om bij te houden wat gebruikers doen met uw app.
  • Verzend traceerlogboeken naar Application Insights en verken ze met behulp van de Application Insights-portal.
  • Controleer afhankelijkheden, gevangen uitzonderingen en uitvoeringstijden van methoden in Java-web-apps.
  • Filter telemetrie in uw Java-webapp.
  • Verken metrische gegevens over de prestaties van Linux-systemen in Application Insights met behulp van collectd.
  • Meet metrische gegevens voor toepassingscode op basis van een virtuele Java-machine (JVM). Exporteer de gegevens naar uw favoriete bewakingssystemen met behulp van Micrometer-toepassingsbewaking.

Opmerking

Op 31 maart 2025 eindigt de ondersteuning voor verwerking van instrumentatiesleutels. Opname van instrumentatiesleutels blijft werken, maar we bieden geen updates of ondersteuning meer voor deze functie. Overschakel naar verbindingsreeksen om te profiteren van nieuwe mogelijkheden.

Aan de slag met Application Insights in een Java-webproject

In deze sectie gebruikt u de Application Insights SDK om aanvragen te instrumenteren, afhankelijkheden bij te houden, prestatiemeteritems te verzamelen, prestatieproblemen en uitzonderingen te diagnosticeren en code te schrijven om bij te houden wat gebruikers doen met uw app.

Application Insights is een uitbreidbare analyseservice voor webontwikkelaars waarmee u inzicht krijgt in de prestaties en het gebruik van uw livetoepassing. Application Insights ondersteunt Java-apps die worden uitgevoerd op Linux, Unix of Windows.

Vereiste voorwaarden

U hebt het volgende nodig:

Een Application Insights-instrumentatiesleutel ophalen

  1. Meld u aan bij het Azure-portaal.

  2. Maak in Azure Portal een Application Insights-resource. Stel het toepassingstype in op Java-webtoepassing.

  3. Zoek de instrumentatiesleutel van de nieuwe resource. U moet deze sleutel binnenkort in uw codeproject plakken.

    Schermopname van het deelvenster Overzicht voor een Application Insights-resource in de Azure-portal met de instrumentatiesleutel uitgelicht.

De Application Insights SDK voor Java toevoegen aan uw project

Kies uw projecttype.

Als uw project al is ingesteld voor het gebruik van Maven voor build, voegt u de volgende code samen met uw pom.xml-bestand . Vernieuw vervolgens de projectafhankelijkheden om de binaire bestanden te downloaden.

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

Veelgestelde vragen

  • Wat is de relatie tussen de -web-auto, -weben -core onderdelen?

    • applicationinsights-web-auto biedt u metrische gegevens waarmee het aantal HTTP-servlet-aanvragen en reactietijden wordt bijgehouden door het Application Insights-servlet-filter automatisch te registreren tijdens runtime.
    • applicationinsights-web biedt ook metrische gegevens waarmee het aantal HTTP-servlet-aanvragen en reactietijden wordt bijgehouden. Maar handmatige registratie van het Application Insights-servlet-filter in uw toepassing is vereist.
    • applicationinsights-core geeft u de bare API, bijvoorbeeld als uw toepassing niet is gebaseerd op servlet.
  • Hoe moet ik de SDK bijwerken naar de nieuwste versie?

    • Vanaf november 2020 raden we u aan Application Insights Java 3.x te gebruiken voor het bewaken van Java-toepassingen. Zie Application Insights Java 3.x voor meer informatie over hoe u aan de slag kunt gaan.

Een ApplicationInsights.xml-bestand toevoegen

Voeg ApplicationInsights.xml toe aan de map resources in uw project of zorg ervoor dat deze is toegevoegd aan het pad van de implementatieklasse van uw project. Kopieer de volgende XML erin.

Vervang de instrumentatiesleutel door de instrumentatiesleutel die u hebt gekregen uit Azure Portal.

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

Optioneel kan het configuratiebestand zich op elke locatie bevinden die toegankelijk is voor uw toepassing. De systeemeigenschap -Dapplicationinsights.configurationDirectory geeft de map op die ApplicationInsights.xmlbevat. Een configuratiebestand dat zich op E:\myconfigs\appinsights\ApplicationInsights.xml bevindt, wordt bijvoorbeeld geconfigureerd met de eigenschap -Dapplicationinsights.configurationDirectory="E:\myconfigs\appinsights".

  • De instrumentatiesleutel wordt samen met elk item van telemetrie verzonden en geeft Application Insights aan om deze weer te geven in uw resource.
  • Het HTTP-verzoekonderdeel is optioneel. Er wordt automatisch telemetrie verzonden over aanvragen en reactietijden naar de portal.
  • Gebeurteniscorrelatie is een aanvulling op het HTTP-aanvraagonderdeel. Er wordt een id toegewezen aan elke aanvraag die door de server wordt ontvangen. Vervolgens wordt deze id als eigenschap toegevoegd aan elk item van telemetrie als de eigenschap Operation.Id. Hiermee kunt u de telemetrie correleren die aan elke aanvraag is gekoppeld door een filter in te stellen in diagnostische zoekopdracht.

Alternatieve manieren om de instrumentatiesleutel in te stellen

Application Insights SDK zoekt in deze volgorde naar de sleutel:

  • Systeemeigenschap: -DAPPINSIGHTS_INSTRUMENTATIONKEY=your_ikey
  • Omgevingsvariabele: APPINSIGHTS_INSTRUMENTATIONKEY
  • Configuratiebestand: ApplicationInsights.xml

U kunt deze ook instellen in code:

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

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

Agent toevoegen

Installeer de Java-agent om uitgaande HTTP-aanroepen, JDBC-query's, toepassingslogboeken en betere naamgeving van bewerkingen vast te leggen.

Uw toepassing uitvoeren

Voer deze uit in de foutopsporingsmodus op uw ontwikkelcomputer of publiceer deze naar uw server.

Uw telemetrie weergeven in Application Insights

Ga terug naar uw Application Insights-resource in Azure Portal.

Gegevens voor HTTP-aanvragen worden weergegeven in het overzichtsvenster. Als deze niet aanwezig is, wacht u een paar seconden en selecteert u Vernieuwen.

Schermopname van overzichtsvoorbeeldgegevens.

Meer informatie over metrische gegevens.

Klik door een grafiek om gedetailleerdere geaggregeerde metrische gegevens weer te geven.

Schermopname van het deelvenster Application Insights-fouten met grafieken.

Exemplaargegevens

Klik op een specifiek aanvraagtype om afzonderlijke exemplaren weer te geven.

Schermopname van het inzoomen op een specifieke voorbeeldweergave.

Log Analytics: Krachtige querytaal

Naarmate u meer gegevens verzamelt, kunt u query's uitvoeren om gegevens samen te voegen en afzonderlijke exemplaren te vinden. Log Analytics is een krachtig hulpprogramma voor inzicht in prestaties en gebruik, en voor diagnostische doeleinden.

Schermopname van een voorbeeld van Log Analytics in Azure Portal.

Uw app installeren op de server

Publiceer nu uw app op de server, laat mensen deze gebruiken en bekijk hoe de telemetrie wordt weergegeven in de portal.

  • Zorg ervoor dat uw firewall uw toepassing toestaat om telemetrie te verzenden naar deze poorten:

    • dc.services.visualstudio.com:443
    • f5.services.visualstudio.com:443
  • Als uitgaand verkeer moet worden gerouteerd via een firewall, definieert u de systeemeigenschappen http.proxyHost en http.proxyPort.

  • Installeer op Windows-servers:

Azure App Service, Azure Kubernetes Service, configuratie van VM's

De beste en eenvoudigste methode om uw toepassingen te bewaken die worden uitgevoerd op azure-resourceproviders is het gebruik van Application Insights Java 3.x.

Uitzonderingen en aanvraagfouten

Niet-verwerkte uitzonderingen en aanvraagfouten worden automatisch verzameld door het Application Insights-webfilter.

Als u gegevens over andere uitzonderingen wilt verzamelen, kunt u aanroepen invoegen om trackException() in uw code in te voegen.

Methodeaanroepen en externe afhankelijkheden bewaken

Installeer de Java-agent voor door het logboek opgegeven interne methoden en aanroepen via JDBC, met timinggegevens en voor automatische naamgeving van bewerkingen.

Gedistribueerde W3C-tracering

De Application Insights Java SDK ondersteunt nu gedistribueerde W3C-tracering.

De binnenkomende SDK-configuratie wordt verder uitgelegd in telemetriecorrelatie in Application Insights.

De uitgaande SDK-configuratie wordt gedefinieerd in het AI-Agent.xml-bestand .

Prestatiestatistieken

SelecteerMetrische gegevens onderzoeken> om een reeks prestatiemeteritems weer te geven.

Schermopname van het Metricavenster voor een Application Insights-resource in de Azure-portal met 'process private bytes' geselecteerd.

Verzameling prestatiemeteritems aanpassen

Als u het verzamelen van de standaardset prestatiemeteritems wilt uitschakelen, voegt u de volgende code toe onder het hoofdknooppunt van het ApplicationInsights.xml-bestand :

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

Meer prestatiemeteritems verzamelen

U kunt meer prestatiemeteritems opgeven die moeten worden verzameld.

JMX-tellers (weergegeven door de virtuele Java-machine)
    <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: De naam die wordt weergegeven in de Application Insights-portal.
  • objectName: De objectnaam van JMX.
  • attribute: Het kenmerk van de JMX-objectnaam die moet worden opgehaald.
  • type (optioneel): Het type kenmerk van het JMX-object:
    • Standaard: een eenvoudig type, zoals int of long.
    • composite: De prestatiemetergegevens zijn in de indeling van Attribute.Data.
    • tabular: De prestatiemeteritemgegevens hebben de indeling van een tabelrij.
Windows-prestatietellers

Elk Windows-prestatiecounter is lid van een categorie op dezelfde manier als een veld een lid is van een klasse. Categorieën kunnen globaal zijn of genummerde of benoemde exemplaren hebben.

    <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: De naam die wordt weergegeven in de Application Insights-portal.
  • categoryName: De prestatiemeteritemcategorie (prestatieobject) waaraan dit prestatiemeteritem is gekoppeld.
  • counterName: De naam van het prestatiemeteritem.
  • instanceName: De naam van het prestatieteller categorie-exemplaar of een lege tekenreeks (""), als de categorie één exemplaar bevat. Als categoryNameProcess is en de prestatiemeter die u wilt verzamelen afkomstig is van het huidige JVM-proces waarop uw app draait, specificeert u "__SELF__".

Unix-prestatiemeteritems

Installeer collectd met de Application Insights-invoegtoepassing om een groot aantal systeem- en netwerkgegevens te verkrijgen.

Gebruikers- en sessiegegevens ophalen

Nu verzendt u telemetrie vanaf uw webserver. Als u de volledige weergave van uw toepassing van 360 graden wilt bekijken, kunt u meer bewaking toevoegen:

Verzend uw eigen telemetrie

Nu u de SDK hebt geïnstalleerd, kunt u de API gebruiken om uw eigen telemetrie te verzenden:

Webtests voor beschikbaarheid

Application Insights kan uw website regelmatig testen om te controleren of deze goed reageert.

Meer informatie over het instellen van beschikbaarheidswebtests.

Probleemoplossingsproces

Zie het speciale artikel over probleemoplossing.

Connectiviteit testen tussen uw toepassingshost en de opnameservice

De SDKs en agents van Application Insights verzenden telemetrie zodat deze als REST-aanroepen naar onze opname-eindpunten kan worden verzonden. U kunt de connectiviteit vanaf uw webserver of hostmachine van uw toepassing naar de ingestiedienst-eindpunten testen door gebruik te maken van onbewerkte REST-clients met PowerShell of curl-opdrachten. Zie Problemen met ontbrekende toepassingstelemetrie oplossen in Azure Monitor Application Insights.

Java-traceringslogboeken verkennen in Application Insights

Als u Logback of Log4J (v1.2 of v2.0) gebruikt voor tracering, kunt u uw traceringslogboeken automatisch laten verzenden naar Application Insights, waar u ze kunt verkennen en zoeken.

Aanbeveling

U moet uw Application Insights-instrumentatiesleutel slechts één keer instellen voor uw toepassing. Als u een framework zoals Java Spring gebruikt, hebt u de sleutel mogelijk al ergens anders geregistreerd in de configuratie van uw app.

De Java-agent van Application Insights gebruiken

De Application Insights Java-agent legt standaard automatisch logboekregistratie vast die op het WARN niveau en hoger is uitgevoerd.

U kunt de drempelwaarde wijzigen voor logboekregistratie die wordt vastgelegd met behulp van het AI-Agent.xml-bestand :

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

U kunt de logboekregistratie van de Java-agent uitschakelen met behulp van het AI-Agent.xml-bestand :

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

Alternatives

In plaats van de Java-agent te gebruiken, kunt u deze instructies volgen.

De Java SDK installeren

Volg de instructies voor het installeren van de Application Insights SDK voor Java, als u dat nog niet hebt gedaan.

Logboekregistratiebibliotheken toevoegen aan uw project

Kies de juiste manier voor uw project.

Maven

Als uw project al is ingesteld voor het gebruik van Maven voor het bouwen, voegt u een van de volgende codefragmenten samen in uw pom.xml-bestand . Vernieuw vervolgens de projectafhankelijkheden om de binaire bestanden te downloaden.

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

Als uw project al is ingesteld voor het gebruik van Gradle voor build, voegt u een van de volgende regels toe aan de dependencies groep in uw build.gradle-bestand . Vernieuw vervolgens de projectafhankelijkheden om de binaire bestanden te downloaden.

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

Volg de richtlijnen om Application Insights Java SDK handmatig te installeren en het JAR-bestand te downloaden. Selecteer op de pagina Maven Central de jar koppeling in de downloadsectie voor de juiste toevoegfunctie. Voeg het gedownloade appender-jar-bestand toe aan het project.

Logger Downloaden Bibliotheek
Logback Jar voor toevoegen aan logboeken 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

De toevoegfunctie toevoegen aan uw framework voor logboekregistratie

Als u traceringen wilt ophalen, voegt u het relevante codefragment samen met het logback- of Log4J-configuratiebestand.

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>

Application Insights-appenders kunnen door elke geconfigureerde logger worden aangeroepen en niet noodzakelijkerwijs door de hoofdlogger, zoals blijkt uit de voorgaande codevoorbeelden.

Verken uw traceringen in de Application Insights-portal

Nu u uw project hebt geconfigureerd voor het verzenden van traceringen naar Application Insights, kunt u deze traceringen bekijken en doorzoeken in de Application Insights-portal in het deelvenster Zoeken .

Uitzonderingen die via loggers worden ingediend, worden weergegeven in de portal als telemetrie van uitzonderingen.

Schermopname van het deelvenster Zoeken naar een Application Insights-resource in Azure Portal.

Afhankelijkheden, onderschepte uitzonderingen en uitvoeringstijden van methoden in Java-web-apps bewaken

Als u uw Java-web-app hebt geïnstrueerd met Application Insights SDK, kunt u de Java-agent gebruiken om meer inzicht te krijgen, zonder codewijzigingen:

  • Afhankelijkheden: gegevens over aanroepen die door uw toepassing worden uitgevoerd naar andere onderdelen, waaronder:

    • Uitgaande HTTP-aanroepen: aanroepen via Apache HttpClient, OkHttpen java.net.HttpURLConnection worden vastgelegd.
    • Redis-aanroepen: oproepen die via de Jedis-client worden gedaan, worden vastgelegd.
    • JDBC-query's: Voor MySQL en PostgreSQL, als de aanroep langer duurt dan 10 seconden, rapporteert de agent het queryplan.
  • Logboekregistratie van toepassingen: uw toepassingslogboeken vastleggen en correleren met HTTP-aanvragen en andere telemetriegegevens:

    • Log4j 1.2
    • Log4j2
    • Logback
  • Betere naamgeving van bewerkingen: wordt gebruikt voor het samenvoegen van aanvragen in de portal.

    • Lente: Gebaseerd op @RequestMapping.
    • JAX-RS: Gebaseerd op @Path.

Als u de Java-agent wilt gebruiken, installeert u deze op uw server. Uw web-apps moeten worden geïnstrueerd met de Application Insights Java SDK.

De Application Insights-agent voor Java installeren

  1. Download de 2.x-agent op de computer waarop uw Java-server wordt uitgevoerd. Zorg ervoor dat de versie van de 2.x Java-agent die u gebruikt overeenkomt met de versie van de 2.x Application Insights Java SDK die u gebruikt.

  2. Bewerk het opstartscript van de toepassingsserver en voeg het volgende JVM-argument toe:

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

    Bijvoorbeeld in Tomcat op een Linux-computer:

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

  3. Start de toepassingsserver opnieuw op.

De agent configureren

Maak een bestand met de naamAI-Agent.xml en plaats het in dezelfde map als het JAR-bestand van de agent.

Stel de inhoud van het XML-bestand in. Bewerk het volgende voorbeeld om de gewenste functies op te nemen of weg te laten.

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

Meer configuratie (Spring Boot)

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

Voer voor Azure App Service de volgende stappen uit:

  1. Selecteer Instellingen>Toepassingsinstellingen.

  2. Voeg onder App-instellingen een nieuw sleutelwaardepaar toe:

    • Sleutel: JAVA_OPTS
    • Waarde: -javaagent:D:/home/site/wwwroot/applicationinsights-agent-2.6.4.jar

    De agent moet als een resource worden gepackageerd in uw project, zodat deze in de map D:/home/site/wwwroot/ terechtkomt. Als u wilt controleren of uw agent zich in de juiste App Service-map bevindt, gaat u naar Ontwikkelhulpprogramma's Geavanceerde hulpmiddelen Foutopsporingsconsole en bekijkt u de inhoud van de sitemap.

  3. Sla de instellingen op en start de app opnieuw op. Deze stappen zijn alleen van toepassing op app-services die worden uitgevoerd in Windows.

Opmerking

AI-Agent.xml en het JAR-bestand van de agent moeten zich in dezelfde map bevinden. Ze worden vaak samengebracht in de map /resources van het project.

Gedistribueerde W3C-tracering inschakelen

Voeg het volgende fragment toe aan AI-Agent.xml:

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

Opmerking

Achterwaartse compatibiliteitsmodus is standaard ingeschakeld. De enableW3CBackCompat parameter is optioneel en moet alleen worden gebruikt wanneer u deze wilt uitschakelen.

In het ideale geval is dit het geval wanneer al uw services zijn bijgewerkt naar nieuwere versies van SDK's die het W3C-protocol ondersteunen. U wordt aangeraden zo snel mogelijk over te stappen op nieuwere versies van SDK's met W3C-ondersteuning.

Zorg ervoor dat zowel binnenkomende als uitgaande configuraties (agent) precies hetzelfde zijn.

De gegevens weergeven

In de Application Insights-resource worden geaggregeerde uitvoeringstijden voor externe afhankelijkheid en methoden weergegeven onder de tegel Prestaties.

Als u wilt zoeken naar afzonderlijke exemplaren van afhankelijkheids-, uitzonderings- en methoderapporten, opent u Zoeken.

Meer informatie over het diagnosticeren van afhankelijkheidsproblemen.

Vragen of problemen?

Gebruik de volgende resources:

Telemetrie filteren in uw Java-web-app

Filters bieden een manier om de telemetrie te selecteren die uw Java-web-app naar Application Insights verzendt. Er zijn enkele kant-en-klare filters die u kunt gebruiken. U kunt ook uw eigen aangepaste filters schrijven.

De ingebouwde filters zijn:

  • Ernstniveau traceren.
  • Specifieke URL's, trefwoorden of antwoordcodes.
  • Snelle antwoorden. Met andere woorden, aanvragen waarop uw app snel heeft gereageerd.
  • Specifieke gebeurtenisnamen.

Opmerking

Filters vertekenen de meetwaarden van uw app. U kunt bijvoorbeeld besluiten dat u trage reacties wilt diagnosticeren door een filter in te stellen om snelle reactietijden te negeren. Maar u moet er rekening mee houden dat de gemiddelde reactietijden die door Application Insights worden gerapporteerd, dan langzamer zijn dan de werkelijke snelheid. Het aantal aanvragen is ook kleiner dan het werkelijke aantal.

Als dit een probleem is, gebruikt u in plaats daarvan Sampling .

Filters instellen

Voeg in ApplicationInsights.xmleen TelemetryProcessors sectie toe zoals in dit voorbeeld:


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

Inspecteer de ingebouwde processorset volledig.

Ingebouwde filters

In deze sectie worden de ingebouwde filters besproken die beschikbaar zijn.

Filter voor metrische telemetrie


           <Processor type="MetricTelemetryFilter">
                  <Add name="NotNeeded" value="metric1,metric2"/>
           </Processor>
  • NotNeeded: Door komma's gescheiden lijst met aangepaste metrische namen

Paginaweergave-telemetriefilter


           <Processor type="PageViewTelemetryFilter">
                  <Add name="DurationThresholdInMS" value="500"/>
                  <Add name="NotNeededNames" value="page1,page2"/>
                  <Add name="NotNeededUrls" value="url1,url2"/>
           </Processor>
  • DurationThresholdInMS: De duur verwijst naar de tijd die nodig is om de pagina te laden. Als deze parameter is ingesteld, worden pagina's die sneller zijn geladen dan deze keer niet gerapporteerd.
  • NotNeededNames: Door komma's gescheiden lijst met paginanamen.
  • NotNeededUrls: door komma's gescheiden lijst met URL-fragmenten. Bijvoorbeeld filtert "home" alle pagina's met 'home' in de URL eruit.

Telemetriefilter aanvragen


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

Synthetische bronfilter

Hiermee filtert u alle telemetriegegevens met waarden in de SyntheticSource eigenschap. Aanvragen van bots, webcrawlers en beschikbaarheidstests worden opgenomen.

Filtert telemetrie voor alle synthetische aanvragen uit.


           <Processor type="SyntheticSourceFilter" />

Hiermee filtert u telemetrie voor specifieke synthetische bronnen:


           <Processor type="SyntheticSourceFilter" >
                  <Add name="NotNeeded" value="source1,source2"/>
           </Processor>
  • NotNeeded: Door komma's gescheiden lijst met synthetische bronnamen

Telemetrie-gebeurtenisfilter

Hiermee filtert u aangepaste gebeurtenissen die zijn geregistreerd met TrackEvent():


           <Processor type="TelemetryEventFilter" >
                  <Add name="NotNeededNames" value="event1, event2"/>
           </Processor>
  • NotNeededNames: Door komma's gescheiden lijst met gebeurtenisnamen

Telemetriefilter traceren

Hiermee filtert u logboektraceringen die zijn vastgelegd met TrackTrace() of een verzamelaar van het logframework:


           <Processor type="TraceTelemetryFilter">
                  <Add name="FromSeverityLevel" value="ERROR"/>
           </Processor>
  • De FromSeverityLevel geldige waarden zijn:

    • UIT: Filtert alle traceringen uit.
    • TRACE: Geen filters. Is gelijk aan TRACE-niveau.
    • INFO: Filtert TRACE-niveau uit.
    • WAARSCHUWING: Filtert TRACE en INFO uit.
    • FOUT: Filtert WAARSCHUWEN, INFO en TRACE UIT.
    • KRITIEK: Filtert alles behalve KRITIEK.

Aangepaste filters

In de volgende secties ziet u de stappen voor het maken van uw eigen aangepaste filters.

Codeer uw filter

Maak in uw code een klasse die het volgende TelemetryProcessorimplementeert:


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

Het filter aanroepen in het configuratiebestand

Nu in ApplicationInsights.xml:



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

Uw filter aanroepen (Java Spring)

Voor toepassingen die zijn gebaseerd op het Spring-framework, moeten aangepaste telemetrieprocessors als een bean in uw hoofdtoepassingsklasse worden geregistreerd. Ze worden vervolgens automatisch geconfigureerd wanneer de toepassing wordt gestart.

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

U maakt uw eigen filterparameters in application.properties. Vervolgens gebruikt u het externe configuratieframework van Spring Boot om deze parameters door te geven aan uw aangepaste filter.

Probleemoplossingsproces

In deze sectie vindt u een tip voor probleemoplossing.

Mijn filter werkt niet

Controleer of u geldige parameterwaarden hebt opgegeven. Duur moet bijvoorbeeld gehele getallen zijn. Ongeldige waarden zorgen ervoor dat het filter wordt genegeerd. Als uw aangepaste filter een uitzondering opwerpt vanuit een constructor of instelmethode, wordt deze genegeerd.

verzameld: metrische gegevens over Linux-prestaties in Application Insights (afgeschaft)

Als u metrische gegevens over de prestaties van het Linux-systeem in Application Insights wilt verkennen, installeert u verzameld samen met de Application Insights-invoegtoepassing. Deze opensource-oplossing verzamelt verschillende systeem- en netwerkstatistieken.

Normaal gesproken gebruikt u de optie collectd als u uw Java-webservice al hebt geïnstrumenteerd met Application Insights. Hiermee beschikt u over meer gegevens om de prestaties van uw app te verbeteren of problemen te diagnosticeren.

Uw instrumentatiesleutel ophalen

Open in Azure Portal de Application Insights-resource waar u de gegevens wilt weergeven. U kunt ook een nieuwe resource maken.

Maak een kopie van de instrumentatiesleutel, waarmee de resource wordt geïdentificeerd.

Schermopname van het overzichtsvenster voor een Application Insights-resource in Azure Portal met de instrumentatiesleutel gemarkeerd.

Verzamelde en de invoegtoepassing installeren

Op uw Linux-servercomputers:

  1. Installeer verzamelde versie 5.4.0 of hoger.
  2. Download de door Application Insights verzamelde writer-invoegtoepassing. Noteer het versienummer.
  3. Kopieer het invoegtoepassingsjar-bestand naar /usr/share/collectd/java.
  4. Bewerken /etc/collectd/collectd.conf:
    • Zorg ervoor dat de Java-invoegtoepassing is ingeschakeld.

    • Werk de JVMArg bij zodat deze java.class.path het volgende jar-bestand bevat. Werk het versienummer bij zodat dit overeenkomt met het versienummer dat u hebt gedownload:

      • /usr/share/collectd/java/applicationinsights-collectd-1.0.5.jar
    • Voeg dit fragment toe met behulp van de instrumentatiesleutel van uw resource:

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

      Dit maakt deel uit van een voorbeeldconfiguratiebestand:

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

Configureer andere verzamelde invoegtoepassingen, die verschillende gegevens uit verschillende bronnen kunnen verzamelen.

Start opnieuw collectd op basis van de handleiding.

De gegevens weergeven in Application Insights

Open metrische gegevens in uw Application Insights-resource en voeg grafieken toe. Selecteer de metrische gegevens die u wilt zien in de categorie Aangepast .

De metrische gegevens worden standaard geaggregeerd op alle hostcomputers waaruit de metrische gegevens zijn verzameld. Als u de metrische gegevens per host wilt weergeven, schakelt u Groeperen in in het deelvenster Grafiekdetails en kiest u ervoor om te groeperen op CollectD-Host.

Uploaden van specifieke statistieken uitsluiten

De Application Insights-invoegtoepassing verzendt standaard alle gegevens die worden verzameld door alle ingeschakelde collectd read invoegtoepassingen.

Gegevens uitsluiten van specifieke invoegtoepassingen of gegevensbronnen:

  • Bewerk het configuratiebestand.

  • Voeg in <Plugin ApplicationInsightsWriter> richtlijnregels toe zoals de regels in de volgende tabel:

    Richtlijn Gevolg
    Exclude disk Sluit alle gegevens uit die door de disk invoegtoepassing worden verzameld.
    Exclude disk:read,write Sluit de genoemde bronnen read en write uit van de invoegtoepassing disk.

Scheid richtlijnen door een nieuwe regel toe te voegen.

Problemen?

Deze sectie bevat tips voor het oplossen van problemen.

Ik zie geen gegevens in de portal

Probeer deze opties:

  • Open Zoeken om te zien of de ruwe gebeurtenissen zijn binnengekomen. Soms duurt het langer om ze weer te geven in Metrics Explorer.
  • Mogelijk moet u firewall-uitzonderingen instellen voor uitgaande gegevens.
  • Tracering inschakelen in de Application Insights-invoegtoepassing. Voeg deze regel toe binnen <Plugin ApplicationInsightsWriter>:
    • SDKLogger true
  • Open een terminal en start collectd in de verbose modus om eventuele gerapporteerde problemen te zien.
    • sudo collectd -f

Bekend probleem

De Application Insights-invoegtoepassing voor schrijven is niet compatibel met bepaalde leesinvoegtoepassingen. Sommige invoegtoepassingen verzenden NaNsoms, maar de Application Insights-invoegtoepassing verwacht een drijvendekommagetal.

  • Symptoom: In het collectd logboek worden fouten weergegeven die "AI: ... Syntaxfout: Onverwacht token N." omvatten.
  • Tijdelijke oplossing: sluit gegevens uit die zijn verzameld door de probleemschrijf-invoegtoepassingen.

Met micrometertoepassingsbewaking worden metrische gegevens gemeten voor toepassingscode op basis van JVM en kunt u de gegevens exporteren naar uw favoriete bewakingssystemen. In deze sectie leert u hoe u Micrometer gebruikt met Application Insights voor zowel Spring Boot- als niet-Spring Boot-toepassingen.

Spring Boot 1.5x gebruiken

Voeg de volgende afhankelijkheden toe aan uw pom.xml - of build.gradle-bestand :

Volg deze stappen:

  1. Werk het pom.xml bestand van uw Spring Boot-toepassing bij en voeg daarin de volgende afhankelijkheden toe:

    <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. Werk het bestand application.properties of YML bij met de Instrumentatiesleutel van Application Insights met behulp van de volgende eigenschap:

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

  3. Bouw uw toepassing en voer deze uit.

Met de voorgaande stappen kunt u aan de slag met vooraf geaggregeerde metrische gegevens die automatisch worden verzameld in Azure Monitor.

Spring 2.x gebruiken

Voeg de volgende afhankelijkheden toe aan uw pom.xml - of build.gradle-bestand :

Volg deze stappen:

  1. Werk het pom.xml-bestand van uw Spring Boot-toepassing bij en voeg de volgende afhankelijkheid toe:

    <dependency> 
          <groupId>com.microsoft.azure</groupId>
          <artifactId>azure-spring-boot-metrics-starter</artifactId>
          <version>2.0.7</version>
    </dependency>
    
  2. Werk het bestand application.properties of YML bij met de Instrumentatiesleutel van Application Insights met behulp van de volgende eigenschap:

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

  3. Bouw uw toepassing en voer deze uit.

Met de voorgaande stappen moet u aan de slag kunnen gaan met vooraf geaggregeerde metrische gegevens die automatisch worden verzameld in Azure Monitor. Zie het leesmij-bestand op GitHub voor meer informatie over het verfijnen van de Application Insights Spring Boot Starter.

Standaard metrische gegevens:

  • Automatisch geconfigureerde metrieken voor Tomcat, JVM, Logback-metrieken, Log4J Metrics, Uptime Metrics, Processor Metrics en FileDescriptorMetrics.
  • Als Netflix Hystrix bijvoorbeeld aanwezig is op het klaspad, krijgen we die metrische gegevens ook.
  • De volgende metrische gegevens kunnen beschikbaar zijn door de respectieve bonen toe te voegen:
    • CacheMetrics (CaffeineCache, EhCache2, GuavaCache, , HazelcastCacheen JCache)
    • DataBaseTableMetrics
    • HibernateMetrics
    • JettyMetrics
    • OkHttp3 Statistieken
    • Kafka Statistieken

Automatische verzameling met metrische gegevens uitschakelen:

  • JVM-metrieken
    • management.metrics.binders.jvm.enabled=false
  • Logback Metrieken
    • management.metrics.binders.logback.enabled=false
  • Uptime-statistieken
    • management.metrics.binders.uptime.enabled=false
  • Metrische processorgegevens:
    • management.metrics.binders.processor.enabled=false
  • FileDescriptorMetrics:
    • management.metrics.binders.files.enabled=false
  • Hystrix Metrics if library on classpath:
    • management.metrics.binders.hystrix.enabled=false
  • AspectJ Metrics if library on classpath:
    • spring.aop.enabled=false

Opmerking

Geef de voorgaande eigenschappen op in de application.properties of application.yml bestand van uw Spring Boot-toepassing.

Micrometer gebruiken met niet-Spring Boot-webtoepassingen

Voeg de volgende afhankelijkheden toe aan uw pom.xml - of build.gradle-bestand :

Volg deze stappen:

  1. Voeg de volgende afhankelijkheden toe aan uw pom.xml - of build.gradle-bestand :

        <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. Als u dit nog niet hebt gedaan, voegt u het ApplicationInsights.xml-bestand toe aan de map resources. Zie Een ApplicationInsights.xml-bestand toevoegen voor meer informatie.

  3. Voorbeeldklasse Servlet (verzendt een metrische timer):

        @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. Voorbeeldconfiguratieklasse:

         @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) {
    
           }
         }
    

Zie de Micrometer-documentatie voor meer informatie over metrische gegevens.

Andere voorbeeldcode voor het maken van verschillende typen metrische gegevens vindt u in de officiële Micrometer GitHub-opslagplaats.

Meer verzameling metrische gegevens binden

In de volgende secties ziet u hoe u meer metrische gegevens kunt verzamelen.

SpringBoot/Spring

Maak een bean van de respectieve metrische categorie. Stel dat u metrische gegevens van Guava Cache nodig hebt:

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

Verschillende metrische gegevens zijn niet standaard ingeschakeld, maar kunnen op de voorgaande manier worden gebonden. Zie de Micrometer GitHub-opslagplaats voor een volledige lijst.

Niet-Spring-apps

Voeg de volgende bindingscode toe aan het configuratiebestand:

    New GuavaCacheMetrics().bind(registry);

Kern-API voor aangepaste gebeurtenissen en metrische gegevens

Voeg een paar regels code in uw toepassing in om erachter te komen wat gebruikers ermee doen of om problemen vast te stellen. U kunt telemetrie verzenden vanuit apparaat- en bureaublad-apps, webclients en webservers. Gebruik de Application Insights-kerntelemetrie-API om aangepaste gebeurtenissen en metrische gegevens en uw eigen versies van standaardtelemetrie te verzenden. Deze API is dezelfde API die door de standaard Application Insights-gegevensverzamelaars wordt gebruikt.

API-samenvatting

De kern-API is uniform op alle platforms, afgezien van enkele variaties zoals GetMetric (alleen.NET).

Methode Gebruikt voor
TrackPageView Pagina's, schermen, vensters of formulieren.
TrackEvent Gebruikersacties en andere gebeurtenissen. Wordt gebruikt om gebruikersgedrag bij te houden of om de prestaties te bewaken.
TrackMetric Prestatiemetingen, zoals wachtrijlengten die niet zijn gerelateerd aan specifieke gebeurtenissen.
TrackException Het registreren van uitzonderingen voor diagnose. Traceer waar ze zich voordoen ten opzichte van andere gebeurtenissen en analyseer stacktraces.
TrackRequest Logboekregistratie van de frequentie en duur van serveraanvragen voor prestatieanalyse.
TrackTrace Diagnostische logboekberichten voor bronnen. U kunt ook logboeken van derden vastleggen.
TrackDependency Logboekregistratie van de duur en frequentie van aanroepen naar externe onderdelen waarvan uw app afhankelijk is.

U kunt eigenschappen en metrische gegevens koppelen aan de meeste van deze telemetriegesprekken.

Vereiste voorwaarden

Als u nog geen referentie hebt naar de Application Insights SDK:

  • Voeg de Application Insights SDK toe aan uw project.

  • Neem in de code van uw apparaat of webserver het volgende op:

    import com.microsoft.applicationinsights.TelemetryClient;
    

Een TelemetryClient-exemplaar ophalen

Haal een exemplaar op van TelemetryClient:

private TelemetryClient telemetry = new TelemetryClient();

TelemetryClient is thread veilig.

Opmerking

Als u Azure Functions v2+ of Azure WebJobs v3+ gebruikt, zie Azure Functions monitoren.

Mogelijk wilt u meer exemplaren maken van TelemetryClient voor andere modules van uw app. U kunt bijvoorbeeld één TelemetryClient instantie in uw middleware-klasse gebruiken om gebeurtenissen met betrekking tot de bedrijfslogica te rapporteren. U kunt eigenschappen instellen, zoals UserId en DeviceId om de machine te identificeren. Deze informatie wordt gekoppeld aan alle gebeurtenissen die door het exemplaar worden verzonden.

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

TrackEvent

In Application Insights is een aangepaste gebeurtenis een gegevenspunt dat u in Metrics Explorer kunt weergeven als een geaggregeerd aantal en in Diagnostische zoekopdrachten als afzonderlijke exemplaren. (Het is niet gerelateerd aan MVC of andere framework -gebeurtenissen.)

Voeg TrackEvent aanroepen in uw code in om verschillende gebeurtenissen te tellen. U kunt bijvoorbeeld bijhouden hoe vaak gebruikers een bepaalde functie kiezen. Of misschien wilt u weten hoe vaak ze bepaalde doelen bereiken of specifieke soorten fouten maken.

Verzend bijvoorbeeld in een game-app een gebeurtenis wanneer een gebruiker het spel wint:

telemetry.trackEvent("WinGame");

Aangepaste gebeurtenissen in Log Analytics

De telemetrie is beschikbaar in de customEvents tabel op het tabblad Application Insights-logboeken of de gebruikservaring. Gebeurtenissen kunnen afkomstig zijn van trackEvent(..) of de Click Analytics Auto-collection plugin.

Als steekproeven worden uitgevoerd, wordt in de itemCount eigenschap een waarde weergegeven die groter is dan 1. Betekent bijvoorbeeld itemCount==10 dat van 10 aanroepen naar trackEvent(), het steekproefproces slechts één van hen heeft verzonden. Als u een correct aantal aangepaste gebeurtenissen wilt ophalen, gebruikt u code zoals customEvents | summarize sum(itemCount).

Opmerking

itemCount heeft een minimumwaarde van één; de record zelf vertegenwoordigt een vermelding.

TrackMetric

Application Insights kan metrische gegevens weergeven die niet zijn gekoppeld aan bepaalde gebeurtenissen. U kunt bijvoorbeeld een wachtrijlengte met regelmatige tussenpozen bewaken. Met metrische gegevens zijn de afzonderlijke metingen minder interessant dan de variaties en trends, en dus zijn statistische grafieken nuttig.

Als u metrische gegevens naar Application Insights wilt verzenden, kunt u de TrackMetric(..) API gebruiken. Er zijn twee manieren om een metrische waarde te verzenden:

  • Eén waarde. Telkens wanneer u een meting uitvoert in uw toepassing, verzendt u de bijbehorende waarde naar Application Insights.

    Stel dat u een metrische waarde hebt die het aantal items in een container beschrijft. Tijdens een bepaalde periode plaatst u eerst drie items in de container en vervolgens verwijdert u twee items. Daarom zou u TrackMetric twee keer aanroepen. Eerst geeft u de waarde 3 door en geeft u vervolgens de waarde -2door. In Application Insights worden beide waarden voor u opgeslagen.

  • Aggregatie. Wanneer u met metingen werkt, is elke afzonderlijke meting zelden interessant. In plaats daarvan is een samenvatting van wat er is gebeurd tijdens een bepaalde periode belangrijk. Een dergelijke samenvatting wordt aggregatie genoemd.

    In het voorgaande voorbeeld is 1 de geaggregeerde metrische som voor die periode en het aantal metrische waarden 2. Wanneer u de aggregatiebenadering gebruikt, roept TrackMetric u slechts één keer per periode aan en verzendt u de geaggregeerde waarden. We raden deze aanpak aan omdat deze de kosten en prestatieoverhead aanzienlijk kan verminderen door minder gegevenspunten naar Application Insights te verzenden, terwijl alle relevante informatie nog steeds wordt verzameld.

Voorbeelden van één waarde

Eén metrische waarde verzenden:

telemetry.trackMetric("queueLength", 42.0);

Aangepaste metrische gegevens in Log Analytics

De telemetrie is beschikbaar in de customMetrics tabel in Application Insights Analytics. Elke rij vertegenwoordigt een aanroep naar trackMetric(..) in uw app.

  • valueSum: De som van de metingen. Als u de gemiddelde waarde wilt ophalen, deelt u door valueCount.
  • valueCount: Het aantal metingen dat in deze trackMetric(..) aanroep is samengevoegd.

Opmerking

valueCount heeft een minimumwaarde van één; de record zelf vertegenwoordigt een vermelding.

Paginaweergaven

In een apparaat- of webapp wordt paginaweergavetelemetrie standaard verzonden wanneer elk scherm of elke pagina wordt geladen. Maar u kunt de standaardinstelling wijzigen om paginaweergaven op meer of verschillende tijdstippen bij te houden. In een app met tabbladen of deelvensters kunt u bijvoorbeeld een pagina bijhouden wanneer de gebruiker een nieuw deelvenster opent.

Gebruikers- en sessiegegevens worden verzonden als eigenschappen, samen met paginaweergaven, zodat de gebruikers- en sessiegrafieken tot leven komen wanneer er telemetriegegevens over de paginaweergave zijn.

Aangepaste paginaweergaven

telemetry.trackPageView("GameReviewPage");

Pagina-telemetrie in Log Analytics

In Log Analytics worden in twee tabellen gegevens uit browserbewerkingen weergegeven:

  • pageViews: bevat gegevens over de URL en paginatitel.
  • browserTimings: bevat gegevens over clientprestaties, zoals de tijd die nodig is om de binnenkomende gegevens te verwerken.

Ga als volgt te werk om te zien hoe lang het duurt voordat de browser verschillende pagina's verwerkt:

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

De populariteit van verschillende browsers ontdekken:

pageViews
| summarize count() by client_Browser

Als u paginaweergaven wilt koppelen aan AJAX-aanroepen, koppel met afhankelijkheden.

pageViews
| join (dependencies) on operation_Id

TrackRequest

De server-SDK gebruikt TrackRequest om HTTP-aanvragen te registreren.

U kunt deze ook zelf aanroepen als u aanvragen wilt simuleren in een context waarin de webservicemodule niet wordt uitgevoerd.

De aanbevolen manier om aanvraagtelemetrie te verzenden, is waar de aanvraag fungeert als een bewerkingscontext.

Bewerkingscontext

U kunt telemetrie-items aan elkaar correleren door ze te koppelen aan de bewerkingscontext. De standaardmodule voor het bijhouden van aanvragen doet dit voor uitzonderingen en andere gebeurtenissen die worden verzonden terwijl een HTTP-aanvraag wordt verwerkt. In Search and Analytics kunt u eenvoudig gebeurtenissen vinden die zijn gekoppeld aan de aanvraag met behulp van de bewerkings-id.

Telemetrie-items die binnen een bewerkingsbereik worden gerapporteerd, worden ondergeschikte componenten van een dergelijke bewerking. Bewerkingscontexten kunnen worden genest.

In Search wordt de bewerkingscontext gebruikt om de lijst Gerelateerde items te maken.

Schermopname van de lijst Gerelateerde items.

Aanvragen in Log Analytics

In Application Insights Analytics worden aanvragen weergegeven in de requests tabel.

Als steekproeven worden uitgevoerd, wordt in de itemCount eigenschap een waarde weergegeven die groter is dan 1. Betekent bijvoorbeeld itemCount==10 dat van 10 aanroepen naar trackRequest(), het steekproefproces slechts één van hen heeft verzonden. Als u een correct aantal aanvragen en de gemiddelde duur wilt ophalen die is gesegmenteerd op aanvraagnamen, gebruikt u code zoals:

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

TrackException

Uitzonderingen verzenden naar Application Insights:

De rapporten bevatten de stacktraceringen.

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

Uitzonderingen worden automatisch opgevangen, zodat u niet altijd expliciet hoeft aan te roepen TrackException .

Uitzonderingen in Log Analytics

In Application Insights Analytics worden uitzonderingen weergegeven in de exceptions tabel.

Als steekproeven worden uitgevoerd, wordt in de itemCount eigenschap een waarde weergegeven die groter is dan 1. Betekent bijvoorbeeld itemCount==10 dat van 10 aanroepen naar trackException(), het steekproefproces slechts één van hen heeft verzonden. Als u een correct aantal uitzonderingen wilt ophalen dat is gesegmenteerd op type uitzondering, gebruikt u code zoals:

exceptions
| summarize sum(itemCount) by type

De meeste belangrijke stackgegevens worden al geëxtraheerd in afzonderlijke variabelen, maar u kunt de details structuur uit elkaar trekken om meer te krijgen. Omdat deze structuur dynamisch is, moet u het resultaat casten naar het type dat u verwacht. Voorbeeld:

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

Als u uitzonderingen aan hun gerelateerde aanvragen wilt koppelen, gebruikt u een join:

exceptions
| join (requests) on operation_Id

TrackTrace

Gebruik TrackTrace dit om problemen te diagnosticeren door een 'breadcrumb trail' naar Application Insights te verzenden. U kunt segmenten met diagnostische gegevens verzenden en inspecteren in Diagnostisch zoeken.

Opmerking

In Java worden met de Java-agent van Application Insights automatisch logboeken verzameld en verzonden naar de portal.

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

Een diagnostische gebeurtenis registreren, zoals het invoeren of verlaten van een methode.

Kenmerk Description
message Diagnostische gegevens. Kan veel langer zijn dan een naam.
properties Mapping van tekenreeks naar tekenreeks. Er worden meer gegevens gebruikt om uitzonderingen in de portal te filteren . Standaard ingesteld op leeg.
severityLevel Ondersteunde waarden: SeverityLevel.ts.

U kunt zoeken op berichtinhoud, maar in tegenstelling tot eigenschapswaarden kunt u er niet op filteren.

De limiet voor de grootte message is veel hoger dan de limiet voor eigenschappen. Een voordeel hiervan TrackTrace is dat u relatief lange gegevens in het bericht kunt plaatsen. U kunt bijvoorbeeld POST-gegevens daar coderen.

U kunt ook een ernstniveau toevoegen aan uw bericht. En net als andere telemetrie kunt u eigenschapswaarden toevoegen om u te helpen bij het filteren of zoeken naar verschillende sets traceringen. Voorbeeld:

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

In Zoeken kunt u vervolgens eenvoudig alle berichten van een bepaald ernstniveau filteren die betrekking hebben op een bepaalde database.

Traceringen in Log Analytics

In Application Insights Analytics worden aanroepen weergegeven TrackTrace in de traces tabel.

Als steekproeven worden uitgevoerd, wordt in de itemCount eigenschap een waarde weergegeven die groter is dan 1. Betekent bijvoorbeeld itemCount==10 dat van 10 aanroepen naar trackTrace(), het steekproefproces slechts één van hen heeft verzonden. Als u een correct aantal traceringsoproepen wilt ophalen, gebruikt u code zoals traces | summarize sum(itemCount).

TrackDependency

Gebruik de TrackDependency aanroep om de reactietijden en slagingspercentages van aanroepen naar een extern codefragment bij te houden. De resultaten worden weergegeven in de afhankelijkheidsdiagrammen in de portal. Het volgende codefragment moet worden toegevoegd waar een afhankelijkheidsaanroep wordt gedaan.

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

Opmerking

In Java kunnen veel afhankelijkheidsaanroepen automatisch worden bijgehouden met behulp van de Application Insights Java-agent.

U gebruikt deze aanroep als u oproepen wilt bijhouden die niet door de automatische tracering worden geregistreerd.

Afhankelijkheden in Log Analytics

In Application Insights AnalyticstrackDependency worden aanroepen weergegeven in de dependencies tabel.

Als er steekproeven worden genomen , wordt in de itemCount eigenschap een waarde weergegeven die groter is dan 1. Betekent bijvoorbeeld itemCount==10 dat van 10 aanroepen naar trackDependency(), het steekproefproces slechts één van hen heeft verzonden. Als u een correct aantal afhankelijkheden wilt ophalen dat per doelonderdeel is gesegmenteerd, gebruikt u code zoals:

dependencies
| summarize sum(itemCount) by target

Als je afhankelijkheden aan hun gerelateerde aanvragen wilt koppelen, gebruik je een join.

dependencies
| join (requests) on operation_Id

Gegevens leegmaken

Normaal gesproken verzendt de SDK gegevens met vaste intervallen, meestal 30 seconden of wanneer de buffer vol is, wat meestal 500 items is. In sommige gevallen wilt u de buffer mogelijk leegmaken. Een voorbeeld is als u de SDK gebruikt in een toepassing die wordt afgesloten.

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

Opmerking

De Java SDK wordt automatisch leeggemaakt bij afsluiten van de toepassing.

Geverifieerde gebruikers

In een web-app worden gebruikers standaard geïdentificeerd door cookies . Een gebruiker kan meerdere keren worden geteld als hij of zij toegang heeft tot uw app vanaf een andere computer of browser of als ze cookies verwijderen.

Als gebruikers zich aanmelden bij uw app, kunt u een nauwkeuriger aantal krijgen door de geverifieerde gebruikers-id in de browsercode in te stellen. Het is niet nodig om de werkelijke aanmeldingsnaam van de gebruiker te gebruiken. Het hoeft alleen een id te zijn die uniek is voor die gebruiker. Het mag geen spaties of een van de tekens ,;=|bevatten.

De gebruikers-id wordt ook ingesteld in een sessiecooky en verzonden naar de server. Als de server-SDK is geïnstalleerd, wordt de geverifieerde gebruikers-id verzonden als onderdeel van de contexteigenschappen van zowel client- als servertelemetrie. Vervolgens kunt u erop filteren en zoeken.

Als uw app gebruikers in accounts groepeert, kunt u ook een id voor het account doorgeven. Dezelfde tekenbeperkingen gelden.

In Metrics Explorer kunt u een grafiek maken waarmee gebruikers, geverifieerde en gebruikersaccounts worden geteld.

U kunt ook zoeken naar clientgegevenspunten met specifieke gebruikersnamen en accounts.

Uw gegevens filteren, zoeken en segmenteren met behulp van eigenschappen

U kunt eigenschappen en metingen koppelen aan uw gebeurtenissen, metrische gegevens, paginaweergaven, uitzonderingen en andere telemetriegegevens.

Eigenschappen zijn tekenreekswaarden die u kunt gebruiken om uw telemetrie in de gebruiksrapporten te filteren. Als uw app bijvoorbeeld verschillende games biedt, kunt u de naam van het spel koppelen aan elke gebeurtenis, zodat u kunt zien welke games populairder zijn.

Er geldt een limiet van 8.192 voor de tekenreekslengte. Als u grote stukken gegevens wilt verzenden, gebruikt u de berichtparameter van TrackTrace.

Metrische gegevens zijn numerieke waarden die grafisch kunnen worden weergegeven. U kunt bijvoorbeeld zien of er een geleidelijke toename is van de scores die uw gamers behalen. De grafieken kunnen worden gesegmenteerd door de eigenschappen die met de gebeurtenis worden verzonden, zodat u afzonderlijke of gestapelde grafieken voor verschillende games kunt krijgen.

Metrische waarden moeten groter zijn dan of gelijk zijn aan 0 om correct weer te geven.

Er gelden enkele limieten voor het aantal eigenschappen, eigenschapswaarden en metrische gegevens die u kunt gebruiken.

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);

Belangrijk

Zorg ervoor dat u geen persoonsgegevens in eigenschappen opgeeft.

Waarschuwing

Gebruik niet hetzelfde exemplaar van het telemetrie-item (event in dit voorbeeld) om meerdere keren aan te roepen Track*() . Deze procedure kan ertoe leiden dat telemetrie wordt verzonden met een onjuiste configuratie.

Aangepaste metingen en eigenschappen in Log Analytics

In Log Analytics worden aangepaste metrische gegevens en eigenschappen weergegeven in de customMeasurements en customDimensions kenmerken van elke telemetrierecord.

Als u bijvoorbeeld een eigenschap met de naam 'game' toevoegt aan uw aanvraagtelemetrie, telt deze query het aantal exemplaren van verschillende waarden van 'game' en toont het gemiddelde van de aangepaste metrische waarde 'score':

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

U ziet dat:

  • Wanneer u een waarde uit de customDimensions of customMeasurements JSON extraheert, heeft deze een dynamisch type, dus moet u deze tostring casten of todouble.
  • Om rekening te houden met de mogelijkheid van steekproeven, gebruik sum(itemCount) niet count().

Tijdgebeurtenissen

Soms wilt u een grafiek maken hoe lang het duurt om een actie uit te voeren. U wilt bijvoorbeeld weten hoelang gebruikers rekening houden met keuzes in een game. Gebruik de meetparameter om deze informatie te verkrijgen.

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);

Standaardeigenschappen voor aangepaste telemetrie

Als u standaardeigenschapswaarden wilt instellen voor een aantal van de aangepaste gebeurtenissen die u schrijft, stelt u deze in een TelemetryClient instantie in. Ze worden gekoppeld aan elk telemetrie-item dat vanaf die client wordt verzonden.

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");

Afzonderlijke telemetrie-aanroepen kunnen de standaardwaarden in hun eigenschapswoordenlijsten overschrijven.

Telemetrie uitschakelen

De verzameling en verzending van telemetrie dynamisch stoppen en starten :

telemetry.getConfiguration().setTrackingDisabled(true);

Dynamische verbindingsreeks

Om te voorkomen dat telemetrie wordt vermengd vanuit ontwikkel-, test- en productieomgevingen, kunt u afzonderlijke Application Insights-resources maken en de bijbehorende verbindingsreeksen wijzigen, afhankelijk van de omgeving.

In plaats van de verbindingsreeks op te halen uit het configuratiebestand, kunt u deze instellen in de initialisatiemethode van uw code:

// 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 heeft een contexteigenschap, die waarden bevat die samen met alle telemetriegegevens worden verzonden. Ze worden normaal gesproken ingesteld door de standaardtelemetriemodules, maar u kunt ze ook zelf instellen. Voorbeeld:

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

Als u een van deze waarden zelf instelt, kunt u overwegen om de relevante regel uit ApplicationInsights.config te verwijderen, zodat uw waarden en de standaardwaarden niet in de war raken.

  • Onderdeel: de app en de bijbehorende versie.
  • Apparaat: gegevens over het apparaat waarop de app wordt uitgevoerd. In web-apps is het de server of het clientapparaat waaruit de telemetrie wordt verzonden.
  • InstrumentationKey: de Application Insights-resource in Azure waar de telemetrie wordt weergegeven.
  • Locatie: De geografische locatie van het apparaat.
  • Bewerking: In webapplicaties de huidige HTTP-aanvraag. In andere app-typen kunt u deze waarde instellen om gebeurtenissen samen te groeperen.
    • Id: Een gegenereerde waarde die verschillende gebeurtenissen correleert, zodat u gerelateerde items kunt vinden wanneer u een gebeurtenis inspecteert in diagnostische zoekopdrachten.
    • Naam: een id, meestal de URL van de HTTP-aanvraag.
    • SyntheticSource: Als deze niet null of leeg is, geeft een string aan dat de bron van het verzoek is geïdentificeerd als een robot of webtest. Standaard wordt deze uitgesloten van berekeningen in Metrics Explorer.
  • Sessie: de sessie van de gebruiker. De id wordt ingesteld op een gegenereerde waarde, die wordt gewijzigd wanneer de gebruiker al een tijdje niet actief is geweest.
  • Gebruiker: Gebruikersgegevens.

Limits

Er gelden enkele beperkingen voor het aantal meetgegevens en gebeurtenissen per toepassing, per instrumentatiesleutel. De limieten zijn afhankelijk van de prijscategorie die u kiest.

Hulpbron Standaardlimiet Bovengrens Opmerkingen
Totale hoeveelheid gegevens per dag 100 GB Neem contact op met ondersteuning. U kunt een limiet instellen om gegevens te verminderen. Als u meer gegevens nodig hebt, kunt u de limiet in de portal verhogen tot 1000 GB. Voor capaciteiten groter dan 1000 GB stuurt u een mail naar AIDataCap@microsoft.com.
Throttling 32.000 gebeurtenissen per seconde Neem contact op met ondersteuning. De limiet wordt gemeten in een minuut.
Logboeken voor gegevensretentie 30 tot 730 dagen 730 dagen Deze bron is voor logboeken.
Metrische gegevens over gegevensretentie 90 dagen 90 dagen Deze resource is voor Metrics Explorer.
Gedetailleerde resultatenretentie van multistep-test voor beschikbaarheid 90 dagen 90 dagen Deze resource biedt gedetailleerde resultaten van elke stap.
Maximale grootte van telemetrie-item 64 kB 64 kB
Maximumaantal telemetriegegevens per batch 64,000 64,000
Naamlengte voor de eigenschappen en meetgegevens 150 150 Raadpleeg typeschemas.
Lengte van de eigenschapswaarde tekenreeks 8,192 8,192 Raadpleeg typeschemas.
Lengte van berichten voor tracering en uitzonderingen 32,768 32,768 Raadpleeg typeschemas.
Aantal beschikbaarheidstests per Application Insights-resource 100 100
Aantal beschikbaarheidstests per resourcegroep 800 800 Zie Azure Resource Manager
Maximale omleidingen per beschikbaarheidstest 10 10
Minimale testfrequentie voor beschikbaarheidstests 300 seconden Aangepaste testfrequenties of frequenties van minder dan 5 minuten vereisen aangepaste TrackAvailability-implementaties.
Gegevensretentie van .NET Profiler en Snapshot Debugger Twee weken Neem contact op met ondersteuning. De maximale retentielimiet is zes maanden.
.NET Profiler-gegevens verzonden per dag Geen limiet Geen limiet.
Snapshot Debugger gegevens verzonden per dag 30 momentopnamen per dag per bewaakte app Geen limiet. Het aantal momentopnamen dat per toepassing wordt verzameld, kan worden gewijzigd via de configuratie.

Zie Application Insights-facturering voor meer informatie over prijzen en quota.

Gebruik steekproeven om te voorkomen dat de gegevenssnelheidslimiet wordt bereikt.

Zie Gegevensretentie en privacy om te bepalen hoe lang gegevens worden bewaard.

Volgende stappen