Compartir a través de


Extender TraceProcessor

Muchos tipos de datos de seguimiento incorporan compatibilidad integrada en TraceProcessor, pero si tiene otros proveedores que quiera analizar (incluidos sus propios proveedores personalizados), esos datos también están disponibles desde el seguimiento en directo mientras se realiza el procesamiento.

Nota:

Esta parte de la API se encuentra en versión preliminar y en desarrollo. Puede cambiar en versiones futuras.

Por ejemplo, a continuación le mostramos cómo puede obtener fácilmente la lista de identificadores de proveedores en un seguimiento.

// 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);
    }
}

En el ejemplo siguiente se muestra un origen de datos personalizado simplificado.

// 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;
    }
}

Pasos siguientes

En este tutorial, ha aprendido a ampliar TraceProcessor.

En el siguiente paso, aprenderá a cargar símbolos para los seguimientos.