Sdílet prostřednictvím


Protokolování aplikací

Instrumentace kódu není jen způsob, jak získat přehled o uživatelích, ale také jediný způsob, jak zjistit, jestli je ve vaší aplikaci něco špatně, a diagnostikovat, co je potřeba opravit. I když je technicky možné připojit ladicí program k produkční službě, není to běžný postup. Proto je důležité mít podrobná data instrumentace.

Některé produkty automaticky instrumentuje váš kód. I když tato řešení můžou dobře fungovat, ruční instrumentace je téměř vždy potřeba, aby byla specifická pro obchodní logiku. Nakonec musíte mít dostatek informací k forenznímu ladění aplikace. Aplikace Service Fabric je možné instrumentovat pomocí libovolné architektury protokolování. Tento dokument popisuje několik různých přístupů k instrumentaci kódu a to, kdy zvolit jeden přístup před druhým.

Příklady použití těchto návrhů najdete v tématu Přidání protokolování do aplikace Service Fabric.

Application Insights SDK

Application Insights nabízí bohatou integraci se Service Fabric. Uživatelé můžou přidávat balíčky NuGet AI Service Fabric a přijímat data a protokoly vytvořené a shromážděné v Azure Portal. Uživatelům se navíc doporučuje přidat vlastní telemetrii, aby mohli diagnostikovat a ladit své aplikace a sledovat, které služby a části aplikace se používají nejčastěji. Třída TelemetryClient v sadě SDK poskytuje mnoho způsobů, jak sledovat telemetrii ve vašich aplikacích. Podívejte se na příklad instrumentace a přidání application Insights do aplikace v našem kurzu monitorování a diagnostiky aplikace .NET.

EventSource

Při vytváření řešení Service Fabric ze šablony v sadě Visual Studio se vygeneruje třída odvozená od EventSource (ServiceEventSource nebo ActorEventSource). Vytvoří se šablona, do které můžete přidat události pro vaši aplikaci nebo službu. Název EventSourcemusí být jedinečný a měl by být přejmenován z výchozího řetězce šablony MyCompany-solution-project<><>. Několik definic EventSource , které používají stejný název, způsobuje problém za běhu. Každá definovaná událost musí mít jedinečný identifikátor. Pokud identifikátor není jedinečný, dojde k selhání modulu runtime. Některé organizace předem přiřaďte rozsahy hodnot pro identifikátory, aby nedocházelo ke konfliktům mezi různými vývojovými týmy. Další informace najdete na blogu společnosti Vance nebo v dokumentaci MSDN.

protokolování ASP.NET Core

Je důležité pečlivě naplánovat, jak budete kód instrumentovat. Správný plán instrumentace vám může pomoct vyhnout se potenciální deaktivaci základu kódu a následnému nutnosti opětovného vytvoření kódu. Pokud chcete snížit riziko, můžete zvolit knihovnu instrumentace, jako je Microsoft.Extensions.Logging, která je součástí microsoft ASP.NET Core. ASP.NET Core má rozhraní ILogger, které můžete použít s poskytovatelem podle vašeho výběru a zároveň minimalizovat vliv na stávající kód. Kód můžete použít v ASP.NET Core ve Windows a Linuxu a v plném rozhraní .NET Framework, takže kód instrumentace je standardizovaný.

Další kroky

Jakmile zvolíte poskytovatele protokolování pro instrumentaci aplikací a služeb, je potřeba protokoly a události před odesláním na libovolnou analytickou platformu agregovat. Přečtěte si o Application Insights a EventFlow , abyste lépe porozuměli některým doporučeným možnostem služby Azure Monitor.