Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Functions erbjuder inbyggd integrering med Azure Application Insights för att övervaka funktionskörningar. Den här artikeln innehåller en översikt över övervakningsfunktionerna som tillhandahålls av Azure för övervakning Azure Functions, inklusive hur du väljer en telemetriexportör.
Application Insights samlar in logg-, prestanda- och feldata. Genom att automatiskt identifiera prestandaavvikelser och använda kraftfulla analysverktyg kan du enklare diagnostisera problem och bättre förstå hur dina funktioner används. Dessa verktyg är utformade för att hjälpa dig att kontinuerligt förbättra prestanda och användbarhet för dina funktioner. Du kan till och med använda Application Insights under projektutvecklingen för lokala funktionsappar.
Eftersom Application Insights-instrumentation är inbyggd i Azure Functions behöver du en giltig reťazec pripojenia- eller instrumentationsnyckel för att ansluta funktionsappen till en Application Insights-resurs. Den här anslutningen konfigureras som en programinställning när du skapar funktionsappresursen i Azure. Om funktionsappen inte redan har den här inställningen kan du ange den manuellt.
Du kan också övervaka själva funktionsappen med hjälp av Azure Monitor. Mer information finns i Övervaka Azure Functions.
Alternativ för telemetriexport
Azure Functions genererar telemetridata från både Functions-värdprocessen och den språkspecifika arbetsprocessen där din funktionskod körs. Du kan välja hur dessa telemetridata ska exporteras:
| Exportmetod | beskrivning | Recommendation |
|---|---|---|
| OpenTelemetry tillsammans med Azure Monitor Exporter | Exporterar telemetri i ett OpenTelemetry-format till Application Insights och eventuellt till valfri OTLP-kompatibel slutpunkt. | Rekommenderas för nya och befintliga appar. |
| Inbyggd Application Insights-integrering | Standardintegrering som skickar telemetri till Application Insights utan extra kod. | Bra för grundläggande övervakningsbehov. |
| Klassiska Application Insights-SDK:er | Språkspecifika SDK:er som ger detaljerad kontroll över anpassad telemetri. | Legacy. Planera att migrera till OpenTelemetry. |
Viktigt!
För nya och befintliga program är den rekommenderade metoden att använda Azure Monitor OpenTelemetry Exporter för att skicka telemetri till Application Insights. Om du använder en klassisk Application Insights SDK för att anpassa din exporterade telemetri planerar du att migrera till OpenTelemetry för långsiktig support och åtkomst till de senaste observerbarhetsfunktionerna. De klassiska Application Insights-SDK:erna får inga nya funktionsuppdateringar. OpenTelemetry stöds inte för processbaserade C#-appar.
Azure Monitor OpenTelemetry Exporter kräver en Application Insights-reťazec pripojenia (APPLICATIONINSIGHTS_CONNECTION_STRING) och stöder inte användning av en instrumentationsnyckel.
Information om hur du konfigurerar OpenTelemetry i funktionsappen finns i Använd OpenTelemetry med Azure Functions.
Priser och gränser för Application Insights
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 Applications Insights under utvecklingen kan du nå 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 aviseringarna och når gränsen visas inte nya loggar i Application Insights-frågor. Var medveten om gränsen för att undvika onödig felsökningstid. Mer information finns i Application Insights-fakturering.
Viktigt!
Application Insights har en samplingsfunktion som kan skydda dig från att producera för mycket telemetridata vid slutförda körningar vid tider med hög belastning. Sampling är aktiverat som standard. Om du verkar sakna data kan du behöva justera samplingsinställningarna så att de passar ditt specifika övervakningsscenario. Mer information finns i Konfigurera sampling.
Application Insights-integrering
Vanligtvis skapar du en Application Insights-instans när du skapar din funktionsapp. I det här fallet har instrumentationsnyckeln som krävs för integreringen redan angetts som en programinställning med namnet APPINSIGHTS_INSTRUMENTATIONKEY. Om funktionsappen av någon anledning inte har instrumentationsnyckeln inställd måste du aktivera Application Insights-integrering.
Viktigt!
Nationella moln, till exempel Azure Government, kräver användning av Application Insights-reťazec pripojenia (APPLICATIONINSIGHTS_CONNECTION_STRING) i stället för instrumentationsnyckeln. Mer information finns i referensen för APPLICATIONINSIGHTS_CONNECTION_STRING.
I följande tabell beskrivs de funktioner som stöds i Application Insights som är tillgängliga för övervakning av dina funktionsappar:
| Azure Functions körningsversion | 1.x | 4.x+ |
|---|---|---|
| Automatisk insamling av | ||
| •Förfrågningar | ✓ | ✓ |
| •Undantag | ✓ | ✓ |
| • Prestandaräknare | ✓ | ✓ |
| •Beroenden | ||
| — HTTP | ✓ | |
| — Service Bus | ✓ | |
| — Event Hubs | ✓ | |
| — SQL* | ✓ | |
| Funktioner som stöds | ||
| • QuickPulse/LiveMetrics | Ja | Ja |
| — Säker kontrollkanal | Ja | |
| •Provtagning | Ja | Ja |
| •Hjärtslag | Ja | |
| Korrelation | ||
| • Service Bus | Ja | |
| • Event Hubs | Ja | |
| Konfigurerbara | ||
| •Fullständigt konfigurerbar | Ja |
* Information om hur du aktiverar samlingen med SQL-frågesträngstext finns i Aktivera SQL-frågesamling.
Samla in telemetridata
Med Application Insights-integrering aktiverat skickas telemetridata till din anslutna Application Insights-instans. Dessa data omfattar 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 också samla in data från functions-skalningskontrollanten.
Loggnivåer och kategorier
När du skriver spårningar från programkoden bör du tilldela spårningarna en loggnivå. Loggnivåer ger dig ett sätt att begränsa mängden data som samlas in från dina spårningar.
En loggnivå tilldelas till varje logg. Värdet är ett heltal som anger relativ betydelse:
| Loggnivå | Kod | beskrivning |
|---|---|---|
| Spårning | 0 | Loggar som innehåller de mest detaljerade meddelandena. Dessa meddelanden kan innehålla känsliga programdata. Dessa meddelanden är inaktiverade som standard och bör aldrig aktiveras i en produktionsmiljö. |
| Felsöka | 1 | Loggar som används för interaktiv undersökning under utveckling. Dessa loggar bör främst innehålla information som är användbar för felsökning och har inget långsiktigt värde. |
| Information | 2 | Loggar som spårar programmets allmänna flöde. Dessa loggar bör ha ett långsiktigt värde. |
| Varning | 3 | Loggar som markerar en onormal eller oväntad händelse i programflödet, men som annars inte gör att programkörningen stoppas. |
| Fel | 4 | Loggar som visar när den aktuella processen stoppas på grund av ett fel. Dessa fel bör indikera ett fel i den aktuella aktiviteten, inte ett programomfattande fel. |
| Kritiskt | 5 | Loggar som beskriver ett oåterkalleligt program eller en systemkrasch, eller ett oåterkalleligt fel som kräver omedelbar uppmärksamhet. |
| Ingen | 6 | Inaktiverar loggning för den angivna kategorin. |
Host.json-filkonfigurationenavgör hur mycket loggning en funktionsapp skickar till Application Insights.
Mer information om loggnivåer finns i Konfigurera loggnivåer.
Genom att tilldela loggade objekt till en kategori har du mer kontroll över telemetri som genereras från specifika källor i funktionsappen. Kategorier gör det enklare att köra analys över insamlade data. Spårningar som skrivs från funktionskoden tilldelas till enskilda kategorier baserat på funktionsnamnet. Mer information om kategorier finns i Konfigurera kategorier.
Anpassade telemetridata
För att skriva anpassade telemetridata från dina funktioner är den rekommenderade metoden att använda OpenTelemetry-exportören, som tillhandahåller standardbaserad telemetri som kan skickas till Application Insights och alla OTLP-kompatibla slutpunkter.
Du kan också använda språkspecifika klassiska Application Insights-SDK:er för att skriva anpassad telemetri i C#, JavaScript och Python. Dessa klassiska SDK:er är dock äldre och får inga nya funktionsuppdateringar. Planera att migrera till OpenTelemetry för långsiktigt stöd.
Beroenden
Från och med version 2.x av Functions samlar Application Insights automatiskt in data om beroenden för bindningar som använder vissa klient-SDK:er. Application 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 databasanrop som använder SqlClient samlas också in. En fullständig lista över beroenden som stöds av Application Insights finns i Automatiskt spårade beroenden.
Application Insights genererar en programkarta över insamlade beroendedata. Följande är ett exempel på en programkarta över en HTTP-utlösarfunktion med en utdatabindning för kölagring.
Beroenden skrivs på Information nivån. Om du filtrerar vid Warning eller över ser du inte beroendedata. Dessutom sker automatisk insamling av beroenden i ett icke-användaromfång. För att samla in beroendedata, se till att nivån är inställd på minst Information utanför användarens omfång (Function.<YOUR_FUNCTION_NAME>.User) i hosten.
Förutom automatisk insamling av beroendedata kan du skriva anpassad beroendeinformation till loggarna. Den rekommenderade metoden är att använda OpenTelemetry-exportören för standardbaserad beroendespårning.
Du kan också använda språkspecifika klassiska Application Insights-SDK:er, men dessa är äldre och får inga nya funktionsuppdateringar:
- Logga anpassad telemetri i C#-funktioner
- Logga anpassad telemetri i JavaScript-funktioner
- Logga anpassad telemetri i Python-funktioner
Prestandaräknare
Automatisk samling prestandaräknare stöds inte när du kör på Linux.
Skriva till loggar
Hur du skriver till loggar och DE API:er som du använder beror på språket i ditt funktionsappprojekt. Läs utvecklarguiden för ditt språk om du vill veta mer om hur du skriver loggar från dina funktioner.
Analysera data
Som standard lagras data som samlas in från funktionsappen i Application Insights. I Azure-portalen tillhandahåller Application Insights en omfattande uppsättning visualiseringar av dina telemetridata. Du kan fördjupa dig i felloggar och fråga om händelser och mått. Mer information, inklusive grundläggande exempel på hur du visar och frågar efter dina insamlade data finns i Analyze Azure Functions telemetri i Application Insights.
Strömmande loggar
När du utvecklar ett program vill du ofta se vad som skrivs till loggarna nästan i realtid när det körs i Azure.
Det finns två sätt att visa en ström av loggdata som genereras av dina funktionskörningar.
Inbyggd loggströmning: Med App Service-plattformen kan du visa en ström av dina programloggfiler. Den här strömmen motsvarar utdata som visas när du felsöker dina funktioner under den lokala utvecklingen 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 endast en enskild 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 Insights kan du visa loggdata och andra mått nästan i realtid i Azure portalen 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 i 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
Med Application Insights kan du exportera telemetridata till långsiktig lagring eller andra analystjänster.
Eftersom Functions också integreras med Azure Monitor kan du också använda diagnostikinställningar för att skicka telemetridata till olika mål, inklusive Azure Monitor loggar. Mer information finns i Övervaka Azure Functions.
Loggfiler för skalningskontroll
Azure Functions skalningskontrollant övervakar instanser av den Azure Functions värd som appen körs på. Den här kontrollanten fattar beslut om när instanser ska läggas till eller tas bort baserat på aktuella prestanda. Du kan låta skalningskontrollanten skicka loggar till Application Insights för att bättre förstå de beslut som skalningskontrollanten 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 med namnet SCALE_CONTROLLER_LOGGING_ENABLED i inställningarna för funktionsappen. Se Konfigurera skalningskontrollantloggar för att lära dig hur.
Azure Monitor mått
Förutom loggbaserade telemetridata som samlas in av Application Insights kan du också hämta data om hur funktionsappen körs från Azure Monitor Metrics. Mer information finns i Övervaka Azure Functions.
Rapportera problem
Om du vill rapportera ett problem med Application Insights-integrering i Functions eller för att lägga fram ett förslag eller en begäran skapa ett problem i GitHub.
Nästa steg
Mer information finns i följande resurser: