Anteckning
Å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.
Application Insights är en utökningsbar tjänst för hantering av programprestanda som du kan använda för att övervaka aktiva program och automatiskt identifiera prestandaavvikelser. Den innehåller kraftfulla analysverktyg som hjälper dig att diagnostisera problem och förstå hur användare interagerar med ditt program. Den här arkitekturguiden innehåller metodtips för Application Insights baserat på de fem grundpelarna i Grundpelarna i Azure Well-Architected Framework.
Teknikomfång
Den här guiden fokuserar på de relaterade besluten för följande Azure-resurser:
- Application Insights
- Log Analytics-arbetsytorna
Note
Application Insights lagrar och exponerar data på en Log Analytics-arbetsyta. När du utvärderar dina mått behåller du Log Analytics som ett kritiskt beroende av Application Insights. För mer information, se Well-Architected Frameworks perspektiv på Log Analytics.
Reliability
Syftet med grundpelarna för tillförlitlighet är att tillhandahålla fortsatt funktionalitet genom att bygga upp tillräckligt med motståndskraft och möjlighet att snabbt återhämta sig från fel.
Principer för tillförlitlighetsdesign tillhandahålla en övergripande designstrategi som tillämpas för enskilda komponenter, systemflöden och systemet som helhet.
Checklista för arbetsbelastningsdesign
Påbörja din designstrategi baserat på checklistan för designgranskning för tillförlitlighet. Fastställ dess relevans för dina affärskrav och tänk på beroendet av Log Analytics. Utöka strategin till att omfatta fler metoder efter behov.
Anpassa din programövervakningsdesign till affärsmål och undvik onödig komplexitet. Fastställa antalet Application Insights-resurser som du behöver och var du ska distribuera dem.
Konfigurera sampling baserat på kritiska data. Identifiera användar- och systemflödena för din arbetsbelastning, fastställa de händelser som du vill samla in och konfigurera sampling i enlighet med detta.
- För manuellt instrumenterade program, se Azure Monitor OpenTelemetry Distro eller Application Insights SDK:er (klassiskt API).
- För autoinstrumentation beskrivs sampling i miljöspecifika artiklar. Mer information finns i Konfigurera sampling i Azure Functions.
Skapa en omfattande återhämtningsplan.
- Börja med att utföra en fellägesanalys för att identifiera potentiella scenarier när Application Insights kan misslyckas eller inte kan nås. Dessa orsaker kan vara nätverksproblem, autentiseringsproblem eller tjänststörningar.
- Avgör hur din arbetsbelastning ska fungera om Application Insights inte kan nås vid start eller under körning baserat på hur kritisk programövervakningen är för dina affärsmål. Definiera och dokumentera det förväntade beteendet för din arbetsbelastning.
- Testa återhämtningsplanen. Du kan till exempel verifiera nätverksfel med hjälp av en regel för nätverkssäkerhetsgrupp och autentisera fel genom att ändra anslutningssträngen.
Planera för återhämtning och återställning av arbetsytor genom att definiera mål för dina datainsamlingskomponenter.
- Utvärdera kritiskheten för de data som du samlar in och avgöra om de behöver återställas.
- Granska tjänstbegränsningarna för Application Insights - och Log Analytics-arbetsytan för att förstå begränsningar för datainsamling och kvarhållning samt andra aspekter av tjänsten.
- Överväg att flytta till ett dedikerat kluster för att dra nytta av arbetsytans motståndskraft där tillgängligheten för Application Insights-telemetri inom den definierade kvarhållningsperioden är affärskritisk.
- Använd diagnostikinställningar för att exportera plattformsloggar och mått till önskat mål (till exempel ett lagringskonto) i säkerhetskopierings- och återställningssyfte.
Implementera en tidsenlig och tillförlitlig skalningsstrategi för att planera för datainmatningstillväxt. Övervaka och justera gränserna för sampling och datainmatning när trafiken växer för att förhindra dataförlust på grund av sampling eller överskrider det dagliga taket. Detta säkerställer att datainmatningsprocessen skalas effektivt med ökad trafik.
Se till att programövervakningslösningen återställs snabbt om tjänsten misslyckas. Anta infrastruktur som kod och använd Bicep-mallar för att skapa eller återskapa användarupplevelsen i Application Insights, inklusive aviseringar, instrumentpaneler och frågor. Den här metoden hjälper till att säkerställa att alla kritiska komponenter snabbt återställs, vilket minimerar stilleståndstiden och bibehåller tjänstens tillförlitlighet.
Konfigurationsrekommendationer
| Recommendation | Benefit |
|---|---|
| Använd en Application Insights-resurs per arbetsbelastning per miljö, till exempel en för utveckling, en för mellanlagring och en för produktion. | Att använda flera Application Insights-resurser förhindrar att telemetri blandas från olika programversioner och säkerställer att en felkonfiguration av en resurs inte påverkar loggningen för en annan miljö. |
| Distribuera din Application Insights-resurs i samma region som den underliggande Log Analytics-arbetsytan. | Eftersom Application Insights kräver att Log Analytics fungerar korrekt, innebär det att båda resurserna i olika regioner fördubblar risken för att ett regionalt fel kan orsaka problem. |
| Implementera en elastisk arbetsytedesign med hjälp av metodtips för Azure Monitor-loggar. | Bästa praxis hjälper till att säkerställa kontinuerlig och robust övervakning genom att minimera störningar. |
Security
Syftet med säkerhetspelaren är att tillhandahålla garantier för konfidentialitet, integritet och tillgänglighet för arbetet.
Principerna för säkerhetsdesign ger en övergripande designstrategi för att uppnå dessa mål genom att tillämpa metoder för teknisk design av Application Insights.
Checklista för arbetsbelastningsdesign
Påbörja din designstrategi baserad på checklistan för designgranskning för säkerhet och identifiera sårbarheter och kontroller för att förbättra säkerhetsläget.
Granska säkerhetsbaslinjen för Azure Monitor. Det ger vägledning om rekommenderade säkerhetsmetoder för att skydda dina molnlösningar i Azure, inklusive Application Insights.
Håll Application Insights-instrumentationen uppdaterad för att säkerställa att din programövervakningslösning är säker. Följ vår SDK-uppdateringsvägledning och uppdatera Application Insights SDK:er (klassiskt API) minst en gång om året. Vi rekommenderar att du följer liknande metoder för Azure Monitor OpenTelemetry Distro.
Definiera en strategi för hantering av personuppgifter i Application Insights. För att säkerställa kontinuerlig efterlevnad kontrollerar du regelbundet att insamling och hantering av data, inklusive IP-adresser och personuppgifter, uppfyller relevanta regler, till exempel GDPR.
Skapa avsiktlig segmentering i programövervakningsdesignen. Fastställa antalet Application Insights-resurser som du behöver.
Använd kundhanterad nyckel i Azure Monitor. Som standard krypteras data i Azure Monitor med Microsoft-hanterade nycklar. Du kan använda din egen krypteringsnyckel för att skydda data och sparade frågor på dina arbetsytor. Kundhanterade nycklar i Azure Monitor ger dig större flexibilitet att hantera åtkomstkontroller för lagrade data.
Kontrollera nätverkstrafik. Överväg privat anslutning för åtkomst till Azure-tjänster. Privat anslutning isolerar effektivt din trafik från det offentliga Internet. Dataflöden för privata nätverk omfattar både datainmatning och frågeåtgärder, som var och en riktar sig till distinkta slutpunkter. Dessa slutpunkter kan hanteras oberoende av varandra. Med den här metoden kan du konfigurera privat inmatning samtidigt som offentlig frågeåtkomst upprätthålls, eller tvärtom. På så sätt kan du tillämpa principer för skydd på djupet genom att skapa lokaliserade nätverkskontroller vid alla tillgängliga nätverksgränser.
Förbättra dataskyddet genom att skydda lagringssystem och begränsa åtkomsten. Gå till Log Analytics-tjänstguiden för att lära dig hur du skyddar de data som du samlar in.
Konfigurationsrekommendationer
| Recommendation | Benefit |
|---|---|
| Om företagets behov och värdmiljö inte kräver manuell instrumentering bör du överväga att använda automatisk instrumentering. | Den här metoden eliminerar behovet av manuella SDK-uppdateringar, kräver inga kodändringar och eliminerar kostnaderna för att underhålla instrumentationskoden. Det kan också förbättra säkerheten genom att säkerställa konsekvent programövervakning utan manuella åtgärder. |
| Använd hanterade identiteter och Microsoft Entra-ID för dina autentiserings- och auktoriseringsbehov. | Eliminerar behovet av hantering av autentiseringsuppgifter eftersom Azure hanterar, roterar och skyddar dessa autentiseringsuppgifter. |
| Sluta samla in personuppgifter eller fördunkla, anonymisera eller justera insamlade data. Application Insights lagrar som standard inte IP-adresser. Vi rekommenderar att du behåller den här standardinställningen. | Undantar dina data från att betraktas som personliga och förhindrar att efterlevnadskrav eller lokala regler bryts. |
| Använd en Application Insights-resurs per arbetsbelastning per miljö. Använd till exempel en för utveckling, en för mellanlagring och en för produktion. | Genom att använda flera Application Insights-resurser kan du säkerställa dataisolering och säkerhet och gör det enklare att tillämpa miljöspecifika konfigurationer och åtkomstkontroller. |
| Använd Azure Private Link för att få åtkomst till Azure-tjänster via en privat slutpunkt. Följ konfigurationen och begränsningarna. Undvik att ansluta din AMPLS till flera virtuella nätverk som delar samma DNS eftersom detta orsakar felaktiga privata slutpunktsfel. | En korrekt konfigurerad AMPLS-topologi förbättrar konfidentialiteten för dina arbetsbelastningsloggar genom att behålla loggningstrafiken i helt privata nätverk. |
Kostnadsoptimering
Kostnadsoptimering fokuserar på identifiera utgiftsmönster, prioritera investeringar inom kritiska områden och optimera i andra för att uppfylla organisationens budget samtidigt som affärskraven uppfylls.
Designprinciperna för kostnadsoptimering ger en övergripande designstrategi för att uppnå dessa mål och göra kompromisser vid behov i den tekniska designen som rör Application Insights och dess miljö.
Mer information om hur dataavgifter beräknas för de underliggande Log Analytics-arbetsytorna för dina Application Insights-resurser finns i Kostnadsberäkningar och alternativ för Azure Monitor-loggar.
Checklista för arbetsbelastningsdesign
Påbörja din designstrategi baserat på checklistan för designgranskning och kostnadsoptimering för investeringar. Finjustera designen så att arbetsbelastningen är i linje med den budget som allokeras för arbetsbelastningen. Din design bör använda rätt Azure-funktioner, övervaka investeringar och hitta möjligheter att optimera över tid.
Granska prissättningen för Azure Monitor för att skapa en kostnadsmodell. Beräkna den initiala kostnaden, körningspriserna och de löpande kostnaderna med hjälp av priskalkylatorn. Observera att Application Insights faktureras via Log Analytics-arbetsytan där loggdata matas in.
Justera mängden data som samlas in.
- Använd sampling på Application Insights-nivå för att minska datatrafik och lagringskostnader samtidigt som en statistiskt korrekt analys av programdata bevaras.
- Application Insights har flera möjliga loggkällor. Använd loggnivåer för att finjustera och minska telemetri för spårningsloggar.
Begränsa oplanerade avgifter för din arbetsyta. Du kan ange ett dagligt tak i både Application Insights och Log Analytics.
Granska kostnader som regional prissättning och tillgängliga prisnivåer regelbundet. De viktigaste avgifterna för de flesta Azure Monitor-implementeringar är vanligtvis inmatning och kvarhållning av data på dina Log Analytics-arbetsytor. Mer information finns i Kostnadsberäkningar och alternativ för Azure Monitor-loggar eller avsnittet Kostnadsoptimering i Log Analytics-tjänstguiden.
Ta bort eller optimera äldre, onödiga och underutnyttade komponenter i din programövervakningslösning regelbundet.Redigera ApplicationInsights.config för att inaktivera samlingsmoduler som du inte behöver. Du kan till exempel bestämma att prestandaräknare eller beroendedata inte krävs. Använd telemetrifilter eller processorer i kod för att optimera komponentkostnaderna genom att inte logga eller ta prover på irrelevanta anrop.
Optimera miljökostnader. Ta reda på hur många Application Insights-resurser du behöver och var de ska distribueras. Optimera loggnivåer och mått som samlas in per miljö för att hantera kostnaderna effektivt. Produktionsmiljöer kan till exempel kräva olika loggningsnivåer jämfört med utvecklingsmiljöer.
Optimera flödeskostnader. Använd telemetrifilter eller processorer i kod för att optimera komponentkostnaderna genom att inte logga eller ta prover på irrelevanta anrop.
Optimera kodkostnader. Se till att använda uppdaterade Application Insights-SDK:er. Tidigare versioner av ASP.NET Core SDK och Worker Service SDK samlar in många räknare som standard, vilka samlades in som anpassade mått. Använd senare versioner för att endast ange nödvändiga räknare.
Optimera personaltiden. Använd Application Insights-funktioner, till exempel programkartan och fel- och prestandavyer, samt anpassa sparade frågor, instrumentpaneler och arbetsböcker för dina specifika arbetsbelastningsbehov . Håll reda på dina distributioner och andra händelser med versionsanteckningar.
Konfigurationsrekommendationer
| Recommendation | Benefit |
|---|---|
| Ange ett dagligt tak i både Application Insights och Log Analytics, men försök att undvika att nå det. | Om du når den dagliga gränsen kan data inte skrivas till din Log Analytics-arbetsyta. Att ange ett tak är en riskfylld men effektiv lösning för begränsning av utgifter. |
| För standardtillgänglighetstester kan behovet av testning från olika platser variera mellan produktions- och förproduktionsmiljöer. Minska antalet platser i enlighet med detta. | Tester medför kostnader, så ha bara tillräckligt med tester för att ge dig säkerhet om din arbetsbelastnings hälsa. |
| Distribuera din Application Insights-resurs i samma region som den underliggande Log Analytics-arbetsytan. | Den här metoden minimerar svarstiden och minskar kostnaderna för telemetri mellan regioner. |
| Minska urvalshastigheten för mindre kritiska flöden och öka den för flöden med hög kritiskhet. Använd telemetrifilter för icke-viktig telemetri. | Datavolym är en kostnadsdrivande faktor när du utformar din Application Insights-integrering. Att minska datavolymen genom exempelfrekvenser och filter är en möjlig lösning för att hålla datainsamlingen under kontroll. |
| Begränsa antalet Ajax-anrop som kan rapporteras i varje sidvy eller inaktivera Ajax-rapportering. Om du inaktiverar Ajax-anrop inaktiverar du även JavaScript-korrelation. | Datavolym är en kostnadsdrivande faktor när du utformar Application Insights-integreringen för klientprogrammet. Att minska datavolymen genom minskad rapportering av klientsidor är en möjlig lösning för att hålla dina kostnader för datainsamling under kontroll. |
| Använd föraggregerade mått för att hantera telemetridata med stora volymer mer effektivt och begränsa användningen av anpassade mått. Alternativet Application Insights för att aktivera aviseringar för anpassade måttdimensioner kan dock också öka kostnaderna. Använd mått för att säkerställa att kostnadsbesparingar erhålls. | Alla anpassade mått lagras i både loggar och måttlager. Föraggregerade mått minskar lagringskostnaderna relaterade till anpassade mått. |
| Om företagets behov och värdmiljö inte kräver manuell instrumentering bör du överväga att använda automatisk instrumentering. | Den här metoden optimerar tiden för programvaruutveckling genom att eliminera behovet av manuella SDK-uppdateringar, kodändringar relaterade till nya versioner och omkostnaderna för att underhålla instrumentationskod. |
| Begränsa oönskad spårningsloggning: • Ta bort hälsokontroller. Se Filtrera bort bullriga spårningar i Optimera kostnader med hjälp av Azure Monitor OpenTelemetry Distro. • För Azure Kubernetes Service (AKS) justerar du kontrollplans- och dataplansloggar. • För Azure Functions anpassar du loggnivåer och omfång för att optimera loggvolymen. |
Om du begränsar oönskad spårningsloggning minskar mängden lagrade data, vilket kan sänka lagringskostnaderna. |
Operativ skicklighet
Operational Excellence fokuserar främst på procedurer för utvecklingsmetoder, observerbarhet och versionshantering.
Designprinciperna för Operational Excellence tillhandahåller en övergripande designstrategi för att uppnå dessa mål när det gäller arbetsbelastningens driftskrav.
Checklista för arbetsbelastningsdesign
Starta din designstrategi baserat på checklistan för designgranskning för operational excellence för att definiera processer för observerbarhet, testning och distribution som är relaterade till Application Insights.
Integrera dina programövervakningsteams specialiseringar i en robust uppsättning metoder för att instrumentera och övervaka din arbetsbelastning. Välj en instrumenteringsmetod (till exempel autoinstrumentation eller manuell instrumentering) som passar bäst för din situation baserat på dina affärsbehov och miljöer, språk och resursprovidrar som stöds.
Säkerställ optimala prestanda för din programövervakningslösning genom att hålla Application Insights-instrumentationen uppdaterad. Följ vår SDK-uppdateringsvägledning och uppdatera Application Insights SDK:er (klassiskt API) minst en gång om året. Vi rekommenderar att du följer liknande metoder för Azure Monitor OpenTelemetry Distro. Med hjälp av de senaste SDK- eller Distro-versionerna säkerställer du åtkomst till supporttjänster och tillhandahåller de senaste funktionerna och felkorrigeringarna.
Formalisera idé- och planeringsprocesser. Använd ingetration av arbetsobjekt för att enkelt skapa arbetsobjekt i GitHub eller Azure DevOps som har relevanta Application Insights-data inbäddade i dem.
Konfigurera Application Insights för att övervaka tillgängligheten och svarstiden för ditt webbprogram. Använd inbyggda funktioner som frågor och instrumentpaneler baserat på dina specifika affärsbehov. När du har distribuerat programmet konfigurerar du återkommande tester för att övervaka tillgänglighet och svarstider.
Utveckla en effektiv metod för nödsituationsåtgärder. Använd aviseringar och arbetsböcker för att identifiera och svara på incidenter. Definiera tydligt mänskliga ansvarstaganden. Ta till exempel reda på vem som startar om programmet om din tjänst misslyckas.
Definiera arbetsbelastningens säkra distributionsmetoder tydligt. Använd Release-anteckningar som en del av dina strategier för felhantering för att hålla reda på dina distributioner och andra händelser.
Konfigurationsrekommendationer
| Recommendation | Benefit |
|---|---|
| Om företagets behov och värdmiljö inte kräver manuell instrumentering bör du överväga att använda automatisk instrumentering. | Den här metoden optimerar tiden för programvaruutveckling genom att eliminera behovet av manuella SDK-uppdateringar, kodändringar relaterade till nya versioner och omkostnaderna för att underhålla instrumentationskod. |
| Om ditt företag behöver manuell instrumentering antar du Azure Monitor OpenTelemetry Distro. | Undvik en framtida tvingad migrering från Application Insights SDK:er (klassiskt API) genom att använda en OpenTelemetry-baserad instrumenteringsmetod. |
| Använd anslutningssträngar. | Gör telemetriinmatningen mer tillförlitlig och ta bort beroenden för globala inmatningsslutpunkter. |
Prestandaeffektivitet
Prestandaeffektivitet handlar om upprätthålla användarupplevelsen även när belastningen ökar genom att hantera kapaciteten. Strategin omfattar skalning av resurser, identifiering och optimering av potentiella flaskhalsar och optimering för högsta prestanda.
Designprinciperna för prestandaeffektivitet tillhandahåller en designstrategi på hög nivå för att uppnå dessa kapacitetsmål med hänsyn till den förväntade användningen.
Checklista för arbetsbelastningsdesign
Påbörja din designstrategi baserad på designgranskningschecklista för prestanda och effektivitet. Definiera en baslinje som baseras på viktiga prestandaindikatorer för Application Insights.
Definiera prestandamål som är relaterade till dina programövervakningskrav. Fastställa antalet Application Insights-resurser som du behöver.
Genomföra kapacitetsplanering. Förstå användningsmönster och hur mycket data som kommer in och granska inmatnings- och exempelfrekvenser.
Välj rätt region för din programövervakningslösning. Distribuera din Application Insights-resurs i samma region som den underliggande Log Analytics-arbetsytan för att förhindra problem med svarstid och tillförlitlighet. Se Skapa en resurs.
Utvärdera hur många Application Insights-resurser du behöver. Övervakning av mulitple-program eller programkomponenter med en enda Application Insights-resurs ger en holistisk vy, men kan också påverka prestanda för upplevelser som programkarta och användning.
Optimera kod och infrastruktur. Utvärdera regelbundet anpassad Application Insights-kod för att minska komplexiteten, förbättra prestandan och se till att koden är uppdaterad.
Förstå användningsmönster och hur mycket data som kommer in genom att granska inmatnings- och exempelfrekvenser. Om du vill optimera dataanvändningen justerar du dem därefter och minskar mängden anpassade mått, till exempel ITelemetryProcessor.
Optimera prestanda kontinuerligt. Använd inbyggda funktioner som smart identifiering, frågor och instrumentpaneler för att hitta komponenter som visar sämre prestanda.
Konfigurationsrekommendationer
| Recommendation | Benefit |
|---|---|
| Använd en Application Insights-resurs per arbetsbelastning per miljö (till exempel en för utveckling, en för mellanlagring och en för produktion). | Den här metoden förhindrar att telemetri blandas från olika programversioner. |
| När så är tillämpligt ska du se till att profileringsfrekvensen och varaktigheten anges på rätt sätt. | Undvik att lägga till alltför stor belastning på den pågående processen. |
Azure-riktlinjer
Azure tillhandahåller en omfattande uppsättning inbyggda principer som rör Application Insights och dess beroenden. Några av föregående rekommendationer kan granskas via Azure Policy. Du kan till exempel kontrollera om:
- Application Insights-komponenter bör förhindra logginmatning av offentliga nätverk eller källor som Microsoft Entra-ID inte autentiserar.
- Du bör framtvinga länkning av Application Insights-komponenten till en Log Analytics-arbetsyta för att kryptera loggar.
För en omfattande styrning, granska de inbyggda definitionerna i Azure Policy för Application Insights och andra principer som kan påverka säkerheten för lösningen för övervakning av programprestanda.
Azure Advisor-rekommendationer
Azure Advisor är en anpassad molnkonsult som hjälper dig att följa metodtipsen för att optimera dina Azure-distributioner.
Mer information finns i Azure Advisor.
Relaterat innehåll
- Application Insights
- Vägledning för övervakning och diagnostik
- Azure Well-Architected Framework-perspektiv på Log Analytics
- Aktivera programövervakning i Azure App Service för .NET-, Node.js-, Python- och Java-program
- Aktivera Azure Monitor OpenTelemetry för .NET-, Node.js-, Python- och Java-program