Övervaka Azure Functions

Azure Functions erbjuder inbyggd integrering med Azure Application Insights för att övervaka funktioner. Den här artikeln innehåller en översikt över övervakningsfunktionerna i Azure för övervakning Azure Functions.

Program Insights samlar in logg-, prestanda- och feldata. Genom att automatiskt identifiera prestandaavvikelser och visa kraftfulla analysverktyg kan du enklare diagnostisera problem och bättre förstå hur dina funktioner används. De här verktygen är utformade för att hjälpa dig att kontinuerligt förbättra funktionernas prestanda och användbarhet. Du kan till och med använda Insights program under projektutvecklingen för den lokala funktionsappen. Mer information finns i Vad är Application Insights?.

Eftersom Application Insights-instrumentation är inbyggt i Azure Functions behöver du en giltig instrumenteringsnyckel för att ansluta funktionsappen till en Insights programresurs. Instrumenteringsnyckeln läggs till i programinställningarna när du skapar funktionsappresursen i Azure. Om funktionsappen inte redan har den här nyckeln kan du ange den manuellt.

Priser Insights och begränsningar för program

Du kan prova Application Insights-integrering med Azure Functions kostnadsfritt med en daglig gräns för hur mycket data som bearbetas kostnadsfritt.

Om du aktiverar Insights under utvecklingen kan du komma upp i den här gränsen under testningen. Azure tillhandahåller portal- och e-postaviseringar när du närmar dig din dagliga gräns. Om du missar dessa aviseringar och har klickat på gränsen visas inte nya loggar i Program Insights frågor. Tänk på gränsen för att undvika onödig felsökningstid. Mer information finns i Hantera priser och datavolym i Application Insights.

Viktigt

Program Insights har en samplingsfunktion som kan skydda dig från att producera för mycket telemetridata vid slutförda körningar vid hög belastning. Sampling är aktiverat som standard. Om du verkar sakna data kan du behöva justera samplingsinställningarna så att de passar just ditt övervakningsscenario. Mer information finns i Konfigurera sampling.

Den fullständiga listan över application Insights-funktioner som är tillgängliga för din funktionsapp finns i Application Insights for Azure Functions supported features.

Programintegrering Insights program

Vanligtvis skapar du en programinstans Insights när du skapar funktionsappen. I det här fallet har instrumenteringsnyckeln som krävs för integreringen redan angetts som en programinställning med namnet APPINSIGHTS_INSTRUMENTATIONKEY . Om din funktionsapp av någon anledning inte har instrumenteringsnyckeln inställd måste du aktivera Application Insights-integrering.

Viktigt

Nationella moln, till exempel Azure Government, kräver användning av Application Insights-anslutningssträngen ( ) i APPLICATIONINSIGHTS_CONNECTION_STRING stället för instrumenteringsnyckeln. Mer information finns i APPLICATIONINSIGHTS_CONNECTION_STRING referens .

Samla in telemetridata

När Application Insights-integrering är aktiverat skickas telemetridata till din anslutna Application Insights-instans. Dessa data innehåller loggar som genereras av Functions-värden, spårningar som skrivits från din funktionskod och prestandadata.

Anteckning

Förutom data från dina funktioner och Functions-värden kan du även samla in data från Functions-skalkontrollanten.

Loggnivåer och kategorier

När du skriver spårningar från programkoden bör du tilldela spårningarna en loggnivå. Med loggnivåer kan du begränsa mängden data som samlas in från spårningarna.

En logg nivå tilldelas till varje logg. Värdet är ett heltal som anger relativ prioritet:

Loggnivå Kod Beskrivning
Spårning 0 Loggar som innehåller de mest detaljerade meddelandena. Dessa meddelanden kan innehålla känsliga program data. Dessa meddelanden är inaktiverade som standard och ska aldrig aktive ras i en produktions miljö.
Felsöka 1 Loggar som används för interaktiv undersökning under utvecklingen. Dessa loggar bör främst innehålla information som är användbar för fel sökning och som inte har något långsiktigt värde.
Information 2 Loggar som spårar programmets allmänna flöde. De här loggarna bör ha långsiktigt värde.
Varning 3 Loggar som markerar en onormal eller oväntad händelse i program flödet, men inte på annat sätt gör att program körningen stoppas.
Fel 4 Loggar som markerar när det aktuella körnings flödet stoppas på grund av ett haveri. Felen bör tyda på ett fel i den aktuella aktiviteten, inte ett program som inte är större.
Kritiskt 5 Loggar som beskriver ett oåterkalleligt program eller en system krasch, eller ett oåterkalleligt fel som kräver omedelbar uppmärksamhet.
Inget 6 Inaktiverar loggning för den angivna kategorin.

host.jsi fil konfigurationen avgör hur mycket loggning av en Functions-app som skickas till Application Insights.

Mer information om loggnivåer finns i Konfigurera loggnivåer.

