Delen via


Application Insights-logboeken ontbreken of zijn onjuist voor Azure Functions-apps

U kunt de functie-app nauwkeurig bewaken via de integratie tussen Azure Functions en Application Insights. En u kunt Application Insights gebruiken zonder aangepaste configuratie.

Als de Application Insights-logboeken ontbreken of als de gegevens gedeeltelijk of onjuist lijken te zijn, gebruikt u de volgende stappen om het probleem op te lossen.

Configuratie van functie-app controleren

  1. Navigeer naar uw functie-app in de Azure-portal.

  2. Selecteer Problemen vaststellen en oplossen om Diagnostische gegevens in Azure Functions te openen.

  3. Typ functieconfiguratiecontroles in de zoekbalk en open deze.

  4. U ziet een diagnostisch rapport van alle controles van de configuratie van de functie-app. In het bijzonder voor Application Insights worden de volgende controles uitgevoerd:

    • Er bestaat slechts een van de volgende verbindingsinstellingen:

      • APPINSIGHTS_INSTRUMENTATIONKEY Application Insights Instrumentation-sleutel

      • APPLICATIONINSIGHTS_CONNECTION_STRING verbinding

        U wordt aangeraden de APPLICATIONINSIGHTS_CONNECTION_STRING te gebruiken voor stabieler gedrag. De mogelijkheid om te gebruiken APPINSIGHTS_INSTRUMENTATIONKEY wordt in 2025 afgeschaft.

    • De ingebouwde logboekregistratie van AzureWebJobsDashboard is uitgeschakeld, zoals aanbevolen.

    • Steekproeven zijn ingeschakeld voor de Azure Functions-telemetrie (standaard ingeschakeld).

Aanbeveling: De functie-app moet versie 4 hebben en de runtimeversie moet ten minste 4.15.2xx zijn. Dit komt doordat u vanaf deze versie de logboekstromen van Azure Functions naar de Application Insights-service kunt volgen. Door de logboekstromen te bewaken, kunt u controleren op ontbrekende logboeken.

Aangepaste toepassingslogboeken

Aangepaste toepassingslogboeken die u schrijft, worden standaard verzonden naar de Functions-host. Deze worden vervolgens naar Application Insights verzonden onder de categorie Worker. Met sommige taalstacks kunt u de logboeken echter rechtstreeks naar Application Insights verzenden, wat u volledige controle geeft over hoe logboeken die u schrijft, worden verzonden. In dit geval wordt de logboekpijplijn gewijzigd van worker > Functions host > Application Insights in worker > Application Insights.

De volgende tabel bevat een overzicht van de configuratieopties die beschikbaar zijn voor elke stack:

Taalstack Waar aangepaste logboeken te configureren
.NET (model in proces) host.json
.NET (geïsoleerd model) Standaard (aangepaste logboeken verzenden naar de Functions-host): host.json
Zie Application Insights configureren in HostBuilder om logboeken rechtstreeks naar Application Insights te verzenden.
Node.JS host.json
Python host.json
Java Standaard (aangepaste logboeken verzenden naar de Functions-host): host.json
Zie De Application Insights Java-agent configureren om logboeken rechtstreeks naar Application Insights te verzenden.
Powershell host.json

Wanneer u aangepaste toepassingslogboeken configureert om rechtstreeks te worden verzonden, verzendt de host deze niet meer en host.json beheert het gedrag niet meer. Op dezelfde manier zijn de opties die door elke stack worden weergegeven, alleen van toepassing op aangepaste logboeken en wijzigen ze niet het gedrag van de andere runtimelogboeken die in dit artikel worden beschreven. In dit geval moet u mogelijk wijzigingen aanbrengen in beide configuraties om het gedrag van alle logboeken te beheren.

Logboeken ontbreken of gedeeltelijk

Application Insights verzamelt logboek-, prestatie- en foutgegevens. De steekproefconfiguratie wordt gebruikt om het volume van telemetrie te verminderen. De functie Sampling is standaard ingeschakeld met de instellingen die worden weergegeven in het volgende host.json voorbeeld. Uitgesloten typen worden niet gesampleerd.

{
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "maxTelemetryItemsPerSecond" : 20,
        "excludedTypes": "Request;Exception"
      }
    }
  }
}

Als u merkt dat er gedeeltelijk ontbrekende logboeken ontbreken, kan dit optreden vanwege steekproeven. Als u de werkelijke steekproeffrequentie wilt bepalen, gebruikt u een Analytics-query die gebruikmaakt van het vereiste tijdsinterval dat wordt weergegeven in het volgende codefragment. Als u merkt dat het TelemetrySavedPercentage voor elk steekproeftype kleiner is dan 100, wordt dat type telemetrie gemonsterd.

union requests,dependencies,pageViews,browserTimings,exceptions,traces
| where timestamp > todatetime("mm/dd/yyyy hh:mm:ss") and timestamp < todatetime("mm/dd/yyyy hh:mm:ss")
| summarize TelemetrySavedPercentage = 100/avg(itemCount), TelemetryDroppedPercentage = 100-100/avg(itemCount) by bin(timestamp, 1d), itemType
| sort by timestamp asc

Zie Gegevensverzameling, -retentie en -opslag in Application Insights voor meer informatie.

Volume en uitgebreidheid van logboeken beheren

U kunt de geschreven logboeken vergroten of onderdrukken. Hiervoor kunt u een combinatie van logboekniveau en categorieën gebruiken zoals geconfigureerd in host.json.

De Azure Functions-logger bevat een categorie voor elk logboek. De categorie geeft aan welk deel van de runtimecode of uw functiecode het logboek heeft gegenereerd. Bijvoorbeeld:

  • De Host.Results en Function.<YOUR_FUNCTION_NAME> zijn enkele van de beschikbare categorieën.
  • Aan elk logboek wordt een logboekniveau toegewezen. De waarde geeft het relatieve belang aan, zoals Warning of Information.

Zie de andere beschikbare categorieën en logboekniveaus voor meer informatie.

U kunt configureren hoe uw toepassing de logboeken moet schrijven door het voorbeeldcodefragment te volgen:

{
  "version": "2.0",
  "logging": {
    "logLevel": {
      "default": "Information", // catch all default, with modifications below for individual categories.
      "Function": "Warning", // Warning level from all Functions (except the ones configured below).
      "Host.Aggregator": "Trace", // Log all traces in the 'customMetrics' table of (and shown on Metrics/Alerts blade in AI) - use either this or Host.Results
      "Host.Results": "Error", // Error and Critical requests are only logged in the 'requests' table of the AI (and shown on Monitor Functions blade in Functions App) - use either this or Host.Aggregator
      "Function.Function1": "Information", //Information level logs from Function 1, logged in 'traces', 'dependencies' and 'customMetrics' tables of AI
      "Function.Function2.User": "Information" //user code logs from Function2, logged in 'traces' table of AI
    },
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "maxTelemetryItemsPerSecond": 1,
        "excludedTypes": "Exception"
      }
    }
  }
}

Als u deze waarden wilt configureren op app-instellingenniveau (om te voorkomen dat deze opnieuw worden geïmplementeerd bij host.json wijzigingen), moet u specifieke host.json waarden overschrijven door een equivalente waarde te maken als toepassingsinstelling. Voor meer informatie, zie Host.json-waarden overschrijven.

Zie functies-logboekonderdrukking voor meer voorbeelden over het onderdrukken van logboeken.

De geïntegreerde functie-app van het virtuele netwerk genereert geen logboeken

Als een functie-app is geïntegreerd met een virtueel netwerk, moet u poort 443 openen voor uitgaand verkeer in uw serverfirewall, zodat de Application Insights SDK of Application Insights-agent gegevens naar de portal kan verzenden voor de volgende URL's:

  • dc.applicationinsights.azure.com
  • dc.applicationinsights.microsoft.com
  • dc.services.visualstudio.com
  • * .in.applicationinsights.azure.com

Zie IP-adressen die worden gebruikt door Azure Monitor voor meer informatie.

Contacteer ons voor hulp

Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Azure-feedbackcommunity.