Freigeben über


Erweitern von TraceProcessor

Viele Arten von Ablaufverfolgungsdaten verfügen über integrierte Unterstützung in TraceProcessor, aber wenn Sie über andere Anbieter verfügen, die Sie analysieren möchten (einschließlich Ihrer eigenen benutzerdefinierten Anbieter), sind diese Daten auch live aus der Ablaufverfolgung verfügbar, während die Verarbeitung erfolgt.

Hinweis

Dieser Teil der API befindet sich in der Vorschauphase und noch in der aktiven Entwicklung. Dies kann sich in zukünftigen Releases ändern.

Hier sehen Sie beispielsweise eine einfache Möglichkeit, die Liste der Anbieter-IDs in einer Ablaufverfolgung abzurufen.

// Open a trace with TraceProcessor.Create() and call Run...

static void Run(ITraceProcessor trace)
{
    HashSet<Guid> providerIds = new HashSet<Guid>();
    trace.Use((e) => providerIds.Add(e.ProviderId));
    trace.Process();

    foreach (Guid providerId in providerIds)
    {
        Console.WriteLine(providerId);
    }
}

Das folgende Beispiel zeigt eine vereinfachte benutzerdefinierte Datenquelle.

// Open a trace with TraceProcessor.Create() and call Run...

static void Run(ITraceProcessor trace)
{
    CustomDataSource customDataSource = new CustomDataSource();
    trace.Use(customDataSource);

    trace.Process();

    Console.WriteLine(customDataSource.Count);
}

class CustomDataSource : IFilteredEventConsumer
{
    public IReadOnlyList<Guid> ProviderIds { get; } = new Guid[] { new Guid("your provider ID") };

    public int Count { get; private set; }

    public void Process(EventContext eventContext)
    {
        ++Count;
    }
}

Nächste Schritte

In diesem Tutorial haben Sie erfahren, wie Sie TraceProcessor erweitern.

Im nächsten Schritt erfahren Sie, wie Sie Symbole für Ablaufverfolgungen laden.