Genom att tilldela loggade objekt till en kategori får du mer kontroll över telemetri som genereras från specifika källor i funktionsappen. Kategorier gör det enklare att köra analyser över insamlade data. Spårningar som skrivits från funktionskoden tilldelas till enskilda kategorier baserat på funktionsnamnet. Mer information om kategorier finns i Konfigurera kategorier.

Anpassade telemetridata

I C#, JavaScriptoch Pythonkan du använda ett Application Insights SDK för att skriva anpassade telemetridata.

Beroenden

Från och med version 2.x av Functions samlar körningen automatiskt in data om beroenden för bindningar som använder vissa klient-SDK:er. Program Insights samlar in data om följande beroenden:

  • Azure Cosmos DB
  • Azure Event Hubs
  • Azure Service Bus
  • Azure Storage tjänster (blob, kö och tabell)

HTTP-begäranden och databassamtal SqlClient som använder avbildas också. En fullständig lista över beroenden som stöds av Application Insights finns i Automatiskt spårade beroenden.

Program Insights genererar en programkarta över insamlade beroendedata. Följande är ett exempel på en programkarta över en HTTP-utlösarfunktion med en Queue Storage-utdatabindning.

Programkarta med beroende

Beroenden skrivs på Information nivån . Om du Warning filtrerar vid eller högre visas inte beroendedata. Dessutom sker automatisk insamling av beroenden i ett icke-användaromfång. Om du vill samla in beroendedata kontrollerar du att nivån är inställd på minst Information utanför användaromfånget ( Function.<YOUR_FUNCTION_NAME>.User ) i värden.

Förutom automatisk insamling av beroendedata kan du även använda en av de språkspecifika Application Insights-SDK:erna för att skriva anpassad beroendeinformation till loggarna. Ett exempel på hur du skriver anpassade beroenden finns i något av följande språkspecifika exempel:

Skriva till loggar

Hur du skriver till loggar och de API:er som du använder beror på språket i funktionsappsprojektet.
Se utvecklarhandboken för ditt språk för att lära dig mer om att skriva loggar från dina funktioner.

Analysera data

Som standard lagras de data som samlas in från funktionsappen i Application Insights. I Azure Portaltillhandahåller Application Insights en omfattande uppsättning visualiseringar av dina telemetridata. Du kan visa mer information om felloggar och frågehändelser och mått. Mer information, inklusive grundläggande exempel på hur du visar och frågar dina insamlade data, finns i Analysera Azure Functions telemetri i Application Insights.

Strömningsloggar

När du utvecklar ett program vill du ofta se vad som skrivs till loggarna nästan i realtid när du kör i Azure.

Det finns två sätt att visa en ström av loggdata som genereras av funktionskörningarna.

  • Inbyggd loggströmning: Med App Service-plattformen kan du visa en ström av dina programloggfiler. Den här dataströmmen motsvarar de utdata som visas när du felsöker funktioner under lokal utveckling och när du använder fliken Test i portalen. All loggbaserad information visas. Mer information finns i Stream-loggar. Den här strömningsmetoden stöder bara en enda instans och kan inte användas med en app som körs på Linux i en förbrukningsplan.

  • Live Metrics Stream: när funktionsappen är ansluten till Application Insightskan du visa loggdata och andra mått nästan i realtid i Azure Portal med hjälp av Live Metrics Stream. Använd den här metoden när du övervakar funktioner som körs på flera instanser eller på Linux i en förbrukningsplan. Den här metoden använder exempeldata.

Loggströmmar kan visas både i portalen och i de flesta lokala utvecklingsmiljöer. Information om hur du aktiverar loggströmmar finns i Aktivera körningsloggar för direktuppspelning i Azure Functions.

Diagnostikloggar

Den här funktionen är i förhandsversion.

Med Insights program kan du exportera telemetridata till långsiktig lagring eller andra analystjänster.

Eftersom Functions också integreras med Azure Monitor kan du även använda diagnostikinställningar för att skicka telemetridata till olika mål, inklusive Azure Monitor loggar. Mer information finns i Monitoring Azure Functions with Azure Monitor Logs (Övervaka Azure Functions med Azure Monitor loggar).

Skala kontrollantloggar

Den här funktionen är i förhandsversion.

Skalning Azure Functions övervakar instanser av den Azure Functions som appen körs på. Den här kontrollanten fattar beslut om när instanser ska läggas till eller tas bort baserat på aktuell prestanda. Du kan få skalkontrollanten att generera loggar till Application Insights för att bättre förstå de beslut som skalkontrollanten fattar för din funktionsapp. Du kan också lagra de genererade loggarna i Blob Storage för analys av en annan tjänst.

Om du vill aktivera den här funktionen lägger du till en programinställning SCALE_CONTROLLER_LOGGING_ENABLED med namnet i inställningarna för funktionsappen. Information om hur du gör finns i Konfigurera skalningskontrollantloggar.

Rapportera problem

Om du vill rapportera ett problem med Application Insights-integrering i Functions, eller för att skicka ett förslag eller en begäran, skapar du ett problem i GitHub.

Nästa steg

Mer information finns i följande resurser: