Aplikační Přehledy pro aplikace pracovních služeb (aplikace mimo HTTP)
Application Přehledy SDK for Worker Service je nová sada SDK, která je nejvhodnější pro úlohy mimo HTTP, jako jsou zasílání zpráv, úlohy na pozadí, konzolové aplikace atd. Tyto typy aplikací nemají představu o příchozím požadavku HTTP, jako je tradiční webová aplikace ASP.NET/ASP.NET Core, a proto se nepodporují balíčky Přehledy aplikací pro ASP.NET nebo ASP.NET Core aplikace.
Nová sada SDK sama neprovádí žádnou kolekci telemetrie. Místo toho přináší další dobře známé aplikační Přehledy automatické kolektory, jako je DependencyCollector, PerfCounterCollector, ApplicationInsightsLoggingProvider atd. Tato sada SDK zveřejňuje metody IServiceCollection
rozšíření pro povolení a konfiguraci shromažďování telemetrických dat.
Podporované scénáře
Sada SDK Přehledy application Přehledy pro pracovní službu je nejvhodnější pro aplikace bez protokolu HTTP bez ohledu na to, kde nebo jak běží. Pokud je vaše aplikace spuštěná a má síťové připojení k Azure, můžete shromažďovat telemetrii. Monitorování Přehledy aplikací se podporuje všude, kde se podporuje .NET Core. Tento balíček lze použít v nově zavedené pracovní službě .NET Core 3.0, úlohách na pozadí v ASP.NET Core 2.1/2.2, konzolových aplikacích (.NET Core/ .NET Framework) atd.
Požadavky
Platný připojovací řetězec Přehledy aplikace. Tento řetězec je nutný k odeslání jakékoli telemetrie do Přehledy aplikace. Pokud potřebujete vytvořit nový prostředek Přehledy aplikace, abyste získali připojovací řetězec, přečtěte si téma Vytvoření prostředku Přehledy aplikace.
Poznámka
31. března 2025 skončí podpora příjmu klíčů instrumentace. Příjem dat založený na instrumentačním klíči bude dál fungovat, ale už nebudeme poskytovat aktualizace ani podporu této funkce. Přechod na připojovací řetězce za účelem využití nových funkcí
Použití sady Application Přehledy SDK for Worker Services
- Nainstalujte do aplikace balíček Microsoft.ApplicationInsights.WorkerService .
Následující fragment kódu ukazuje změny, které je potřeba přidat do souboru projektu
.csproj
.
<ItemGroup>
<PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.13.1" />
</ItemGroup>
- Nakonfigurujte připojovací řetězec v
APPLICATIONINSIGHTS_CONNECTION_STRING
proměnné prostředí nebo v konfiguraci. (appsettings.json
)
ILogger
Načtěte instanci neboTelemetryClient
instanci z kontejneru injektáž závislostí (DI) volánímserviceProvider.GetRequiredService<TelemetryClient>();
nebo použitím injektáže konstruktoru. Tento krok aktivuje nastaveníTelemetryConfiguration
modulů automatické kolekce a jejich nastavení.
Konkrétní pokyny pro každý typ aplikace jsou popsány v následujících částech.
Aplikace pracovní služby .NET Core 3.0
Úplný příklad je tady sdílený.
Stažení a instalace .NET Core 3.0
Vytvoření nového projektu Služby pracovního procesu pomocí Visual Studio nové šablony projektu nebo příkazového řádku
dotnet new worker
Nainstalujte do aplikace balíček Microsoft.ApplicationInsights.WorkerService .
Přidejte
services.AddApplicationInsightsTelemetryWorkerService();
doCreateHostBuilder()
metody ve tříděProgram.cs
, jako v tomto příkladu:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
services.AddApplicationInsightsTelemetryWorkerService();
});
- Upravte ho
Worker.cs
podle následujícího příkladu.
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.DataContracts;
public class Worker : BackgroundService
{
private readonly ILogger<Worker> _logger;
private TelemetryClient _telemetryClient;
private static HttpClient _httpClient = new HttpClient();
public Worker(ILogger<Worker> logger, TelemetryClient tc)
{
_logger = logger;
_telemetryClient = tc;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
_logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
using (_telemetryClient.StartOperation<RequestTelemetry>("operation"))
{
_logger.LogWarning("A sample warning message. By default, logs with severity Warning or higher is captured by Application Insights");
_logger.LogInformation("Calling bing.com");
var res = await _httpClient.GetAsync("https://bing.com");
_logger.LogInformation("Calling bing completed with status:" + res.StatusCode);
_telemetryClient.TrackEvent("Bing call event completed");
}
await Task.Delay(1000, stoppingToken);
}
}
}
- Nastavte připojovací řetězec.
Poznámka
Doporučujeme zadat připojovací řetězec v konfiguraci. Následující ukázka kódu ukazuje, jak zadat připojovací řetězec v appsettings.json
. Během publikování se ujistěte, že appsettings.json
se zkopíruje do kořenové složky aplikace.
{
"ApplicationInsights":
{
"ConnectionString" : "InstrumentationKey=00000000-0000-0000-0000-000000000000;"
},
"Logging":
{
"LogLevel":
{
"Default": "Warning"
}
}
}
Případně zadejte připojovací řetězec v APPLICATIONINSIGHTS_CONNECTION_STRING
proměnné prostředí.
APPLICATIONINSIGHTS_CONNECTION_STRING
Obvykle určuje připojovací řetězec pro aplikace nasazené do Web Apps jako webové úlohy.
Poznámka
Připojovací řetězec zadaný v kódu má přednost před proměnnou APPLICATIONINSIGHTS_CONNECTION_STRING
prostředí , která má přednost před jinými možnostmi.
ASP.NET Core úloh na pozadí s hostovanými službami
Tento dokument popisuje, jak vytvářet úlohy na pozadí v aplikaci ASP.NET Core 2.1/2.2.
Úplný příklad je tady sdílený.
- Nainstalujte do aplikace balíček Microsoft.ApplicationInsights.WorkerService .
- Přidejte
services.AddApplicationInsightsTelemetryWorkerService();
do metody, jak je znázorněno v tomto příkladuConfigureServices()
:
public static async Task Main(string[] args)
{
var host = new HostBuilder()
.ConfigureAppConfiguration((hostContext, config) =>
{
config.AddJsonFile("appsettings.json", optional: true);
})
.ConfigureServices((hostContext, services) =>
{
services.AddLogging();
services.AddHostedService<TimedHostedService>();
// connection string is read automatically from appsettings.json
services.AddApplicationInsightsTelemetryWorkerService();
})
.UseConsoleLifetime()
.Build();
using (host)
{
// Start the host
await host.StartAsync();
// Wait for the host to shutdown
await host.WaitForShutdownAsync();
}
}
Následuje kód, ve TimedHostedService
kterém se nachází logika úlohy na pozadí.
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.DataContracts;
public class TimedHostedService : IHostedService, IDisposable
{
private readonly ILogger _logger;
private Timer _timer;
private TelemetryClient _telemetryClient;
private static HttpClient httpClient = new HttpClient();
public TimedHostedService(ILogger<TimedHostedService> logger, TelemetryClient tc)
{
_logger = logger;
this._telemetryClient = tc;
}
public Task StartAsync(CancellationToken cancellationToken)
{
_logger.LogInformation("Timed Background Service is starting.");
_timer = new Timer(DoWork, null, TimeSpan.Zero,
TimeSpan.FromSeconds(1));
return Task.CompletedTask;
}
private void DoWork(object state)
{
_logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
using (_telemetryClient.StartOperation<RequestTelemetry>("operation"))
{
_logger.LogWarning("A sample warning message. By default, logs with severity Warning or higher is captured by Application Insights");
_logger.LogInformation("Calling bing.com");
var res = httpClient.GetAsync("https://bing.com").GetAwaiter().GetResult();
_logger.LogInformation("Calling bing completed with status:" + res.StatusCode);
_telemetryClient.TrackEvent("Bing call event completed");
}
}
}
- Nastavte připojovací řetězec.
Použijte stejný
appsettings.json
příklad z výše uvedeného příkladu pracovní služby .NET Core 3.0.
Konzolová aplikace .NET Core/.NET Framework
Jak je uvedeno na začátku tohoto článku, nový balíček lze použít k povolení telemetrie aplikace Přehledy z dokonce i běžné konzolové aplikace. Tento balíček cílíNetStandard2.0
, a proto se dá použít pro konzolové aplikace v .NET Core 2.0 nebo vyšší a .NET Framework 4.7.2 nebo vyšší.
Úplný příklad je tady sdílený.
Nainstalujte do aplikace balíček Microsoft.ApplicationInsights.WorkerService .
Upravte soubor Program.cs jako následující příklad.
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.DataContracts;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using System;
using System.Net.Http;
using System.Threading.Tasks;
namespace WorkerSDKOnConsole
{
class Program
{
static async Task Main(string[] args)
{
// Create the DI container.
IServiceCollection services = new ServiceCollection();
// Being a regular console app, there is no appsettings.json or configuration providers enabled by default.
// Hence connection string and any changes to default logging level must be specified here.
services.AddLogging(loggingBuilder => loggingBuilder.AddFilter<Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider>("Category", LogLevel.Information));
services.AddApplicationInsightsTelemetryWorkerService("connection string here");
// Build ServiceProvider.
IServiceProvider serviceProvider = services.BuildServiceProvider();
// Obtain logger instance from DI.
ILogger<Program> logger = serviceProvider.GetRequiredService<ILogger<Program>>();
// Obtain TelemetryClient instance from DI, for additional manual tracking or to flush.
var telemetryClient = serviceProvider.GetRequiredService<TelemetryClient>();
var httpClient = new HttpClient();
while (true) // This app runs indefinitely. replace with actual application termination logic.
{
logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
// Replace with a name which makes sense for this operation.
using (telemetryClient.StartOperation<RequestTelemetry>("operation"))
{
logger.LogWarning("A sample warning message. By default, logs with severity Warning or higher is captured by Application Insights");
logger.LogInformation("Calling bing.com");
var res = await httpClient.GetAsync("https://bing.com");
logger.LogInformation("Calling bing completed with status:" + res.StatusCode);
telemetryClient.TrackEvent("Bing call event completed");
}
await Task.Delay(1000);
}
// Explicitly call Flush() followed by sleep is required in Console Apps.
// This is to ensure that even if application terminates, telemetry is sent to the back-end.
telemetryClient.Flush();
Task.Delay(5000).Wait();
}
}
}
Tato konzolová aplikace používá také stejné výchozí nastavení TelemetryConfiguration
a dá se přizpůsobit stejným způsobem jako příklady v předchozí části.
Spusťte aplikaci
Spusťte aplikaci. Příklad pracovních procesů ze všech výše uvedených provádí volání HTTP každou sekundu k bing.com a také generuje několik protokolů pomocí ILogger
. Tyto řádky jsou zabaleny uvnitř StartOperation
volání TelemetryClient
, který se používá k vytvoření operace (v tomto příkladu RequestTelemetry
s názvem "operation"). Aplikace Přehledy tyto protokoly ILogger (ve výchozím nastavení upozornění nebo výše) a závislosti shromáždí a budou korelovány s vztahem nadřazeného a podřízeného objektuRequestTelemetry
. Korelace také funguje mezi procesy a hranicemi sítě. Pokud se například volání provedlo s jinou monitorovanou komponentou, bude korelovat i s tímto nadřazeným objektem.
Tuto vlastní operaci RequestTelemetry
lze považovat za ekvivalent příchozího webového požadavku v typické webové aplikaci. I když není nutné používat operaci, hodí se nejlépe s datovým modelem korelace aplikace Přehledy – s RequestTelemetry
fungováním jako nadřazenou operací a každou telemetrii vygenerovanou uvnitř iterace pracovního procesu, která se považuje za logicky patřící stejné operaci. Tento přístup také zajišťuje, že všechna telemetrická data generovaná (automatická a ruční) budou mít stejnou operation_id
. Vzhledem k tomu, že vzorkování vychází z operation_id
toho, algoritmus vzorkování buď uchovává nebo zahodí veškerou telemetrii z jedné iterace.
Následující seznam obsahuje úplnou telemetrii, kterou automaticky shromažďuje Přehledy aplikace.
Live Metrics
Živé metriky je možné použít k rychlému ověření, jestli je správně nakonfigurované monitorování Přehledy aplikací. I když může trvat několik minut, než se telemetrie začne zobrazovat na portálu a analýzách, živé metriky ukážou využití procesoru spuštěného procesu téměř v reálném čase. Může také zobrazit další telemetrii, jako jsou požadavky, závislosti, trasování atd.
Protokoly ILoggeru
Protokoly generované ILogger
závažností Warning
nebo vyšší se automaticky zaznamenávají. Podle dokumentace ILoggeru můžete přizpůsobit úrovně protokolů zachycené Přehledy aplikací.
Závislosti
Kolekce závislostí je ve výchozím nastavení povolená. Tento článek vysvětluje závislosti, které se automaticky shromažďují, a obsahuje také kroky k ručnímu sledování.
EventCounter
EventCounterCollectionModule
je ve výchozím nastavení povolená a bude shromažďovat výchozí sadu čítačů z aplikací .NET Core 3.0. Kurz EventCounter uvádí výchozí sadu shromážděných čítačů. Obsahuje také pokyny k přizpůsobení seznamu.
Ruční sledování dalších telemetrických dat
Sada SDK sice automaticky shromažďuje telemetrii, jak je vysvětleno výše, ale ve většině případů bude uživatel muset do služby Application Přehledy odesílat další telemetrická data. Doporučený způsob, jak sledovat další telemetrii, je získání instance TelemetryClient
z injektáže závislostí a následné volání jedné z podporovaných TrackXXX()
metod rozhraní API. Dalším typickým případem použití je vlastní sledování operací. Tento přístup je ukázaný v příkladech pracovních procesů výše.
Konfigurace sady Application Přehledy SDK
Výchozí nastavení TelemetryConfiguration
používané sadou SDK pracovní služby je podobné automatické konfiguraci používané v aplikaci ASP.NET nebo ASP.NET Core minus telemetrieInitializery používané k obohacení telemetrie z HttpContext
.
Sadu APPLICATION Přehledy SDK pro pracovní službu můžete přizpůsobit tak, aby se změnila výchozí konfigurace. Uživatelé sady Application Přehledy ASP.NET Core SDK můžou znát změnu konfigurace pomocí ASP.NET Core integrované injektáže závislostí. Sada WorkerService SDK je také založená na podobných principech. Proveďte téměř všechny změny konfigurace v oddílu ConfigureServices()
voláním odpovídajících metod, IServiceCollection
jak je popsáno níže.
Poznámka
Při použití této sady SDK se změna konfigurace úpravou TelemetryConfiguration.Active
nepodporuje a změny se neprojeví.
Použití ApplicationInsightsServiceOptions
Můžete upravit několik běžných nastavení předáním ApplicationInsightsServiceOptions
AddApplicationInsightsTelemetryWorkerService
souboru , jako v tomto příkladu:
using Microsoft.ApplicationInsights.WorkerService;
public void ConfigureServices(IServiceCollection services)
{
var aiOptions = new ApplicationInsightsServiceOptions();
// Disables adaptive sampling.
aiOptions.EnableAdaptiveSampling = false;
// Disables QuickPulse (Live Metrics stream).
aiOptions.EnableQuickPulseMetricStream = false;
services.AddApplicationInsightsTelemetryWorkerService(aiOptions);
}
V ApplicationInsightsServiceOptions
této sadě SDK je obor názvů Microsoft.ApplicationInsights.WorkerService
na rozdíl od Microsoft.ApplicationInsights.AspNetCore.Extensions
sady ASP.NET Core SDK.
Běžně používaná nastavení v ApplicationInsightsServiceOptions
Nastavení | Popis | Výchozí |
---|---|---|
EnableQuickPulseMetricStream | Povolení nebo zakázání funkce LiveMetrics | true |
EnableAdaptiveSampling | Povolení nebo zakázání adaptivního vzorkování | true |
EnableHeartbeat | Povolit nebo zakázat funkci prezenčních signálů, která pravidelně (výchozí 15 minut) odesílá vlastní metriku s názvem HeartBeatState s informacemi o modulu runtime, jako je verze .NET, informace o prostředí Azure, pokud je to možné atd. | true |
AddAutoCollectedMetricExtractor | Enable/Disable AutoCollectedMetrics extractor, což je TelemetryProcessor, který před zahájením vzorkování odesílá předem agregované metriky o požadavcích a závislostech. | true |
EnableDiagnosticsTelemetryModule | Povolit nebo zakázat DiagnosticsTelemetryModule . Zakázání tohoto nastavení způsobí ignorování následujících nastavení; EnableHeartbeat , EnableAzureInstanceMetadataTelemetryModule , EnableAppServicesHeartbeatTelemetryModule |
true |
Podívejte se na konfigurovatelná nastavení ApplicationInsightsServiceOptions
pro nejaktuálnější seznam.
Vzorkování
Sada Application Přehledy SDK for Worker Service podporuje jak pevnou rychlost, tak adaptivní vzorkování. Adaptivní vzorkování je ve výchozím nastavení povolené. Vzorkování je možné zakázat pomocí EnableAdaptiveSampling
možnosti ApplicationInsightsServiceOptions.
Ke konfiguraci dalších nastavení vzorkování je možné použít následující příklad.
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.WorkerService;
public void ConfigureServices(IServiceCollection services)
{
// ...
var aiOptions = new ApplicationInsightsServiceOptions();
// Disable adaptive sampling.
aiOptions.EnableAdaptiveSampling = false;
services.AddApplicationInsightsTelemetryWorkerService(aiOptions);
// Add Adaptive Sampling with custom settings.
// the following adds adaptive sampling with 15 items per sec.
services.Configure<TelemetryConfiguration>((telemetryConfig) =>
{
var builder = telemetryConfig.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond: 15);
builder.Build();
});
//...
}
Další informace najdete v dokumentu vzorkování .
Přidání telemetrických inicializátorů
Inicializátory telemetrie používejte, když chcete definovat vlastnosti, které se odesílají se všemi telemetrií.
Přidejte do kontejneru všechny nové TelemetryInitializer
a sada SDK je automaticky přidá do souboru TelemetryConfiguration
.DependencyInjection
using Microsoft.ApplicationInsights.Extensibility;
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>();
services.AddApplicationInsightsTelemetryWorkerService();
}
Odebrání telemetrických inicializátorů
Inicializátory telemetrie jsou ve výchozím nastavení k dispozici. Pokud chcete odebrat všechny nebo specifické inicializátory telemetrie, použijte následující ukázkový kód po volání AddApplicationInsightsTelemetryWorkerService()
.
public void ConfigureServices(IServiceCollection services)
{
services.AddApplicationInsightsTelemetryWorkerService();
// Remove a specific built-in telemetry initializer
var tiToRemove = services.FirstOrDefault<ServiceDescriptor>
(t => t.ImplementationType == typeof(AspNetCoreEnvironmentTelemetryInitializer));
if (tiToRemove != null)
{
services.Remove(tiToRemove);
}
// Remove all initializers
// This requires importing namespace by using Microsoft.Extensions.DependencyInjection.Extensions;
services.RemoveAll(typeof(ITelemetryInitializer));
}
Přidání procesorů telemetrie
Vlastní procesory TelemetryConfiguration
telemetrie můžete přidat pomocí metody AddApplicationInsightsTelemetryProcessor
rozšíření na IServiceCollection
. Procesory telemetrie používáte v pokročilých scénářích filtrování, abyste umožnili větší přímou kontrolu nad tím, co je součástí nebo vyloučeno z telemetrie, kterou odesíláte do služby Application Přehledy. Použijte následující příklad.
public void ConfigureServices(IServiceCollection services)
{
services.AddApplicationInsightsTelemetryWorkerService();
services.AddApplicationInsightsTelemetryProcessor<MyFirstCustomTelemetryProcessor>();
// If you have more processors:
services.AddApplicationInsightsTelemetryProcessor<MySecondCustomTelemetryProcessor>();
}
Konfigurace nebo odebrání výchozího telemetrieModules
Aplikační Přehledy používá moduly telemetrie k automatickému shromažďování telemetrických dat o konkrétních úlohách bez nutnosti ručního sledování.
Ve výchozím nastavení jsou povoleny následující moduly automatické kolekce. Tyto moduly zodpovídají za automatické shromažďování telemetrie. Můžete je zakázat nebo nakonfigurovat tak, aby měnily výchozí chování.
DependencyTrackingTelemetryModule
PerformanceCollectorModule
QuickPulseTelemetryModule
AppServicesHeartbeatTelemetryModule
– (V současné době dochází k problému souvisejícímu s tímto modulem telemetrie. Dočasné alternativní řešení najdete v tématu GitHub Problém 1689.)AzureInstanceMetadataTelemetryModule
Pokud chcete nakonfigurovat libovolnou výchozí TelemetryModule
hodnotu, použijte metodu ConfigureTelemetryModule<T>
rozšíření zapnutou IServiceCollection
, jak je znázorněno v následujícím příkladu.
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector;
public void ConfigureServices(IServiceCollection services)
{
services.AddApplicationInsightsTelemetryWorkerService();
// The following configures QuickPulseTelemetryModule.
// Similarly, any other default modules can be configured.
services.ConfigureTelemetryModule<QuickPulseTelemetryModule>((module, o) =>
{
module.AuthenticationApiKey = "keyhere";
});
// The following removes PerformanceCollectorModule to disable perf-counter collection.
// Similarly, any other default modules can be removed.
var performanceCounterService = services.FirstOrDefault<ServiceDescriptor>
(t => t.ImplementationType == typeof(PerformanceCollectorModule));
if (performanceCounterService != null)
{
services.Remove(performanceCounterService);
}
}
Konfigurace kanálu telemetrie
Výchozí kanál je ServerTelemetryChannel
. Můžete ho přepsat, jak ukazuje následující příklad.
using Microsoft.ApplicationInsights.Channel;
public void ConfigureServices(IServiceCollection services)
{
// Use the following to replace the default channel with InMemoryChannel.
// This can also be applied to ServerTelemetryChannel.
services.AddSingleton(typeof(ITelemetryChannel), new InMemoryChannel() {MaxTelemetryBufferCapacity = 19898 });
services.AddApplicationInsightsTelemetryWorkerService();
}
Dynamické zakázání telemetrie
Pokud chcete telemetrii podmíněně a dynamicky zakázat, můžete instanci vyřešit TelemetryConfiguration
s kontejnerem injektáže závislostí ASP.NET Core kdekoli v kódu a nastavit DisableTelemetry
příznak na něm.
public void ConfigureServices(IServiceCollection services)
{
services.AddApplicationInsightsTelemetryWorkerService();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, TelemetryConfiguration configuration)
{
configuration.DisableTelemetry = true;
...
}
Nejčastější dotazy
Jak můžu sledovat telemetrii, která se neshromažďuje automaticky?
Získejte instanci TelemetryClient
pomocí injektáže konstruktoru a zavolejte na ni požadovanou TrackXXX()
metodu. Nedoporučujeme vytvářet nové TelemetryClient
instance. V kontejneru DependencyInjection
je už zaregistrovaná jedna instanceTelemetryClient
, která sdílí TelemetryConfiguration
zbytek telemetrie. Vytvoření nové TelemetryClient
instance se doporučuje jenom v případě, že potřebuje konfiguraci, která je oddělená od zbytku telemetrie.
Můžu použít integrované vývojové prostředí (IDE) Visual Studio k onboardingu Přehledy aplikace do projektu pracovní služby?
Visual Studio onboarding integrovaného vývojového prostředí (IDE) se v současné době podporuje jenom pro aplikace ASP.NET/ASP.NET Core. Tento dokument se aktualizuje, když Visual Studio dodává podporu pro aplikace služby onboarding Worker.
Můžu povolit monitorování Přehledy aplikací pomocí nástrojů, jako je agent služby Azure Monitor Application Přehledy Agent (dříve Status Monitor v2)?
Ne, agent Přehledy aplikace služby Azure Monitor aktuálně podporuje pouze ASP.NET 4.x.
Podporují se všechny funkce, pokud spustím aplikaci v Linuxu?
Ano. Podpora funkcí pro tuto sadu SDK je stejná ve všech platformách s následujícími výjimkami:
- Čítače výkonu se podporují pouze v Windows s výjimkou procesoru a paměti procesu zobrazeného v živých metrikách.
- I když
ServerTelemetryChannel
je ve výchozím nastavení povolená, pokud je aplikace spuštěná v Linuxu nebo macOS, kanál automaticky nevytvoří složku místního úložiště, aby se telemetrie dočasně zachovala, pokud dojde k problémům se sítí. Kvůli tomuto omezení dojde ke ztrátě telemetrie, pokud dojde k dočasným problémům se sítí nebo serverem. Pokud chcete tento problém vyřešit, nakonfigurujte pro kanál místní složku:
using Microsoft.ApplicationInsights.Channel;
using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel;
public void ConfigureServices(IServiceCollection services)
{
// The following will configure the channel to use the given folder to temporarily
// store telemetry items during network or Application Insights server issues.
// User should ensure that the given folder already exists
// and that the application has read/write permissions.
services.AddSingleton(typeof(ITelemetryChannel),
new ServerTelemetryChannel () {StorageFolder = "/tmp/myfolder"});
services.AddApplicationInsightsTelemetryWorkerService();
}
Ukázkové aplikace
Konzolová aplikace .NET Core Tuto ukázku použijte, pokud používáte konzolovou aplikaci napsanou v .NET Core (2.0 nebo vyšší) nebo .NET Framework (4.7.2 nebo vyšší)
ASP.NET Core úlohy na pozadí s hostovanými službami Použijte tuto ukázku, pokud jste v ASP.NET Core 2.1/2.2 a vytváření úloh na pozadí podle oficiálních pokynů zde
Pracovní služba .NET Core 3.0 Tuto ukázku použijte, pokud máte aplikaci pracovní služby .NET Core 3.0 podle oficiálních pokynů zde.
Opensourcová sada SDK
Nejnovější aktualizace a opravy chyb najdete v poznámkách k verzi.
Další kroky
- Pomocí rozhraní API můžete odesílat vlastní události a metriky pro podrobné zobrazení výkonu a využití vaší aplikace.
- Sledujte další závislosti, které se automaticky nesledují.
- Rozšíření nebo filtrování automaticky shromažďované telemetrie
- Injektáž závislostí v ASP.NET Core