Uitvoeringen bewaken in Azure Functions
Azure Functions biedt ingebouwde integratie met Azure-toepassing Insights voor het bewaken van uitvoeringen van functies. Dit artikel bevat een overzicht van de bewakingsmogelijkheden van Azure voor het bewaken van Azure Functions.
Application Insights verzamelt logboek-, prestatie- en foutgegevens. Door automatisch prestatieafwijkingen en krachtige analysehulpprogramma's te detecteren, kunt u eenvoudiger problemen diagnosticeren 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 het ontwikkelen van lokale functie-apps. 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 de functie-app ook zelf bewaken met behulp van Azure Monitor. Zie Azure Functions bewaken 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 gratis worden verwerkt.
Als u Applications Insights inschakelt tijdens de ontwikkeling, bereikt u deze limiet 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 nieuwe logboeken niet weergegeven in Application Insights-query's. Houd rekening met de limiet om onnodige probleemoplossingstijd te voorkomen. Zie Application Insights-facturering voor meer informatie.
Belangrijk
Application Insights heeft een samplingfunctie die u kan beschermen tegen het produceren van te veel telemetriegegevens bij voltooide uitvoeringen op momenten van piekbelasting. Steekproeven zijn standaard ingeschakeld. Als er gegevens ontbreken, moet u mogelijk de steekproefinstellingen aanpassen aan uw specifieke bewakingsscenario. Zie Sampling configureren voor meer informatie.
De volledige lijst met Application Insights-functies die beschikbaar zijn voor uw functie-app, wordt beschreven in Application Insights voor ondersteunde functies van Azure Functions.
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 uw functie-app om een of andere reden niet beschikt over de instrumentatiesleutelset, moet u Application Insights-integratie inschakelen.
Belangrijk
Soevereine clouds, zoals Azure Government, vereisen het gebruik van de Application Insights-verbindingsreeks (APPLICATIONINSIGHTS_CONNECTION_STRING
) in plaats van de instrumentatiesleutel. Zie de APPLICATIONINSIGHTS_CONNECTION_STRING-verwijzing 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:
Runtimeversie van Azure Functions | 1.x | 2.x+ |
---|---|---|
Automatische verzameling van | ||
•Verzoeken | ✓ | ✓ |
•Uitzonderingen | ✓ | ✓ |
• Prestatiemeteritems | ✓ | ✓ |
•Afhankelijkheden | ||
— HTTP | ✓ | |
— Service Bus | ✓ | |
— Event Hubs | ✓ | |
— SQL* | ✓ | |
Ondersteunde functies | ||
• QuickPulse/LiveMetrics | Ja | Ja |
— Besturingselementkanaal beveiligen | Ja | |
•Monsterneming | Ja | Ja |
•Heartbeats | Ja | |
Correlatie | ||
• Service Bus | Ja | |
• Event Hubs | Ja | |
Configureerbare | ||
•Volledig configureerbaar | Ja |
* 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 uit 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 uit uw toepassingscode schrijft, moet u een logboekniveau toewijzen aan de traceringen. Logboekniveaus bieden een manier om de hoeveelheid gegevens te beperken die uit uw traceringen wordt verzameld.
Er wordt een logboekniveau toegewezen aan elk logboek. De waarde is een geheel getal dat het relatieve belang aangeeft:
Logniveau | Code | Beschrijving |
---|---|---|
Trace | 0 | Logboeken die de meest gedetailleerde berichten bevatten. Deze berichten bevatten mogelijk gevoelige toepassingsgegevens. Deze berichten zijn standaard uitgeschakeld en moeten 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. |
Gegevens | 2 | Logboeken die de algemene stroom van de toepassing bijhouden. Deze logboeken moeten een langetermijnwaarde hebben. |
Waarschuwing | 3 | Logboeken waarin een abnormale of onverwachte gebeurtenis in de toepassingsstroom wordt gemarkeerd, maar anders wordt de uitvoering van de toepassing niet gestopt. |
Error | 4 | Logboeken die markeren wanneer de huidige uitvoeringsstroom wordt gestopt vanwege een fout. Deze fouten moeten duiden op een fout in de huidige activiteit, niet op een toepassingsbrede fout. |
Kritiek | 5 | Logboeken die een onherstelbare toepassing of systeemcrash beschrijven, of een onherstelbare fout waarvoor onmiddellijke aandacht is vereist. |
Geen | 6 | Schakelt logboekregistratie voor de opgegeven categorie uit. |
De configuratie van het host.json-bestand bepaalt hoeveel logboekregistratie een functions-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. Met categorieën kunt u eenvoudiger analyses uitvoeren 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 worden gebruikt 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.
Afhankelijkheden worden geschreven op het Information
niveau. Als u filtert op Warning
of boven, worden de afhankelijkheidsgegevens niet weergegeven. Ook gebeurt het automatisch verzamelen van afhankelijkheden op 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:
- Aangepaste telemetrie voor logboeken in C#-functies
- Aangepaste telemetrie voor logboeken in JavaScript-functies
- Aangepaste telemetrie vastleggen in Python-functies
Performance Counters (Prestatiemeteritems)
Het automatisch verzamelen van prestatiemeteritems wordt niet ondersteund bij het uitvoeren op Linux.
Schrijven naar logboeken
De manier waarop u schrijft naar logboeken 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 worden verzameld uit uw functie-app, worden standaard opgeslagen in Application Insights. In Azure Portal biedt Application Insights een uitgebreide set visualisaties van uw telemetriegegevens. U kunt inzoomen op foutenlogboeken en querygebeurtenissen en metrische gegevens. Zie Azure Functions-telemetrie analyseren in Application Insights voor meer informatie, waaronder basisvoorbeelden van het weergeven en opvragen van uw verzamelde gegevens.
Streaminglogboeken
Tijdens het ontwikkelen van een toepassing wilt u vaak zien wat er in bijna realtime naar de logboeken wordt geschreven bij het uitvoeren in Azure.
Er zijn twee manieren om een stroom van de logboekgegevens weer te geven 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 in bijna realtime bekijken in 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. Deze methode maakt gebruik van voorbeeldgegevens.
Logboekstreams kunnen zowel in de portal als in de meeste lokale ontwikkelomgevingen worden weergegeven. Zie Logboeken voor streaming-uitvoering 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 analysis services.
Omdat Functions ook kan worden geïntegreerd met Azure Monitor, kunt u ook diagnostische instellingen gebruiken om telemetriegegevens naar verschillende bestemmingen te verzenden, 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 het toevoegen of verwijderen van exemplaren 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 toe SCALE_CONTROLLER_LOGGING_ENABLED
aan de instellingen van uw functie-app. Zie Logboeken voor schaalcontroller configureren voor meer informatie.
Metrische gegevens van Azure Monitor
Naast op logboeken gebaseerde telemetriegegevens die worden verzameld door Application Insights, 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
Voor meer informatie raadpleegt u de volgende bronnen: