Overzicht

Logboekverrijking is een krachtige functie die automatisch contextuele informatie aan de logboeken van uw toepassing koppelt. In plaats van handmatig metagegevens toe te voegen aan elk logboek, biedt verrijking een systematische manier om automatisch relevante context in uw hele toepassing te injecteren.

Wat is verrijking?

Verrijking vergroot telemetrieobjecten met aanvullende informatie die waardevolle context biedt over de omgeving, toepassingsstatus en uitvoeringscontext wanneer de telemetrie is gegenereerd. Deze contextuele gegevens helpen bij foutopsporing, bewaking, prestatieanalyse en inzicht in toepassingsgedrag in productieomgevingen.

Waarom is verrijking belangrijk?

Verrijking speelt een belangrijke rol bij het verbeteren van waarneembaarheid en diagnostische gegevens door gestandaardiseerde contextuele informatie, zoals procesdetails, omgevingstags of gebruikers-id's, toe te voegen aan telemetriegegevens. Met deze aanvullende metagegevens worden onbewerkte logboeken omgezet in gestructureerde, zinvolle inzichten, waardoor het gemakkelijker is om problemen te traceren, gebeurtenissen te correleren en de betrouwbaarheid van toepassingen te verbeteren. Door verrijking in te schakelen en specifieke verrijkers te configureren, kunnen teams het oplossen van problemen stroomlijnen, prestatiebewaking optimaliseren en naleving van operationele standaarden garanderen. Uiteindelijk is verrijking niet alleen een technische invoegtoepassing; Het is een fundamentele praktijk voor het bouwen van tolerante, transparante systemen die ondersteuning bieden voor geïnformeerde besluitvorming en snellere incidentoplossing.

Hoe verrijking werkt

Het verrijkingsframework werkt via een verzameling verrijkers die zijn geregistreerd bij de afhankelijkheidsinjectiecontainer. Wanneer telemetrie wordt gegenereerd, dragen alle geregistreerde verrijkers automatisch hun contextuele informatie bij aan de telemetrische payload. U registreert gewoon de specifieke set verrijkers die u wilt opnemen in een IServiceCollection exemplaar. De verrijkers worden automatisch uitgevoerd zonder dat er wijzigingen in uw toepassingscode nodig zijn. U configureert gewoon welke verrijkers u wilt gebruiken tijdens het opstarten van de toepassing.

Dimensienamen en tags

Verrijkers voegen informatie toe aan telemetrie met behulp van gestandaardiseerde dimensienamen (ook wel tags of sleutels genoemd).

De verrijking instellen

Als u logboekverrijking in uw toepassing wilt gebruiken, moet u het volgende doen:

  1. Schakel verrijking in voor logboekregistratie.
  2. Registreer specifieke verrijkers die u wilt gebruiken.
  3. Configureer opties voor elke verrijker (optioneel).

Basisinstallatievoorbeeld

Hier volgt een eenvoudig voorbeeld van het instellen van logboekverrijking met procesinformatie:

using System.Text.Json;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

var builder = Host.CreateApplicationBuilder(args);

builder.Logging.EnableEnrichment();
builder.Services.AddProcessLogEnricher();

builder.Logging.AddJsonConsole(op =>
{
    op.JsonWriterOptions = new JsonWriterOptions
    {
        Indented = true
    };
});

var host = builder.Build();
var logger = host.Services.GetRequiredService<ILogger<Program>>();

logger.LogInformation("This is a sample log message");
await host.RunAsync();

Deze configuratie:

  • Maakt verrijking mogelijk voor logboekregistratie via EnableEnrichment().
  • Registreert de proceslogboekverrijker via AddProcessLogEnricher().
  • Hiermee configureert u de uitvoer van de JSON-console om de verrijkte gegevens weer te geven.

Voorbeeld van uitvoer

Als verrijking is ingeschakeld, bevat uw logboekuitvoer automatisch aanvullende contextuele informatie:

{
  "EventId": 0,
  "LogLevel": "Information",
  "Category": "Enrichment.Program",
  "Message": "This is a sample log message",
  "State": {
    "Message": "This is a sample log message",
    "process.pid": "10696",
    "{OriginalFormat}": "This is a sample log message"
  }
}

Beschikbare verrijkers

Het .NET-verrijkingsframework biedt enkele ingebouwde verrijkers, zoals:

Aangepaste verrijkers

Als de ingebouwde verrijkers niet aan uw specifieke behoeften voldoen, kunt u aangepaste verrijkers maken om toepassingsspecifieke context toe te voegen. Voor meer informatie, raadpleeg aangepaste verrijking.