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.
Varning
Vi rekommenderar Azure Monitor OpenTelemetry Distro för nya program eller kunder för att driva Azure Monitor Application Insights. Azure Monitor OpenTelemetry Distro ger en liknande funktion och upplevelse som Application Insights SDK. Det går att migrera från Application Insights SDK med hjälp av migreringsguiderna för .NET, Node.js och Python, men vi arbetar fortfarande med att lägga till ytterligare några funktioner för bakåtkompatibilitet.
Den här artikeln beskriver hur du aktiverar och konfigurerar Application Insights för ASP.NET- och ASP.NET Core-program. Den här proceduren konfigurerar ditt program för att skicka telemetri till Application Insights.
Application Insights kan samla in följande telemetri från dina ASP.NET- och ASP.NET Core-program:
- Förfrågningar
- Beroenden
- Undantag
- Prestandaräknare
- Spårningar (loggar)
- Hjärtslag
- Anpassade händelser och mått (kräver manuell instrumentering)
- Sidvisningar (kräver JavaScript SDK för webbsidor)
- Tillgänglighetstester (kräver manuellt konfiguration av tillgänglighetstester)
Scenarier som stöds
Kommentar
Application Insights SDK för ASP.NET Core kan övervaka dina program oavsett var eller hur de körs. Om programmet körs och har nätverksanslutning till Azure kan telemetri samlas in. Application Insights-övervakning stöds överallt där .NET Core stöds.
Understödd | ASP.NET | ASP.NET Core |
---|---|---|
Operativsystem | Windows | Windows, Linux eller Mac |
Värdtjänstmetod | Pågående (IIS eller IIS Express) | Inuti processen eller utanför processen |
Distributionsmetod | Webbdistribution, MSI eller manuell filkopiering | Ramverksberoende eller fristående |
Webbserver | Internet Information Services (IIS) | Internet Information Server (IIS) eller Kestrel |
Värdplattform | Azure App Service (Windows), Virtuella Azure-datorer eller lokala servrar | Funktionen Web Apps i Azure App Service, Azure Virtual Machines, Docker och Azure Kubernetes Service (AKS) |
.NET-version | .NET Framework 4.6.1 och senare | Alla .NET-versioner som stöds officiellt och som inte finns i förhandsversionen |
IDE | Visual Studio | Visual Studio, Visual Studio Code eller kommandorad |
Förutsättningar
- En Azure-prenumeration. Om du inte redan har ett skapar du ett kostnadsfritt Azure-konto.
- En Application Insights-arbetsytebaserad resurs.
- Ett fungerande webbprogram. Om du inte redan har en kan du läsa Skapa en grundläggande webbapp.
- Den senaste versionen av Visual Studio med följande arbetsbelastningar:
- ASP.NET- och webbutveckling
- Azure development (Azure-utveckling)
Skapa en grundläggande webbapp
Vi använder ett MVC-programexempel . Om du använder Arbetstjänsten använder du anvisningarna i Application Insights för Worker Service-program.
- Öppna Visual Studio.
- Välj Skapa ett nytt projekt.
- Välj ASP.NET webbprogram (.NET Framework) med C# och välj Nästa.
- Ange ett projektnamn och välj sedan Skapa.
- Välj MVC och välj sedan Skapa.
Lägg till Application Insights automatiskt (Visual Studio)
Det här avsnittet vägleder dig genom att automatiskt lägga till Application Insights i en mallbaserad webbapp.
Kommentar
Om du vill använda den fristående ILogger-providern för ditt ASP.NET-program använder du Microsoft.Extensions.Logging.ApplicationInsight.
Inifrån ditt ASP.NET webbappsprojekt i Visual Studio:
Välj Projekt>Lägg till Application Insights Telemetry>Application Insights SDK (lokal)>Nästa>Slutför>Stäng.
Öppna filen ApplicationInsights.config.
Innan du stänger
</ApplicationInsights>
taggen lägger du till en rad som innehåller anslutningssträng för Application Insights-resursen. Hitta din anslutningssträng i översiktsfönstret för den nyligen skapade Application Insights-resursen.<ConnectionString>Copy connection string from Application Insights Resource Overview</ConnectionString>
Välj Projekt>Hantera NuGet-paket>Uppdateringar. Uppdatera sedan varje
Microsoft.ApplicationInsights
NuGet-paket till den senaste stabila versionen.Kör programmet genom att välja IIS Express. En grundläggande ASP.NET app öppnas. När du bläddrar igenom sidorna på webbplatsen skickas telemetri till Application Insights.
Lägg till Application Insights manuellt (ingen Visual Studio)
Det här avsnittet vägleder dig genom att lägga till Application Insights manuellt i en mallbaserad webbapp.
Lägg till följande NuGet-paket och deras beroenden i projektet:
I vissa fall skapas applicationinsights.config-filen automatiskt åt dig. Om filen redan finns går du vidare till steg 4.
Skapa den själv om den saknas. I rotkatalogen för ett ASP.NET-program skapar du en ny fil med namnet ApplicationInsights.config.
Kopiera följande XML-konfiguration till den nyligen skapade filen:
<?xml version="1.0" encoding="utf-8"?> <ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings"> <TelemetryInitializers> <Add Type="Microsoft.ApplicationInsights.DependencyCollector.HttpDependenciesParsingTelemetryInitializer, Microsoft.AI.DependencyCollector" /> <Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer" /> <Add Type="Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer, Microsoft.AI.WindowsServer" /> <Add Type="Microsoft.ApplicationInsights.Web.WebTestTelemetryInitializer, Microsoft.AI.Web" /> <Add Type="Microsoft.ApplicationInsights.Web.SyntheticUserAgentTelemetryInitializer, Microsoft.AI.Web"> <!-- Extended list of bots: search|spider|crawl|Bot|Monitor|BrowserMob|BingPreview|PagePeeker|WebThumb|URL2PNG|ZooShot|GomezA|Google SketchUp|Read Later|KTXN|KHTE|Keynote|Pingdom|AlwaysOn|zao|borg|oegp|silk|Xenu|zeal|NING|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|Java|JNLP|Daumoa|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|vortex|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|voyager|archiver|Icarus6j|mogimogi|Netvibes|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|wsr-agent|http client|Python-urllib|AppEngine-Google|semanticdiscovery|facebookexternalhit|web/snippet|Google-HTTP-Java-Client--> <Filters>search|spider|crawl|Bot|Monitor|AlwaysOn</Filters> </Add> <Add Type="Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer, Microsoft.AI.Web" /> <Add Type="Microsoft.ApplicationInsights.Web.AzureAppServiceRoleNameFromHostNameHeaderInitializer, Microsoft.AI.Web" /> <Add Type="Microsoft.ApplicationInsights.Web.OperationNameTelemetryInitializer, Microsoft.AI.Web" /> <Add Type="Microsoft.ApplicationInsights.Web.OperationCorrelationTelemetryInitializer, Microsoft.AI.Web" /> <Add Type="Microsoft.ApplicationInsights.Web.UserTelemetryInitializer, Microsoft.AI.Web" /> <Add Type="Microsoft.ApplicationInsights.Web.AuthenticatedUserIdTelemetryInitializer, Microsoft.AI.Web" /> <Add Type="Microsoft.ApplicationInsights.Web.AccountIdTelemetryInitializer, Microsoft.AI.Web" /> <Add Type="Microsoft.ApplicationInsights.Web.SessionTelemetryInitializer, Microsoft.AI.Web" /> </TelemetryInitializers> <TelemetryModules> <Add Type="Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector"> <ExcludeComponentCorrelationHttpHeadersOnDomains> <!-- Requests to the following hostnames will not be modified by adding correlation headers. Add entries here to exclude additional hostnames. NOTE: this configuration will be lost upon NuGet upgrade. --> <Add>core.windows.net</Add> <Add>core.chinacloudapi.cn</Add> <Add>core.cloudapi.de</Add> <Add>core.usgovcloudapi.net</Add> </ExcludeComponentCorrelationHttpHeadersOnDomains> <IncludeDiagnosticSourceActivities> <Add>Microsoft.Azure.EventHubs</Add> <Add>Azure.Messaging.ServiceBus</Add> </IncludeDiagnosticSourceActivities> </Add> <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector"> <!-- Use the following syntax here to collect additional performance counters: <Counters> <Add PerformanceCounter="\Process(??APP_WIN32_PROC??)\Handle Count" ReportAs="Process handle count" /> ... </Counters> PerformanceCounter must be either \CategoryName(InstanceName)\CounterName or \CategoryName\CounterName NOTE: performance counters configuration will be lost upon NuGet upgrade. The following placeholders are supported as InstanceName: ??APP_WIN32_PROC?? - instance name of the application process for Win32 counters. ??APP_W3SVC_PROC?? - instance name of the application IIS worker process for IIS/ASP.NET counters. ??APP_CLR_PROC?? - instance name of the application CLR process for .NET counters. --> </Add> <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector" /> <Add Type="Microsoft.ApplicationInsights.WindowsServer.AppServicesHeartbeatTelemetryModule, Microsoft.AI.WindowsServer" /> <Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureInstanceMetadataTelemetryModule, Microsoft.AI.WindowsServer"> <!-- Remove individual fields collected here by adding them to the ApplicationInsighs.HeartbeatProvider with the following syntax: <Add Type="Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule, Microsoft.ApplicationInsights"> <ExcludedHeartbeatProperties> <Add>osType</Add> <Add>location</Add> <Add>name</Add> <Add>offer</Add> <Add>platformFaultDomain</Add> <Add>platformUpdateDomain</Add> <Add>publisher</Add> <Add>sku</Add> <Add>version</Add> <Add>vmId</Add> <Add>vmSize</Add> <Add>subscriptionId</Add> <Add>resourceGroupName</Add> <Add>placementGroupId</Add> <Add>tags</Add> <Add>vmScaleSetName</Add> </ExcludedHeartbeatProperties> </Add> NOTE: exclusions will be lost upon upgrade. --> </Add> <Add Type="Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule, Microsoft.AI.WindowsServer" /> <Add Type="Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule, Microsoft.AI.WindowsServer" /> <Add Type="Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule, Microsoft.AI.WindowsServer"> <!--</Add> <Add Type="Microsoft.ApplicationInsights.WindowsServer.FirstChanceExceptionStatisticsTelemetryModule, Microsoft.AI.WindowsServer">--> </Add> <Add Type="Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule, Microsoft.AI.Web"> <Handlers> <!-- Add entries here to filter out additional handlers: NOTE: handler configuration will be lost upon NuGet upgrade. --> <Add>Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler</Add> <Add>System.Web.StaticFileHandler</Add> <Add>System.Web.Handlers.AssemblyResourceLoader</Add> <Add>System.Web.Optimization.BundleHandler</Add> <Add>System.Web.Script.Services.ScriptHandlerFactory</Add> <Add>System.Web.Handlers.TraceHandler</Add> <Add>System.Web.Services.Discovery.DiscoveryRequestHandler</Add> <Add>System.Web.HttpDebugHandler</Add> </Handlers> </Add> <Add Type="Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule, Microsoft.AI.Web" /> <Add Type="Microsoft.ApplicationInsights.Web.AspNetDiagnosticTelemetryModule, Microsoft.AI.Web" /> </TelemetryModules> <ApplicationIdProvider Type="Microsoft.ApplicationInsights.Extensibility.Implementation.ApplicationId.ApplicationInsightsApplicationIdProvider, Microsoft.ApplicationInsights" /> <TelemetrySinks> <Add Name="default"> <TelemetryProcessors> <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector" /> <Add Type="Microsoft.ApplicationInsights.Extensibility.AutocollectedMetricsExtractor, Microsoft.ApplicationInsights" /> <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel"> <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond> <ExcludedTypes>Event</ExcludedTypes> </Add> <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel"> <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond> <IncludedTypes>Event</IncludedTypes> </Add> <!-- Adjust the include and exclude examples to specify the desired semicolon-delimited types. (Dependency, Event, Exception, PageView, Request, Trace) --> </TelemetryProcessors> <TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel" /> </Add> </TelemetrySinks> <!-- Learn more about Application Insights configuration with ApplicationInsights.config here: http://go.microsoft.com/fwlink/?LinkID=513840 --> <ConnectionString>Copy the connection string from your Application Insights resource</ConnectionString> </ApplicationInsights>
Lägg till anslutningssträng, vilket kan göras på två sätt:
(Rekommenderas) Ange anslutningssträng i konfigurationen.
Innan den avslutande
</ApplicationInsights>
taggen i ApplicationInsights.config lägger du till anslutningssträng för Application Insights-resursen. Du hittar din anslutningssträng i översiktsfönstret för den nyligen skapade Application Insights-resursen.<ConnectionString>Copy the connection string from your Application Insights resource</ConnectionString>
Ange anslutningssträng i kod.
Ange en anslutningssträng i klassen program.cs.
var configuration = new TelemetryConfiguration { ConnectionString = "Copy the connection string from your Application Insights resource" };
På samma nivå i projektet som applicationInsights.config-filen skapar du en mapp med namnet ErrorHandler med en ny C#-fil med namnet AiHandleErrorAttribute.cs. Innehållet i filen ser ut så här:
using System; using System.Web.Mvc; using Microsoft.ApplicationInsights; namespace WebApplication10.ErrorHandler //namespace will vary based on your project name { [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)] public class AiHandleErrorAttribute : HandleErrorAttribute { public override void OnException(ExceptionContext filterContext) { if (filterContext != null && filterContext.HttpContext != null && filterContext.Exception != null) { //If customError is Off, then AI HTTPModule will report the exception if (filterContext.HttpContext.IsCustomErrorEnabled) { var ai = new TelemetryClient(); ai.TrackException(filterContext.Exception); } } base.OnException(filterContext); } } }
I mappen App_Start öppnar du filen FilterConfig.cs och ändrar den så att den matchar exemplet:
using System.Web; using System.Web.Mvc; namespace WebApplication10 //Namespace will vary based on project name { public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new ErrorHandler.AiHandleErrorAttribute()); } } }
Om Web.config redan har uppdaterats hoppar du över det här steget. Annars uppdaterar du filen på följande sätt:
<?xml version="1.0" encoding="utf-8"?> <!-- For more information on how to configure your ASP.NET application, please visit https://go.microsoft.com/fwlink/?LinkId=301880 --> <configuration> <appSettings> <add key="webpages:Version" value="3.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> </appSettings> <system.web> <compilation debug="true" targetFramework="4.7.2" /> <httpRuntime targetFramework="4.7.2" /> <!-- Code added for Application Insights start --> <httpModules> <add name="TelemetryCorrelationHttpModule" type="Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule, Microsoft.AspNet.TelemetryCorrelation" /> <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" /> </httpModules> <!-- Code added for Application Insights end --> </system.web> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" /> <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" /> <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-5.2.7.0" newVersion="5.2.7.0" /> </dependentAssembly> <!-- Code added for Application Insights start --> <dependentAssembly> <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" /> </dependentAssembly> <!-- Code added for Application Insights end --> </assemblyBinding> </runtime> <system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" /> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" /> </compilers> </system.codedom> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> <!-- Code added for Application Insights start --> <modules> <remove name="TelemetryCorrelationHttpModule" /> <add name="TelemetryCorrelationHttpModule" type="Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule, Microsoft.AspNet.TelemetryCorrelation" preCondition="managedHandler" /> <remove name="ApplicationInsightsWebTracking" /> <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" /> </modules> <!-- Code added for Application Insights end --> </system.webServer> </configuration>
Nu har du konfigurerat programövervakning på serversidan. Om du kör webbappen ser du att telemetri börjar visas i Application Insights.
Kör ditt program
Kör ditt program och skicka begäranden till det. Telemetri bör nu flöda till Application Insights. Application Insights SDK samlar automatiskt in inkommande webbförfrågningar till ditt program, tillsammans med följande telemetri.
Livemått
Live-mätvärden kan användas för att snabbt kontrollera om programövervakning via Application Insights är korrekt konfigurerad. Det kan ta några minuter innan telemetri visas i Azure Portal, men fönstret livemått visar CPU-användningen i den körande processen i nästan realtid. Den kan också visa andra telemetrier som begäranden, beroenden och spårningar.
Kommentar
Realtidsmått aktiveras som standard när du konfigurerar det med hjälp av de rekommenderade anvisningarna för .NET-program.
Aktivera livemått med hjälp av kod för alla .NET-program
Så här konfigurerar du livemått manuellt:
Installera NuGet-paketet Microsoft.ApplicationInsights.PerfCounterCollector.
Följande exempelkonsolappkod visar hur du konfigurerar livemått:
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;
using System;
using System.Threading.Tasks;
namespace LiveMetricsDemo
{
class Program
{
static void Main(string[] args)
{
// Create a TelemetryConfiguration instance.
TelemetryConfiguration config = TelemetryConfiguration.CreateDefault();
config.InstrumentationKey = "INSTRUMENTATION-KEY-HERE";
QuickPulseTelemetryProcessor quickPulseProcessor = null;
config.DefaultTelemetrySink.TelemetryProcessorChainBuilder
.Use((next) =>
{
quickPulseProcessor = new QuickPulseTelemetryProcessor(next);
return quickPulseProcessor;
})
.Build();
var quickPulseModule = new QuickPulseTelemetryModule();
// Secure the control channel.
// This is optional, but recommended.
quickPulseModule.AuthenticationApiKey = "YOUR-API-KEY-HERE";
quickPulseModule.Initialize(config);
quickPulseModule.RegisterTelemetryProcessor(quickPulseProcessor);
// Create a TelemetryClient instance. It is important
// to use the same TelemetryConfiguration here as the one
// used to set up live metrics.
TelemetryClient client = new TelemetryClient(config);
// This sample runs indefinitely. Replace with actual application logic.
while (true)
{
// Send dependency and request telemetry.
// These will be shown in live metrics.
// CPU/Memory Performance counter is also shown
// automatically without any additional steps.
client.TrackDependency("My dependency", "target", "http://sample",
DateTimeOffset.Now, TimeSpan.FromMilliseconds(300), true);
client.TrackRequest("My Request", DateTimeOffset.Now,
TimeSpan.FromMilliseconds(230), "200", true);
Task.Delay(1000).Wait();
}
}
}
}
ILogger-loggar
Standardkonfigurationen samlar in ILogger
Warning
loggar och allvarligare loggar. Mer information finns i Hur gör jag för att anpassa ILogger-loggsamlingen?.
Beroenden
Beroendeinsamling är aktiverad som standard. Beroendespårning i Application Insights förklarar de beroenden som samlas in automatiskt och innehåller även steg för att utföra manuell spårning.
Prestandaräknare
ASP.NET har fullt stöd för prestandaräknare, medan ASP.NET Core erbjuder begränsad support beroende på SDK-versionen och värdmiljön. Mer information finns i Räknare för .NET i Application Insights.
Händelseräknare
Application Insights stöder insamling av EventCounters med dess EventCounterCollectionModule
, vilket är aktiverat som standard för ASP.NET Core. Information om hur du konfigurerar listan över räknare som ska samlas in finns i Räknare för .NET i Application Insights.
Utöka data via HTTP
var requestTelemetry = HttpContext.Current?.Items["Microsoft.ApplicationInsights.RequestTelemetry"] as RequestTelemetry;
if (requestTelemetry != null)
{
requestTelemetry.Properties["myProp"] = "someData";
}
Konfigurera Application Insights SDK
Du kan anpassa Application Insights SDK för ASP.NET och ASP.NET Core för att ändra standardkonfigurationen.
Information om hur du konfigurerar Application Insights SDK för ASP.NET program finns i Konfigurera Application Insights SDK med ApplicationInsights.config eller .xml.
Provtagning
Mer information om hur du konfigurerar sampling för ASP.NET program finns i Sampling i Application Insights.
Telemetriinitierare
Om du vill utöka telemetri med ytterligare information eller åsidosätta telemetriegenskaper som anges av standardtelemetrimodulerna använder du telemetriinitierare.
Information om hur du använder telemetriinitierare med ASP.NET program finns i Filtrera och förbearbeta telemetri i Application Insights SDK.
Telemetriprocessorer
Information om hur du använder telemetriprocessorer med ASP.NET program finns i Filtrera och förbearbeta telemetri i Application Insights SDK.
Konfigurera eller ta bort standardtelemetrimoduler
Application Insights samlar automatiskt in telemetri om specifika arbetsbelastningar utan att användaren behöver manuell spårning.
Som standard är följande moduler för automatisk insamling aktiverade. Dessa moduler ansvarar för att automatiskt samla in telemetri. Du kan inaktivera eller konfigurera dem för att ändra deras standardbeteende.
-
RequestTrackingTelemetryModule
: Samlar in RequestTelemetry från inkommande webbbegäranden. -
DependencyTrackingTelemetryModule
: Samlar in DependencyTelemetry från utgående HTTP-anrop och SQL-anrop. -
PerformanceCollectorModule
: Samlar in Windows PerformanceCounters. -
QuickPulseTelemetryModule
: Samlar in telemetri som ska visas i fönstret livemått. -
AppServicesHeartbeatTelemetryModule
: Samlar in pulsslag (som skickas som anpassade mått) om App Service-miljön där programmet finns. -
AzureInstanceMetadataTelemetryModule
: Samlar in pulsslag (som skickas som anpassade mått) om den virtuella Azure-datormiljö där programmet finns. -
EventCounterCollectionModule
: Samlar in EventCounters. Den här modulen är en ny funktion och är tillgänglig i SDK version 2.8.0 och senare.
Information om hur du konfigurerar eller tar bort telemetrimoduler för ASP.NET program finns i Konfigurera Application Insights SDK med ApplicationInsights.config eller .xml.
Lägga till övervakning på klientsidan
De föregående avsnitten gav vägledning om metoder för att automatiskt och manuellt konfigurera övervakning på serversidan. Om du vill lägga till övervakning på klientsidan använder du JavaScript SDK på klientsidan. Du kan övervaka en webbsidas transaktioner på klientsidan genom att lägga till ett JavaScript-SDK-inläsningsskript (Web) före den avslutande </head>
taggen för sidans HTML.
Även om det är möjligt att manuellt lägga till SDK-inläsningsskriptet för JavaScript (Web) i sidhuvudet på varje HTML-sida rekommenderar vi att du i stället lägger till JavaScript-SDK-inläsningsskriptet (Web) på en primär sida. Den åtgärden injicerar JavaScript (webb) SDK-laddningsskriptet i alla sidor på en webbplats.
För den mallbaserade ASP.NET MVC-appen från den här artikeln är filen som du behöver redigera _Layout.cshtml. Du hittar den under Vy>Delat. Om du vill lägga till övervakning på klientsidan öppnar du _Layout.cshtml och följer skriptbaserade installationsinstruktioner för JavaScript (Web) SDK Loader i artikeln om JavaScript SDK-konfiguration på klientsidan.
Felsökning
Se den dedikerade felsökningsartikeln.
Det finns ett känt problem i Visual Studio 2019: lagringen av instrumentationsnyckeln eller anslutningssträng i en användarhemlighet är bruten för .NET Framework-baserade appar. Nyckeln måste slutligen hårdkodas i filen applicationinsights.config för att undvika felet. Den här artikeln är utformad för att undvika det här problemet helt och hållet genom att inte använda användarhemligheter.
Testa anslutningen mellan din applikationsvärd och inmatningstjänsten
Application Insights SDK:er och agenter skickar telemetri för att matas in som REST-anrop till våra inmatningsslutpunkter. Du kan testa anslutningen från webbservern eller programvärddatorn till slutpunkterna för inmatningstjänsten med hjälp av råa REST-klienter från PowerShell- eller curl-kommandon. Se Felsöka programtelemetri som saknas i Azure Monitor Application Insights.
SDK med öppen källkod
De senaste uppdateringarna och felkorrigeringarna finns i versionsinformationen.
Versionsanteckningar
För version 2.12 och senare: .NET Programvaruutvecklingskit (SDK:er) inklusive ASP.NET, ASP.NET Core och loggningsadaptrar
Våra tjänstuppdateringar sammanfattar även större Förbättringar av Application Insights.
Nästa steg
- Kontrollera att du kör en version av Application Insights SDK som stöds .
- Lägg till syntetiska transaktioner för att testa att din webbplats är tillgänglig från hela världen med tillgänglighetsövervakning.
- Konfigurera sampling för att minska kostnaderna för telemetritrafik och datalagring.
- Utforska användarflöden för att förstå hur användare rör sig genom din app.
- Konfigurera en samling ögonblicksbilder för att se tillståndet för källkod och variabler när ett undantag utlöses.
- Använd API :et för att skicka egna händelser och mått för en detaljerad vy över appens prestanda och användning.
- För att granska vanliga frågor, se Applications Insights för ASP.NET FAQ.