Uitvoeringen bewaken in Azure Functions

Azure Functions biedt ingebouwde integratie met Azure-toepassing Insights om de uitvoering van functies te bewaken. Dit artikel bevat een overzicht van de bewakingsmogelijkheden van Azure voor het bewaken van Azure Functions.

Application Insights verzamelt logboek-, prestatie- en foutgegevens. Door prestatieafwijkingen automatisch te detecteren en krachtige analysehulpprogramma's te gebruiken, kunt u problemen gemakkelijker vaststellen en beter begrijpen hoe uw functies worden gebruikt. Deze hulpprogramma's zijn ontworpen om u te helpen de prestaties en bruikbaarheid van uw functies continu te verbeteren. U kunt Application Insights zelfs gebruiken tijdens de ontwikkeling van lokale functie-app-projecten. Zie Wat is Application Insights? voor meer informatie.

Omdat Application Insights-instrumentatie is ingebouwd in Azure Functions, hebt u een geldige instrumentatiesleutel nodig om uw functie-app te verbinden met een Application Insights-resource. De instrumentatiesleutel wordt toegevoegd aan uw toepassingsinstellingen tijdens het maken van uw functie-app-resource in Azure. Als uw functie-app deze sleutel nog niet heeft, kunt u deze handmatig instellen.

U kunt ook de functie-app zelf bewaken met behulp van Azure Monitor. Zie Bewaking van Azure Functions met Azure Monitor voor meer informatie.

Prijzen en limieten voor Application Insights

U kunt Application Insights-integratie met Azure Functions gratis uitproberen, met een dagelijkse limiet voor hoeveel gegevens er gratis worden verwerkt.

Als u Applications Insights inschakelt tijdens de ontwikkeling, bereikt u deze limiet mogelijk tijdens het testen. Azure biedt portal- en e-mailmeldingen wanneer u uw dagelijkse limiet nadert. Als u deze waarschuwingen mist en de limiet bereikt, worden er geen nieuwe logboeken weergegeven in Application Insights-query's. Houd rekening met de limiet om onnodige tijd voor probleemoplossing te voorkomen. Zie Application Insights-facturering voor meer informatie.

Belangrijk

Application Insights heeft een steekproeffunctie die u kan beschermen tegen het produceren van te veel telemetriegegevens bij voltooide uitvoeringen op momenten van piekbelasting. Steekproeven zijn standaard ingeschakeld. Als u gegevens lijkt te missen, moet u mogelijk de steekproefinstellingen aanpassen aan uw specifieke bewakingsscenario. Zie Steekproeven configureren voor meer informatie.

De volledige lijst met Application Insights-functies die beschikbaar zijn voor uw functie-app, wordt beschreven in Application Insights voor Azure Functions ondersteunde functies.

Application Insights-integratie

Normaal gesproken maakt u een Application Insights-exemplaar wanneer u uw functie-app maakt. In dit geval is de instrumentatiesleutel die vereist is voor de integratie al ingesteld als een toepassingsinstelling met de naam APPINSIGHTS_INSTRUMENTATIONKEY. Als de instrumentatiesleutel voor uw functie-app om de een of andere reden niet is ingesteld, moet u Application Insights-integratie inschakelen.

Belangrijk

Onafhankelijke clouds, zoals Azure Government, vereisen het gebruik van de Application Insights-connection string (APPLICATIONINSIGHTS_CONNECTION_STRING) in plaats van de instrumentatiesleutel. Zie de referentie voor APPLICATIONINSIGHTS_CONNECTION_STRING voor meer informatie.

De volgende tabel bevat informatie over de ondersteunde functies van Application Insights die beschikbaar zijn voor het bewaken van uw functie-apps:

Azure Functions runtimeversie 1.x 2.x+
Automatische verzameling van
•Verzoeken
•Uitzonderingen
• Prestatiemeteritems
•Afhankelijkheden
   — HTTP
   — Service Bus
   — Event Hubs
   — SQL*
Ondersteunde functies
• QuickPulse/LiveMetrics Ja Ja
   — Beveiligd controlekanaal Yes
•Bemonstering Ja Ja
•Heartbeats Yes
Correlatie
• Service Bus Yes
• Event Hubs Yes
Configureerbaar
Volledig configureerbaar Yes

* Zie SQL-queryverzameling inschakelen om de verzameling SQL-queryreekstekst in te schakelen.

Telemetriegegevens verzamelen

Als Application Insights-integratie is ingeschakeld, worden telemetriegegevens verzonden naar uw verbonden Application Insights-exemplaar. Deze gegevens omvatten logboeken die zijn gegenereerd door de Functions-host, traceringen die zijn geschreven op basis van uw functiecode en prestatiegegevens.

Notitie

Naast gegevens van uw functies en de Functions-host kunt u ook gegevens verzamelen van de Functions-schaalcontroller.

Logboekniveaus en -categorieën

Wanneer u traceringen schrijft vanuit uw toepassingscode, moet u een logboekniveau toewijzen aan de traceringen. Logboekniveaus bieden u een manier om de hoeveelheid gegevens te beperken die uit uw traceringen wordt verzameld.

Aan elk logboek wordt een logboekniveau toegewezen. De waarde is een geheel getal dat de relatieve urgentie aangeeft:

Logniveau Code Description
Tracering 0 Logboeken die de meest gedetailleerde berichten bevatten. Deze berichten kunnen gevoelige toepassingsgegevens bevatten. Deze berichten zijn standaard uitgeschakeld en mogen nooit worden ingeschakeld in een productieomgeving.
Fouten opsporen 1 Logboeken die worden gebruikt voor interactief onderzoek tijdens de ontwikkeling. Deze logboeken moeten voornamelijk informatie bevatten die nuttig is voor foutopsporing en geen waarde voor de lange termijn hebben.
Informatie 2 Logboeken die de algemene stroom van de toepassing bijhouden. Deze logboeken moeten een waarde voor de lange termijn hebben.
Waarschuwing 3 Logboeken die een abnormale of onverwachte gebeurtenis in de toepassingsstroom markeren, maar die er anders niet voor zorgen dat de uitvoering van de toepassing stopt.
Fout 4 Logboeken die markeren wanneer de huidige uitvoeringsstroom is gestopt vanwege een fout. Deze fouten moeten duiden op een fout in de huidige activiteit, niet op een fout voor de hele toepassing.
Kritiek 5 Logboeken die een onherstelbare toepassing of systeemcrash beschrijven, of een catastrofale fout die onmiddellijke aandacht vereist.
Geen 6 Hiermee schakelt u logboekregistratie voor de opgegeven categorie uit.

De configuratie van het bestand host.json bepaalt hoeveel logboekregistratie een functie-app naar Application Insights verzendt.

Zie Logboekniveaus configureren voor meer informatie over logboekniveaus.

Door vastgelegde items toe te wijzen aan een categorie, hebt u meer controle over telemetrie die is gegenereerd op basis van specifieke bronnen in uw functie-app. Categorieën maken het eenvoudiger om analyses uit te voeren op verzamelde gegevens. Traceringen die zijn geschreven vanuit uw functiecode, worden toegewezen aan afzonderlijke categorieën op basis van de functienaam. Zie Categorieën configureren voor meer informatie over categorieën.

Aangepaste telemetriegegevens

In C#, JavaScript en Python kunt u een Application Insights SDK gebruiken om aangepaste telemetriegegevens te schrijven.

Afhankelijkheden

Vanaf versie 2.x van Functions verzamelt Application Insights automatisch gegevens over afhankelijkheden voor bindingen die gebruikmaken van bepaalde client-SDK's. Gedistribueerde tracering en afhankelijkheidstracering van Application Insights worden momenteel niet ondersteund voor C#-apps die worden uitgevoerd in een geïsoleerd werkproces. Application Insights verzamelt gegevens over de volgende afhankelijkheden:

  • Azure Cosmos DB
  • Azure Event Hubs
  • Azure Service Bus
  • Azure Storage-services (blob, wachtrij en tabel)

HTTP-aanvragen en database-aanroepen die gebruikmaken van SqlClient worden ook vastgelegd. Zie Automatisch bijgehouden afhankelijkheden voor de volledige lijst met afhankelijkheden die worden ondersteund door Application Insights.

Application Insights genereert een toepassingsoverzicht van verzamelde afhankelijkheidsgegevens. Hier volgt een voorbeeld van een toepassingstoewijzing van een HTTP-triggerfunctie met een queue storage-uitvoerbinding.

Toepassingsoverzicht met afhankelijkheid

Afhankelijkheden worden op het Information niveau geschreven. Als u op Warning of boven filtert, ziet u de afhankelijkheidsgegevens niet. Ook vindt het automatisch verzamelen van afhankelijkheden plaats in een niet-gebruikersbereik. Als u afhankelijkheidsgegevens wilt vastleggen, moet u ervoor zorgen dat het niveau is ingesteld op ten minste Information buiten het gebruikersbereik (Function.<YOUR_FUNCTION_NAME>.User) in uw host.

Naast het automatisch verzamelen van afhankelijkheidsgegevens kunt u ook een van de taalspecifieke Application Insights SDK's gebruiken om aangepaste afhankelijkheidsinformatie naar de logboeken te schrijven. Zie een van de volgende taalspecifieke voorbeelden voor een voorbeeld van het schrijven van aangepaste afhankelijkheden:

Prestatiemeteritems

Het automatisch verzamelen van prestatiemeteritems wordt niet ondersteund wanneer deze wordt uitgevoerd in Linux.

Schrijven naar logboeken

De manier waarop u naar logboeken schrijft en de API's die u gebruikt, is afhankelijk van de taal van uw functie-app-project.
Zie de ontwikkelaarshandleiding voor uw taal voor meer informatie over het schrijven van logboeken vanuit uw functies.

Gegevens analyseren

De gegevens die van uw functie-app worden verzameld, worden standaard opgeslagen in Application Insights. In de Azure Portal biedt Application Insights een uitgebreide set visualisaties van uw telemetriegegevens. U kunt inzoomen op foutenlogboeken en querygebeurtenissen en metrische gegevens uitvoeren. Zie Analyze Azure Functions telemetry in Application Insights (Telemetrie analyseren in Application Insights) voor meer informatie, inclusief basisvoorbeelden van het weergeven en opvragen van uw verzamelde gegevens.

Streaminglogboeken

Tijdens het ontwikkelen van een toepassing wilt u vaak bijna in realtime zien wat er naar de logboeken wordt geschreven wanneer deze wordt uitgevoerd in Azure.

Er zijn twee manieren om een stroom weer te geven van de logboekgegevens die worden gegenereerd door uw functie-uitvoeringen.

  • Ingebouwde logboekstreaming: met het App Service-platform kunt u een stroom van uw toepassingslogboekbestanden bekijken. Deze stroom is gelijk aan de uitvoer die wordt weergegeven wanneer u fouten in uw functies opspoort tijdens de lokale ontwikkeling en wanneer u het tabblad Testen in de portal gebruikt. Alle op logboeken gebaseerde informatie wordt weergegeven. Zie Stream-logboeken voor meer informatie. Deze streamingmethode ondersteunt slechts één exemplaar en kan niet worden gebruikt met een app die wordt uitgevoerd op Linux in een verbruiksabonnement.

  • Live Metrics Stream: wanneer uw functie-app is verbonden met Application Insights, kunt u logboekgegevens en andere metrische gegevens bijna in realtime bekijken in de Azure Portal met behulp van Live Metrics Stream. Gebruik deze methode bij het bewaken van functies die worden uitgevoerd op meerdere exemplaren of op Linux in een verbruiksabonnement. Bij deze methode worden steekproefgegevens gebruikt.

Logboekstreams kunnen zowel in de portal als in de meeste lokale ontwikkelomgevingen worden weergegeven. Zie Uitvoeringslogboeken voor streaming inschakelen in Azure Functions voor meer informatie over het inschakelen van logboekstreams.

Diagnostische logboeken

Met Application Insights kunt u telemetriegegevens exporteren naar langetermijnopslag of andere analyseservices.

Omdat Functions ook kan worden geïntegreerd met Azure Monitor, kunt u ook diagnostische instellingen gebruiken om telemetriegegevens te verzenden naar verschillende bestemmingen, waaronder Azure Monitor-logboeken. Zie Azure Functions bewaken met Azure Monitor-logboeken voor meer informatie.

Controllerlogboeken schalen

De Azure Functions schaalcontroller bewaakt exemplaren van de Azure Functions host waarop uw app wordt uitgevoerd. Deze controller neemt beslissingen over wanneer exemplaren moeten worden toegevoegd of verwijderd op basis van de huidige prestaties. U kunt de schaalcontroller logboeken laten verzenden naar Application Insights om beter inzicht te krijgen in de beslissingen die de schaalcontroller neemt voor uw functie-app. U kunt de gegenereerde logboeken ook opslaan in Blob Storage voor analyse door een andere service.

Als u deze functie wilt inschakelen, voegt u een toepassingsinstelling met de naam SCALE_CONTROLLER_LOGGING_ENABLED toe aan de instellingen van uw functie-app. Zie Schaalcontrollerlogboeken configureren voor meer informatie.

Metrische gegevens van Azure Monitor

Naast telemetriegegevens op basis van logboeken die door Application Insights worden verzameld, kunt u ook gegevens ophalen over hoe de functie-app wordt uitgevoerd vanuit Metrische gegevens van Azure Monitor. Zie Bewaking met Azure Monitor voor meer informatie.

Problemen melden

Als u een probleem met Application Insights-integratie in Functions wilt melden of een suggestie of aanvraag wilt doen, maakt u een probleem in GitHub.

Volgende stappen

Zie de volgende resources voor meer informatie: